很多搭建过 ChatGPT 转 API 服务的朋友们,可能都遇到过这种糟心事:配置好一切,脚本报错,提示 Cloudflare 鉴权失败,或者直接被 5 秒盾拦截。这其实是因为你的请求被 Cloudflare 的防火墙识别为了“非正常流量”,直接挡在了门外。

要解决这个问题,最稳妥的方案就是引入 FlareSolverr。它不仅是一个代理工具,更像是一个帮你“过安检”的机器人。今天就来手把手教大家如何在 ChatGPT 转 API 项目中正确开启并配置 FlareSolverr。

什么是 FlareSolverr?

FlareSolverr 代理工作原理示意图

FlareSolverr 通过无头浏览器绕过 Cloudflare 验证的工作原理

简单来说,FlareSolverr 是一个运行在服务器上的代理服务器,专门用来绕过 Cloudflare 的反爬虫保护(俗称 5 秒盾、Turnstile 等)。它的原理是在服务器后台通过 Puppeteer 或 Firefox 启动一个无头浏览器,帮你“人工”访问目标网站,通过验证后把获取到的网页内容或 Cookie 返回给你的程序。

对于 ChatGPT 转 API 这种需要模拟浏览器维持 Session 的场景,它是绝配。

Docker 终端部署命令行截图

使用 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/

这里有几个细节需要注意:

  1. 接口路径:很多朋友会漏掉 /v1/ 这个后缀,导致 404 错误。FlareSolverr 默认的请求入口是 +,但很多开源项目封装后是按标准 API 格式走,具体要看你使用的 chatgpt2api 源码说明。一般来说,如果提示格式错误,试着把 URL 改用 POST http://IP:8191/v1 的方式调用。

  2. 命令模式: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 正好解决了这个痛点,但在使用时一定要匹配好接口格式和代理端口。希望这篇教程能帮你解决总是断连的烦恼,让服务跑得更长久一些。

标签: none

AI Skills Smart Station on Nick Launches

评论已关闭