FlareSolverr 深度研究:开源的 Cloudflare 盾牌破解器
> GitHub: FlareSolverr/FlareSolverr
> License: MIT
> 技术: Python + Selenium + undetected-chromedriver
> 研究时间: 2026-03-25
🎯 一句话版本
一个本地代理服务器——你发请求给它,它启动一个"隐身 Chrome"帮你过 Cloudflare 验证,把 HTML 和 cookies 还给你。之后用这些 cookies 就能绕过 Cloudflare 直接访问。Docker 一行命令跑起来。
🧠 解决什么问题?
Cloudflare 保护的网站会弹 "Checking your browser..." 挑战页面。普通 HTTP 请求(curl/requests/web_fetch)直接被拦。
FlareSolverr 的解法:
你的爬虫/Agent → POST 请求 → FlareSolverr (localhost:8191)
↓
启动隐身 Chrome
↓
自动过 Cloudflare 挑战
↓
返回 HTML + Cookies + User-Agent
↓
你的爬虫/Agent ← 拿着 cookies 直接访问目标网站 ←
🔧 使用方法
一行 Docker 启动
docker run -d \
--name=flaresolverr \
-p 8191:8191 \
-e LOG_LEVEL=info \
--restart unless-stopped \
ghcr.io/flaresolverr/flaresolverr:latest
发请求
curl -X POST 'http://localhost:8191/v1' \
-H 'Content-Type: application/json' \
-d '{"cmd": "request.get", "url": "https://被cloudflare保护的网站.com", "maxTimeout": 60000}'
返回内容
{
"solution": {
"url": "https://目标网站.com",
"status": 200,
"response": "<!DOCTYPE html>...完整HTML...",
"cookies": [{"name": "cf_clearance", "value": "..."}],
"userAgent": "Mozilla/5.0 ..."
},
"status": "ok"
}
拿到 cookies + userAgent 后,后续请求直接用这两个值就能绕过 Cloudflare。
⚡ 核心 API
| 命令 | 说明 |
|---|---|
| `request.get` | GET 请求 + 过 Cloudflare |
| `request.post` | POST 请求 + 过 Cloudflare |
| `sessions.create` | 创建持久浏览器会话(避免每次重新启动 Chrome) |
| `sessions.list` | 列出活跃会话 |
| `sessions.destroy` | 关闭会话释放资源 |
关键参数
| 参数 | 说明 |
|---|---|
| `session` | 复用持久会话(大幅减少资源消耗) |
| `maxTimeout` | 最大等待时间(默认 60s) |
| `proxy` | 上游代理(HTTP/SOCKS4/SOCKS5) |
| `returnScreenshot` | 返回 Base64 PNG 截图 |
| `disableMedia` | 禁止加载图片/CSS/字体(加速) |
| `waitInSeconds` | 过完挑战后额外等待(加载动态内容) |
| `tabs_till_verify` | Turnstile 验证码按 Tab 次数 |
| `session_ttl_minutes` | 会话自动过期轮转 |
📊 持久会话 vs 临时会话
| 临时会话 | 持久会话 | |
|---|---|---|
| 行为 | 每次请求启动新 Chrome | 复用同一个 Chrome 实例 |
| 速度 | 慢(~5-10s 启动) | **快(直接复用)** |
| 内存 | 每次 ~300-500MB | 固定一份 |
| Cookies | 每次重新获取 | **累积保留** |
| 适合 | 偶尔用一次 | 频繁请求同一站点 |
生产环境必须用持久会话,否则内存会爆。
🆚 竞品对比
| FlareSolverr | Browser Use Cloud | ZenRows | Bright Data | |
|---|---|---|---|---|
| 类型 | **开源自托管** | 云服务 | 云 API | 云 API |
| 价格 | **免费** | 按 token 计费 | $69/月起 | $500/月起 |
| 隐身能力 | 中等 | **强(专业反检测)** | **强** | **最强** |
| 并发 | 受限于 RAM | **自动扩展** | 自动扩展 | 自动扩展 |
| Turnstile | ✅ 支持 | ✅ | ✅ | ✅ |
| 维护 | 需要自己更新 | 托管 | 托管 | 托管 |
| 适合 | 个人/小规模 | AI Agent | 商业爬虫 | 企业级 |
FlareSolverr 的优势:完全免费 + 自托管 + 数据不过第三方。
💡 与我们的关联
1. 解决 web_fetch 被拦的问题 ⭐⭐⭐
我们做深度研究时经常遇到 Cloudflare 拦截:
web_fetch("https://某网站.com") → 403 Forbidden / Cloudflare 挑战页
有了 FlareSolverr,可以:
# 先过 Cloudflare 拿 cookies
curl -X POST localhost:8191/v1 -d '{"cmd":"request.get","url":"https://某网站.com"}'
# 然后用 cookies 直接访问
web_fetch("https://某网站.com", headers={"Cookie": "cf_clearance=..."})
2. 可以跑在 VPS 上
我们的 VPS(1 核 2G)跑 FlareSolverr 需要注意:
- 每个请求 ~300-500MB 内存
- 必须用持久会话,不能并发多个
- 建议只在 web_fetch 失败时 fallback 使用
3. 和 Browser Use 的区别
| FlareSolverr | Browser Use | |
|---|---|---|
| 目标 | **只过 Cloudflare** | 完整的浏览器 Agent |
| 输出 | HTML + Cookies | Agent 操作结果 |
| 复杂度 | 极简(一个 API) | 复杂(LLM 决策) |
| 资源 | 轻(按需启动) | 重(常驻 Agent) |
两者互补:FlareSolverr 解决"进门"问题,Browser Use 解决"进门后操作"问题。
4. 与 OpenClaw 内置浏览器的区别
OpenClaw 的 browser tool 也能绕过 Cloudflare(Playwright + 真实浏览器),但:
- FlareSolverr 更轻量(用完即关)
- FlareSolverr 返回 cookies 可复用(不用每次开浏览器)
- FlareSolverr 是独立服务,其他工具也能用
5. 部署建议
# 在 VPS 上跑
docker run -d --name=flaresolverr \
-p 8191:8191 \
-e LOG_LEVEL=info \
--restart unless-stopped \
ghcr.io/flaresolverr/flaresolverr:latest
然后在 Agent 里遇到 Cloudflare 时自动 fallback 调用。
⚠️ 注意事项
1. 内存杀手:每个请求 ~300-500MB,低内存机器必须用持久会话
2. 不是万能的:Cloudflare 持续升级反检测,FlareSolverr 可能过不了最新版
3. User-Agent 必须匹配:用 FlareSolverr 拿到的 cookies 必须配合同一个 User-Agent
4. 法律/TOS 风险:绕过 Cloudflare 可能违反目标网站 ToS
5. ARM 支持:Docker 镜像支持 ARM64/ARM32,适合树莓派
📊 评分
| 维度 | 评分(/10) |
|---|---|
| 实用性 | 9.0 — 解决了爬虫/Agent 最常见的痛点 |
| 易用性 | 9.0 — Docker 一行启动,API 极简 |
| 可靠性 | 7.0 — Cloudflare 升级后可能失效,需要跟进更新 |
| 资源效率 | 6.5 — 每请求一个 Chrome,内存重 |
| 与我们的适配度 | 8.0 — web_fetch 被拦时的完美 fallback |
| **综合** | **8.0** |
报告由深度研究助手自动生成 | 2026-03-25
来源: GitHub