解决 ChatGPT 转 API 报错:FlareSolverr 的正确开启姿势
很多搭建过 ChatGPT 转 API 服务的朋友们,可能都遇到过这种糟心事:配置好一切,脚本报错,提示 Cloudflare 鉴权失败,或者直接被 5 秒盾拦截。这其实是因为你的请求被 Cloudflare 的防火墙识别为了“非正常流量”,直接挡在了门外。
要解决这个问题,最稳妥的方案就是引入 FlareSolverr。它不仅是一个代理工具,更像是一个帮你“过安检”的机器人。今天就来手把手教大家如何在 ChatGPT 转 API 项目中正确开启并配置 FlareSolverr。
什么是 FlareSolverr?
FlareSolverr 通过无头浏览器绕过 Cloudflare 验证的工作原理
简单来说,FlareSolverr 是一个运行在服务器上的代理服务器,专门用来绕过 Cloudflare 的反爬虫保护(俗称 5 秒盾、Turnstile 等)。它的原理是在服务器后台通过 Puppeteer 或 Firefox 启动一个无头浏览器,帮你“人工”访问目标网站,通过验证后把获取到的网页内容或 Cookie 返回给你的程序。
对于 ChatGPT 转 API 这种需要模拟浏览器维持 Session 的场景,它是绝配。
使用 Docker 快速部署 FlareSolverr 的命令场景
第一步:准备工作
在开始之前,你需要有一台 VPS。推荐使用支持 KVM 架构的 VPS,因为有些 OpenVZ 的 VPS 在运行带浏览器内核的容器时可能会有兼容性问题。系统方面,主流的 Debian、Ubuntu 都没问题。
当然,你本地得先安装好 Docker 和 Docker Compose,这是目前部署此类工具最省心的方式。
第二步:Docker 快速部署 FlareSolverr
不要去一个个装依赖,直接用 Docker 一键拉起镜像是最稳的。创建一个目录,新建一个 docker-compose.yml 文件,填入以下配置:
version: '3'
services:
flaresolverr:
image: ghcr.io/flaresolverr/flaresolverr:latest
container_name: flaresolverr
environment:
- LOG_LEVEL=info
- LOG_HTML=false
- CAPTCHA_SOLVER=none
- TZ=Asia/Shanghai
ports:
- "8191:8191"
restart: unless-stopped
这里我们将容器的 8191 端口映射到了宿主机。保存文件后,直接执行:
docker-compose up -d
等待几秒钟,输入 docker ps 查看容器是否处于运行状态。如果看到 Status 是 Up,恭喜你,代理服务已经跑起来了。
第三步:配置 ChatGPT 转 API 连接 FlareSolverr
有了代理服务,接下来需要告诉你的 ChatGPT 转 API 程序去调用它。这里以常见的 chatgpt2api 项目为例(具体视你使用的项目而定,但逻辑大同小异)。
通常这类项目会提供一个代理 URL 的配置项。你需要将其指向 FlareSolverr 的接口地址:
正确的配置姿势
如果你的程序支持直接设置 HTTP 代理,地址应填入:
http://你的服务器IP:8191/v1/
这里有几个细节需要注意:
-
接口路径:很多朋友会漏掉
/v1/这个后缀,导致 404 错误。FlareSolverr 默认的请求入口是+,但很多开源项目封装后是按标准 API 格式走,具体要看你使用的chatgpt2api源码说明。一般来说,如果提示格式错误,试着把 URL 改用POST http://IP:8191/v1的方式调用。 -
命令模式:FlareSolverr 支持通过 POST 请求发送 JSON 来控制它。如果你需要传递特定的 headers 或 cookies,需要在请求体中指定
cmd: 'request.get'等参数。
常见问题排查
1. 依然报错 403 或 520?
这可能是触发了更高级的验证。尝试修改 docker-compose.yml,设置环境变量 CAPTCHA_SOLVER 为第三方验证码服务(如果有的话),或者增加 HEADLESS: true 确保浏览器模式开启。
2. 返回速度很慢? 这是正常的。因为 FlareSolverr 真的启动了一个浏览器去跑 JS 代码,这比直接 HTTP 请求要慢得多。如果你的 VPS 资源只有 512MB 内存,可能会卡住,建议至少给到 1G 内存。
3. 如何确认是否生效? 你可以先用 curl 测试一下 FlareSolverr 本身是否通:
curl -X POST http://127.0.0.1:8191/v1 \
-H "Content-Type: application/json" \
-d '{"cmd":"request.get","url":"https://chatgpt.com","maxTimeout":60000}'
如果返回了一大堆 HTML 代码且没有 Cloudflare 报错字样,说明绕过成功,此时再去配置你的 API 转换工具。
总结
搭建 ChatGPT 转 API 服务的核心难点就在于“伪装”成正常用户。FlareSolverr 正好解决了这个痛点,但在使用时一定要匹配好接口格式和代理端口。希望这篇教程能帮你解决总是断连的烦恼,让服务跑得更长久一些。

评论已关闭