Ladder 的官方仓库,这是一个自托管的 HTTP Web 代理,主要用于修改 HTTP 请求和响应
🧭 核心功能与用途
Ladder 本质上是一个中间人代理,它允许你:
- 修改请求:自定义 User-Agent、X-Forwarded-For IP,或应用规则修改请求 URL。
- 修改响应:移除或修改 CORS、CSP 等响应头,注入或替换 HTML/CSS/JavaScript 代码。
- 应用规则集:为不同域名配置不同的处理规则,实现精细化控制。
- API 接口:提供 REST API,方便脚本化调用。
重要限制与免责:
- 它不用于绕过付费墙或违反服务条款。项目明确声明用于“合法的测试、研究、质量保证”。
- 它无法破解高级反机器人机制(如指纹识别、行为分析)。
- 对于 Cloudflare 等挑战,可可选集成 FlareSolverr(一个独立的浏览器自动化工具)来尝试绕过,但使用者需自行承担法律和合规风险。
📦 部署方式
Ladder 部署非常简单,推荐使用 Docker。
方式一:Docker(推荐)
1 | docker run -p 8080:8080 -d \ |
方式二:Docker Compose
1 | curl https://raw.githubusercontent.com/everywall/ladder/main/docker-compose.yaml --output docker-compose.yaml |
方式三:直接运行二进制文件
从 Releases 页面下载对应系统的二进制文件(Linux、macOS、Windows):
1 | ./ladder -r https://raw.githubusercontent.com/everywall/ladder-rules/main/ruleset.yaml |
安全警告:如果实例将暴露在公网,务必启用 Basic Auth(通过
USERPASS环境变量),否则任何人都可能滥用你的代理,而你将为此承担责任。
🚀 使用方式
1. 浏览器访问
- 打开
http://localhost:8080,在输入框中输入目标 URL。 - 或直接在地址栏拼接:
http://localhost:8080/https://www.example.com。 - 可创建书签快速跳转:
javascript:window.location.href="http://localhost:8080/"+location.href。
2. API 调用
- 标准请求:
curl -X GET "http://localhost:8080/api/https://www.example.com" - 获取原始 HTML:
http://localhost:8080/raw/https://www.example.com - 查看当前规则集:
http://localhost:8080/ruleset
⚙️ 核心配置
1. 环境变量(常用)
| 变量 | 描述 | 示例 |
|---|---|---|
PORT |
监听端口 | 8080 |
USER_AGENT |
默认 User-Agent | Mozilla/5.0 (compatible; Googlebot/2.1; ...) |
X_FORWARDED_FOR |
默认 IP 地址 | 66.249.66.1 |
USERPASS |
启用 Basic Auth,格式 用户名:密码 |
admin:123456 |
RULESET |
规则集文件/目录/URL 路径 | https://.../ruleset.yaml |
ALLOWED_DOMAINS |
允许代理的域名列表(逗号分隔),为空则不限 | example.com,google.com |
FLARESOLVERR_HOST |
FlareSolverr 服务地址(可选) | http://localhost:8191 |
2. 规则集(Ruleset)
规则集是 YAML 文件,用于定义对特定域名的操作。它非常灵活,示例:
1 | - domain: example.com |
headers:修改或删除(设为none)请求/响应头。injections:在 DOM 特定位置(head、CSS 选择器等)注入代码。useFlareSolverr:为特定域名启用 FlareSolverr 绕过挑战。
🔧 FlareSolverr 集成(可选)
Ladder 可集成 FlareSolverr(一个独立的头浏览器服务)来应对 Cloudflare 等反爬机制。
启动 FlareSolverr:
1 | docker run -d --name flaresolverr -p 8191:8191 ghcr.io/flaresolverr/flaresolverr:latest |
在 Ladder 中启用:在规则集中为需要处理的域名添加 useFlareSolverr: true,并确保 Ladder 的 FLARESOLVERR_HOST 环境变量指向 FlareSolverr 服务。
📋 开发与构建
如需自行编译,需要 Go 环境:
1 | git clone https://github.com/everywall/ladder.git |
前端样式修改后,需运行 pnpm build 重新生成 CSS。
总结
Ladder 是一个强大且灵活的 HTTP 代理工具,其核心价值在于对 Web 请求和响应的细粒度控制能力。部署极其简单(一行 Docker),但使用前务必评估法律和合规风险,特别是启用公网访问或 FlareSolverr 时。对于开发者、测试人员或研究人员,它是调试 CORS 问题、分析页面内容交付或模拟不同客户端环境的得力助手。建议先从配置规则集入手,理解其对请求/响应的修改能力。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 极客的赛博空间 | 专注 AI 与技术分享!
评论








