Ladder 是一个自托管的 HTTP Web 代理
Ladder 是一个自托管的 HTTP Web 代理,主要用于测试、分析和调试网站的付费墙(Paywall)实现、CORS 策略及内容交付行为。
本教程将覆盖二进制、Docker、Docker Compose 等多种部署方式,以及基础配置和高级功能(如 FlareSolverr 集成)。
📥 部署方式
Ladder 提供了多种部署方式,你可以根据自己的需求选择最合适的一种。
方式一:使用预编译二进制文件(推荐)
这是最简单直接的方式,适合快速测试或个人使用。
下载:从 GitHub Releases 页面 下载适用于你操作系统(Linux, macOS, Windows)的最新二进制文件。
运行:在终端中,为二进制文件添加执行权限(Linux/macOS),然后运行并指定规则集:
1
2
3# 以 Linux 为例
chmod +x ladder
./ladder -r https://raw.githubusercontent.com/everywall/ladder-rules/main/ruleset.yaml访问:打开浏览器,访问
http://localhost:8080,在输入框中输入目标 URL 即可开始使用。
方式二:使用 Docker(推荐生产环境)
Docker 方式提供了良好的环境隔离和便捷的部署体验。
直接运行:
1
2
3
4docker run -p 8080:8080 -d \
--env RULESET=https://raw.githubusercontent.com/everywall/ladder-rules/main/ruleset.yaml \
--name ladder \
ghcr.io/everywall/ladder:latest使用 Docker Compose(更易管理):
下载
docker-compose.yaml文件:1
curl https://raw.githubusercontent.com/everywall/ladder/main/docker-compose.yaml --output docker-compose.yaml
启动服务:
1
docker-compose up -d
服务将在后台运行,访问
http://localhost:8080。
方式三:在 Kubernetes 上部署 (Helm)
对于 Kubernetes 集群,项目提供了 Helm Chart。请参考项目 helm-chart 子目录下的 README 文件获取详细部署指南。
⚙️ 核心配置与使用
1. 基础使用
- Web 界面:访问
http://localhost:8080,输入目标 URL。 - 直接 URL:在浏览器地址栏直接输入
http://localhost:8080/https://www.example.com即可访问代理后的页面。 - API 调用:通过
curl -X GET "http://localhost:8080/api/https://www.example.com"获取 JSON 格式响应。 - RAW 模式:访问
http://localhost:8080/raw/https://www.example.com获取未修改的原始 HTML。
2. 环境变量配置
你可以通过环境变量来调整 Ladder 的行为,常用变量如下:
| 变量 | 描述 | 示例值 |
|---|---|---|
PORT |
监听端口 | 8080 |
USER_AGENT |
模拟的用户代理(User-Agent) | Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html) |
X_FORWARDED_FOR |
模拟的 IP 地址 | 66.249.66.1 |
USERPASS |
启用基础认证(Basic Auth),格式 用户名:密码 |
admin:123456 |
RULESET |
规则集文件路径或 URL | https://raw.githubusercontent.com/everywall/ladder-rules/main/ruleset.yaml |
ALLOWED_DOMAINS |
允许代理的域名列表(逗号分隔),为空则不限制 | example.com, wikipedia.org |
FLARESOLVERR_HOST |
FlareSolverr 服务地址(用于绕过 Cloudflare 等保护) | http://localhost:8191 |
⚠️ 安全警告:如果你的 Ladder 实例暴露在公网,强烈建议启用
USERPASS基础认证,以防止被他人滥用为匿名代理,从而引发法律风险。
3. 规则集 (Ruleset)
规则集是 Ladder 的核心功能,用于定义对不同域名的请求修改和内容注入。你可以通过 RULESET 变量指定一个 YAML 文件、一个包含多个 YAML 文件的目录或一个远程 URL。
基础规则示例(修改请求头和注入脚本):
1
2
3
4
5
6
7
8- domain: example.com
headers:
user-agent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"
content-security-policy: "script-src 'self'"
injections:
- position: head
append: |
<script>console.log("Injected by Ladder");</script>使用 FlareSolverr 绕过保护:
1
2
3
4- domain: cloudflare-protected-site.com
useFlareSolverr: true # 对此域名启用 FlareSolverr
headers:
user-agent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"
🌐 高级集成:使用 FlareSolverr 绕过 Cloudflare
Ladder 可以集成 FlareSolverr 来应对 Cloudflare 等反爬机制。
启动 FlareSolverr:你可以使用 Docker 单独运行它。
1
docker run -d --name flaresolverr -p 8191:8191 ghcr.io/flaresolverr/flaresolverr:latest
配置 Ladder:在启动 Ladder 时,通过环境变量或 Docker Compose 设置
FLARESOLVERR_HOST=http://localhost:8191。在规则集中启用:对于需要绕过保护的域名,在其规则中添加
useFlareSolverr: true。
🛠️ 开发环境搭建(可选)
如果你想进行二次开发,可以按以下步骤操作:
克隆仓库:
git clone https://github.com/everywall/ladder.git运行开发服务器:
1
2
3cd ladder
echo "dev" > handlers/VERSION
RULESET="./ruleset.yaml" go run cmd/main.go开发服务器将运行在
http://localhost:8080。前端样式修改:项目使用 Tailwind CSS,如果你修改了
form.html,需要运行pnpm build来重新生成样式表。
💡 关键要点与适用场景
- 核心用途:Ladder 是一个合法的开发与测试工具,主要用于调试付费墙、CORS 策略、抓取行为分析等。请务必在遵守目标网站服务条款和相关法律的前提下使用。
- 限制:Ladder 无法绕过所有网站的反爬机制,特别是那些使用高级指纹识别、行为分析或客户端挑战的网站。FlareSolverr 的集成提升了应对能力,但并非万能。
- 安全第一:公网部署务必启用
USERPASS。同时,建议通过ALLOWED_DOMAINS限制代理访问的域名范围,以减少滥用风险。









