资讯动态

Sub2API + CCSwitch 实现 Codex 反向代理:多账号流量分发实战(解决codex手机号验证)

发布时间:2026/9/27 22:33:33 来源:尧图企业网站定制
1. Codex 手机号验证卡住时反向代理能做什么最近打开 Codex 时突然弹出手机号验证填完号码又收不到验证码尤其是英国号码在 GitHub Issue 区被反复讨论。这个问题的本质不是 Codex 本身坏了而是账号来源和登录环境触发了额外的安全校验。如果你用的是官方渠道正常订阅的 GPT Plus一般不会遇到这道门槛但如果你手里有多个来源不一的账号或者通过非官方渠道拿到的账号验证弹窗就会频繁出现甚至直接卡死无法继续。这时候单靠换号解决不了根本问题因为每个账号都可能被单独验证。更稳的思路是把请求先收拢到一个反向代理层由代理层统一管理多个账号、做流量分发和轮询Codex 客户端只认一个固定的 API 地址。这样即使某个账号被要求验证代理层可以自动切到下一个可用账号前端几乎无感。Sub2API 负责的就是这个反向代理和流量分发CCSwitch 负责在多个 Provider 之间一键切换调用目标。两者配合你可以把多个 Codex 兼容账号挂到 Sub2API 后面再用 CCSwitch 把 Codex 的请求指向 Sub2API 的本地地址。整个链路里Codex 不再直接暴露账号验证弹窗的触发概率会明显下降多账号管理也从手工切换变成自动轮询。这篇文章面向的是已经有一定 Codex 使用经验、手里有多个账号或 API Key、想用反向代理解决验证和分发问题的开发者。下面会给出 Sub2API 和 CCSwitch 的可复制配置骨架以及用 TaoToken 统一 Key 接入的方式最后附上验证多账号轮询是否生效的具体操作。2. 前置准备Sub2API、CCSwitch 与 TaoToken 通道在动手之前先把三个角色的定位理清楚。Sub2API 是反向代理和流量分发的核心它接收 Codex 发来的请求然后按你配置的账号池轮流转发。CCSwitch 是 Provider 切换工具它不直接处理流量而是帮你把 Codex 或 Codex 插件的 API 地址改到 Sub2API 的监听端口上。TaoToken 在这里扮演统一 Key 和 API 通道的角色你可以把它理解为一个稳定的上游入口避免每个账号都去直连原始地址。TaoToken 的官网入口是 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 地址是 https://taotoken.net/api 。注意 API 地址后面不加 UTM 参数直接用于配置里的 base_url。如果你还没有 Key可以先到 API Keys 页面创建一个后面 Sub2API 的 Provider 配置会用到。环境方面Sub2API 推荐用 Docker Compose 部署前置条件是 Docker 20.10 和 Docker Compose v2。CCSwitch 直接下载对应平台的安装包即可Windows、macOS、Linux 都有 release。Codex 这边你至少需要准备两个以上的可用账号或 API Key否则多账号轮询没有意义。账号可以是 GPT Plus 订阅账号也可以是 Codex 兼容的 API Key但要注意账号来源的合规性非官方渠道的账号本身就可能触发验证代理层只能缓解不能根治。部署 Sub2API 时你可以选择云服务器部署给团队共用也可以本地部署只给自己用。本地部署的问题更少因为不涉及公网暴露和额外的网络策略。下面以本地 Docker Compose 部署为例给出完整的命令和配置骨架。3. 可复制配置Sub2API 部署与 CCSwitch 接入先创建部署目录并拉取部署脚本。Sub2API 的官方仓库提供了自动化部署脚本执行以下命令mkdir -p sub2api-deploy cd sub2api-deploy curl -sSL https://raw.githubusercontent.com/Wei-Shaw/sub2api/main/deploy/docker-deploy.sh | bash docker compose up -d docker compose logs -f sub2api脚本会生成 docker-compose.yml里面包含 Sub2API 主服务、PostgreSQL 和 Redis 三个容器。启动后查看日志确认服务监听端口默认一般是 8080 或 3000具体以日志输出为准。首次启动后需要初始化管理员账号你可以通过日志里的提示或直接查数据库拿到初始密码登录后台后第一件事是修改密码。登录 Sub2API 后台后按以下顺序配置。第一步创建分组分组的作用是把不同来源的账号隔离开比如你可以建一个 codex-plus 分组放 GPT Plus 账号再建一个 codex-api 分组放 API Key 账号。第二步导入账号Sub2API 支持上传 JSON 文件批量导入。如果你用的是 GPT 账号需要先登录 ChatGPT 获取 session访问 https://chatgpt.com/api/auth/session 把返回的 JSON 内容全选复制存成 json 文件后上传到 Sub2API。导入完成后把账号分配到对应分组。第三步创建密钥。在 Sub2API 后台的密钥管理里新建一个 Key这个 Key 是给 CCSwitch 或 Codex 客户端用的不是上游账号的 Key。创建后保存好后面配置里会用到。接下来配置 CCSwitch。打开 CCSwitch新建一个 Provider类型选择 OpenAI 兼容或自定义base_url 填 Sub2API 的本地地址比如 http://127.0.0.1:8080/v1 API Key 填刚才在 Sub2API 创建的密钥。注意这里不要填 localhost因为部分客户端无法识别 localhost统一用 127.0.0.1。保存后点击测速如果测速通过说明反向代理链路已经通了。如果你希望上游走 TaoToken 的统一通道可以在 Sub2API 的 Provider 配置里把上游地址设为 https://taotoken.net/api Key 用 TaoToken 的 API Key。这样 Sub2API 负责多账号分发TaoToken 负责提供稳定的上游入口两层配合可以进一步降低单个账号被验证的概率。TaoToken 的模型对话入口在 https://taotoken.net/api Coding Plan 适合长期编码场景具体可以在官网看对应说明。4. 验证多账号轮询与请求结果配置完成后不要急着在 Codex 里直接写代码先用 curl 验证 Sub2API 的轮询是否生效。执行以下命令把 base_url 和 Key 替换成你自己的curl -X POST http://127.0.0.1:8080/v1/chat/completions \ -H Authorization: Bearer 你的Sub2API密钥 \ -H Content-Type: application/json \ -d { model: gpt-4o, messages: [{role: user, content: ping}], max_tokens: 10 }如果返回正常的 JSON 响应说明 Sub2API 已经能把请求转发到上游账号。接下来验证轮询连续执行多次同样的请求然后到 Sub2API 后台的请求日志里查看每次请求命中的账号应该不同。如果始终命中同一个账号检查分组里是否只导入了一个账号或者轮询策略是否被设成了固定。再验证 CCSwitch 的切换是否生效。在 CCSwitch 里把当前 Provider 切到 Sub2API然后打开 Codex 或 Codex 插件发一个简单的代码补全请求。如果 Codex 能正常返回结果说明 CCSwitch 已经把请求指向了 Sub2API。这时候你可以故意在 Sub2API 后台禁用其中一个账号再发请求如果 Codex 仍然能正常返回说明故障转移也生效了。实测下来多账号轮询生效后Codex 的验证弹窗出现频率会明显下降因为请求不再集中在一个账号上。但要注意如果所有账号都触发了验证代理层也无能为力这时候需要补充新的可用账号。另外Sub2API 的日志里会记录每个请求的账号、耗时和状态码排障时优先看这里。5. 本篇常见错排查测速不通过提示连接被拒绝。最常见的原因是 base_url 填了 localhost。CCSwitch 和部分客户端在解析 localhost 时可能走 IPv6 或解析失败统一改成 127.0.0.1。如果还是不通检查 Sub2API 容器是否真的在监听对应端口用docker compose ps看容器状态用curl http://127.0.0.1:8080/health看健康检查接口。导入账号后请求仍然报 401。先确认 Sub2API 里创建的密钥有没有复制错注意前后不要有空格。然后检查账号分组是否正确导入的账号是否被分配到了你请求时指定的分组。如果用的是 GPT session 导入session 过期也会导致 401需要重新登录 ChatGPT 获取新的 session。Codex 里切换 Provider 后没有生效。CCSwitch 修改配置后部分客户端需要重启才能读取新配置。先完全退出 Codex 再重新打开。如果还是不行检查 CCSwitch 是否真的写入了配置文件可以手动打开 Codex 的配置文件确认 base_url 是否已经变成 Sub2API 的地址。轮询不生效始终走同一个账号。检查 Sub2API 的分组策略有些版本默认是加权轮询如果某个账号权重特别高会一直命中。把权重调成一致或者改成严格轮询。另外确认分组里确实有多个账号处于启用状态被禁用的账号不会参与轮询。请求超时或响应很慢。先看 Sub2API 日志里上游账号的响应时间如果某个账号特别慢把它从分组里临时禁用。如果所有账号都慢可能是上游通道的问题这时候可以切到 TaoToken 的统一通道试试TaoToken 的接入文档里有 base_url 和 Key 的配置说明按文档改一下 Sub2API 的上游地址即可。6. 接入方式与后续操作入口如果你在排障过程中需要重新生成 Key 或查看接入参数直接到 API Keys 页面操作接入文档里有完整的 base_url 和请求示例。验证模型是否可用时可以用模型对话页面发一条测试消息确认上游通道正常。如果你打算长期用 Codex 做编码或跑 Agent建议看一下 Coding Plan它更适合高频调用场景配合 Sub2API 的多账号分发可以进一步稳住可用性。整个链路的核心思路是Codex 只认 CCSwitchCCSwitch 只认 Sub2APISub2API 负责多账号轮询和故障转移TaoToken 提供统一的上游通道。这样即使某个账号触发手机号验证也不会直接卡死你的编码流程。配置完成后记得定期检查 Sub2API 的账号状态及时补充新账号保持轮询池的可用性。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑