|
Download docs/flaresolverr-cloudflare.md from zlcy/study: direct link, hf CLI and curl.
- Browser
- Download file 3.29 kB
-
https://huggingface.co/spaces/zlcy/study/resolve/main/docs/flaresolverr-cloudflare.md
- Command line
-
hf download hf://spaces/zlcy/study/docs/flaresolverr-cloudflare.md
-
curl -L -o flaresolverr-cloudflare.md https://huggingface.co/spaces/zlcy/study/resolve/main/docs/flaresolverr-cloudflare.md
3.29 kB
FlareSolverr 处理 Cloudflare 拦截
本文说明如何配合 docker-compose.warp.yml 中的 WARP、Privoxy、FlareSolverr,解决注册流程遇到 Cloudflare 拦截的问题。
工作方式
注册流程不会每个请求都调用 FlareSolverr。当前逻辑是:
- 注册请求先按配置走代理链路。
- 如果响应被识别为 Cloudflare challenge 或 403/503 拦截,后端调用 FlareSolverr。
- FlareSolverr 打开目标地址并返回
cf_clearancecookie 和 User-Agent。 - 后端把 clearance 写入当前注册 session,并重试当前请求一次。
- 同进程内会缓存 clearance,后续同 host 请求可复用。
启动容器
推荐直接使用仓库里的 WARP compose:
docker compose -f docker-compose.warp.yml up -d
相关服务:
| 服务 | 用途 | 默认内部地址 |
|---|---|---|
warp-proxy |
提供 WARP 出站网络 | socks5://warp-proxy:1080 |
privoxy |
把 HTTP 代理转发到 WARP | http://privoxy:8118 |
flaresolverr |
获取 Cloudflare clearance | http://flaresolverr:8191 |
app |
chatgpt2api 主服务 | http://localhost:3000 |
如果 app 运行在 Docker compose 网络内,FlareSolverr URL 使用:
http://flaresolverr:8191
如果 app 直接运行在宿主机,FlareSolverr URL 通常需要改成:
http://127.0.0.1:8191
设置页配置
打开:
http://localhost:3000/settings/
进入 FlareSolverr tab,推荐配置:
| 字段 | 推荐值 |
|---|---|
| 启用 FlareSolverr 清障 | 开启 |
| 出站模式 | 单代理/WARP |
| 清障代理 URL | http://privoxy:8118 |
| Clearance 模式 | FlareSolverr |
| FlareSolverr URL | http://flaresolverr:8191 |
| 超时秒数 | 60 |
| 刷新间隔秒数 | 3600 |
保存后可以点击:
测试当前清障代理测试 Clearance
两个测试都通过后,再启动注册任务。
注册页使用
打开:
http://localhost:3000/register/
正常配置邮箱和注册参数即可。遇到 Cloudflare 拦截时,日志会出现类似:
检测到 Cloudflare 拦截,尝试刷新 clearance
Cloudflare clearance 刷新完成,重试当前请求
如果刷新失败,日志会提示 clearance 刷新失败或重试后仍失败,这通常表示当前 IP、WARP 出口或 FlareSolverr 浏览器环境仍被拦截。
常见问题
FlareSolverr 地址填哪个?
- Docker compose 内运行 app:
http://flaresolverr:8191 - 宿主机运行 app:
http://127.0.0.1:8191
为什么打开了 FlareSolverr,但注册一开始没有调用?
这是正常的。FlareSolverr 只在检测到 Cloudflare 拦截后触发,用来刷新 clearance 并重试当前请求。
为什么测试代理成功,但 Clearance 失败?
代理只说明出站网络可用。Clearance 失败可能是:
flaresolverr容器没有启动- app 无法访问
flaresolverr_url - WARP 出口 IP 仍被 Cloudflare 拦截
- FlareSolverr 启动浏览器超时
如何确认容器在运行?
docker compose -f docker-compose.warp.yml ps
查看 FlareSolverr 日志:
docker logs -f chatgpt2api-flaresolverr
查看主服务注册日志:
docker logs -f chatgpt2api-warp