在并行任务、Agent 批量执行或长时间交互式编程场景下,单账号会频繁触发限流。
解决思路很简单,是把多个 Plus 账号做成号池:
通过 sub2api 对外暴露单一 API 接口,内部根据实时额度状态进行账号调度和负载分配。
更重要的是,这套方案的成本非常可控。下面这张图是我昨天的实际用量:2 亿 Token。
接下来,我将完整介绍这一方案的部署方式、成本结构,以及实际使用中的注意事项。
长文预警,先点个收藏以防丢失哦!
方案概览:sub2api + 多账号池架构
sub2api 是一个开源的 AI API 网关平台,专门用于管理和分发 AI 订阅服务的配额。它的核心功能包括:
-
统一接口:将多个 Claude/Codex Plus 账号整合成单一 API 端点
-
智能调度:根据账号实时额度自动选择可用账号,避免限流
-
负载均衡:支持账号分组和权重配置,合理分配请求
-
拼车共享:可以生成多个 API Key,与朋友共享用量
-
使用监控: Web 面板实时查看各账号用量和请求统计
架构简图:
你的应用/工具
↓ (使用 API Key)
sub2api 网关 (Docker 部署)
↓ (智能调度)
账号池: Plus账号1, Plus账号2, Plus账号3...
↓
Claude/Codex 官方 API
整个系统通过 Docker Compose 一键部署,包含后端服务、PostgreSQL 数据库和 Redis 缓存。
成本与准备条件
这套方案不是“零成本”,但整体投入非常可控:
-
一台海外 VPS
推荐新加坡节点,延迟低,国内访问稳定。
阿里云/腾讯云轻量服务器约 30 元/月即可满足需求。 -
Codex Plus 账号若干
数量取决于你的使用强度,建议先购买 2 个测试,不够用再追加。
⚠️ 重要说明:这里不是购买账号本身,而是购买“拉入 Business 团队”的服务。你需要自己提供已注册 OpenAI 的邮箱账号,卖家会将你的账号拉入到他们的 Business 团队中,从而获得 Codex 5.3 的使用权限。
闲鱼价格通常在 10 元左右/账号(按月计费)。 -
域名(推荐)
⚠️ 重要提示:直接通过 IP 访问可能会导致前端 JS 文件加载失败,强烈建议绑定域名使用。
域名可以在阿里云、腾讯云等平台购买,买个几块钱的能用就行。
部署步骤
前置准备
1. 安装 Docker 和 Docker Compose
确保服务器已安装 Docker 和 Docker Compose V2。
2. 安装 1Panel(推荐)
1Panel 是一个开源的 Linux 服务器运维管理面板,可以方便地管理 Docker 容器、配置反向代理、绑定域名等。强烈推荐安装,特别是需要配置域名访问的场景。
安装命令:
bash -c "$(curl -sSL https://resource.fit2cloud.com/1panel/package/v2/quick_start.sh)"
安装步骤:
-
选择语言(中文/English)
-
一路回车,全部使用默认配置
-
重要:记住安装完成后显示的:
-
安全入口
-
面板用户名
-
面板密码
-
外部访问地址(如
http://YOUR_SERVER_IP:24045/安全入口)
-
- 在浏览器访问外部地址,输入用户名和密码登录
如果无法访问面板:
大概率是服务器防火墙没有放行端口。1Panel 默认使用 24045 端口,需要在云服务器安全组中添加入站规则,开放该端口。
1Panel 的作用:
-
可视化管理 Docker 容器
-
配置 Nginx 反向代理,绑定域名
-
自动申请和续期 SSL 证书(Let‘s Encrypt)
-
监控服务器资源使用情况
安装完成后,可以继续进行 sub2api 的部署。
部署 sub2api
sub2api 提供了两种 docker-compose 配置文件:
-
docker-compose.local.yml: 数据存储在本地目录,备份和迁移更方便(推荐)
-
docker-compose.yml: 数据存储在 Docker 命名卷中,适合简单场景
本教程使用 docker-compose.local.yml 进行部署。
Docker Compose 部署步骤
步骤 1: 创建项目目录
mkdir -p ~/sub2api && cd ~/sub2api
步骤 2: 下载 docker-compose 配置文件
wget https://raw.githubusercontent.com/Wei-Shaw/sub2api/main/deploy/docker-compose.local.yml
或使用 curl:
curl -o docker-compose.local.yml https://raw.githubusercontent.com/Wei-Shaw/sub2api/main/deploy/docker-compose.local.yml
步骤 3: 创建 .env 配置文件
cat > .env << 'EOF'
# 数据库配置
POSTGRES_USER=sub2api
POSTGRES_PASSWORD=your_secure_db_password_here
POSTGRES_DB=sub2api
# Redis 配置
REDIS_PASSWORD=your_secure_redis_password_here
# 应用配置
JWT_SECRET=your_jwt_secret_here_min_32_chars
ADMIN_PASSWORD=your_admin_password_here
# 服务端口(可选,默认 8080)
APP_PORT=8080
EOF
步骤 4: 生成安全的随机密钥
⚠️ 重要:必须使用强密码!可以使用以下命令生成:
# 生成 JWT_SECRET(至少 32 字符)
openssl rand -base64 32
# 生成 ADMIN_PASSWORD
openssl rand -base64 16
将生成的密钥填入 .env 文件中对应的位置,或者使用以下命令自动追加(注意会覆盖之前的值):
sed -i "s|your_jwt_secret_here_min_32_chars|$(openssl rand -hex 32)|" .env
sed -i "s|your_admin_password_here|$(openssl rand -hex 16)|" .env
sed -i "s|your_secure_db_password_here|$(openssl rand -hex 16)|" .env
sed -i "s|your_secure_redis_password_here|$(openssl rand -hex 16)|" .env
步骤 5: 启动服务
docker compose -f docker-compose.local.yml up -d
步骤 6: 查看服务状态
docker compose -f docker-compose.local.yml ps
你应该看到三个容器都处于 Up 状态:
-
sub2api(主服务)
-
postgres(数据库)
-
redis(缓存)
步骤 7: 查看管理员密码
查看 .env 文件中的管理员密码:
cat .env | grep ADMIN_PASSWORD
或查看完整配置:
cat .env
配置域名访问(推荐)
⚠️ 重要提示:直接通过 IP 访问可能会导致前端 JS 文件加载失败,强烈建议配置域名访问。
步骤 1: 同步 1Panel 应用商店
首次安装和使用 1Panel 的用户,需要远程同步应用商店。
步骤 2: 安装 OpenResty
在应用商店中搜索并安装 OpenResty(Nginx 的增强版),点击安装,使用默认配置直接确定即可。
步骤 3: 创建反向代理网站
-
在 1Panel 中进入“网站” → “创建网站” → 选择“反向代理”
-
填写配置信息:
-
主域名:填写你的域名(如
sub2api.yourdomain.com) -
代理地址:
127.0.0.1:8080 -
其他选项保持默认
-
-
点击确认创建
步骤 3: 配置域名解析
在你的域名服务商(如阿里云、腾讯云、Cloudflare 等)控制台中,添加 A 记录:
-
记录类型: A
-
主机记录: sub2api(或你想要的子域名)
-
记录值:你的服务器公网 IP
-
TTL: 默认值(通常是 600 秒)
步骤 4: 验证访问
等待 DNS 解析生效(通常 1-10 分钟),然后在浏览器访问你的域名(如 http://sub2api.yourdomain.com),查看页面是否正常显示。
首次登录配置
在浏览器访问你的域名(如 https://sub2api.yourdomain.com)或 http://YOUR_SERVER_IP:8080(如果未配置域名)
使用管理员账号登录:
-
邮箱:
admin@sub2api.local -
密码:在
.env文件中设置的ADMIN_PASSWORD
如果忘记密码,可以查看 .env 文件:
cat ~/sub2api/.env | grep ADMIN_PASSWORD
配置账号池
1. 创建账号分组
在添加账号之前,建议先创建分组,这样可以更好地管理和调度不同来源的账号。
进入管理面板后,点击 “Groups” → “Create New Group”
填写分组信息:
-
Group Name: 分组名称(如 “Codex 账号池”)
-
Platform: 选择平台类型
-
如果是 Codex Plus 账号,选择 OpenAI
-
如果是 Claude 官方账号,选择 Claude
-
如果是 Antigravity 服务,选择 Antigravity
-
-
Description: 分组描述(可选)
2. 添加 Codex Plus 账号
创建好分组后,点击 “Accounts” → “Add Account”
填写账号信息:
-
Account Type: 根据账号类型选择
-
Codex Plus 账号:选择 OpenAI
-
Claude 官方账号:选择 Claude
-
Antigravity 服务:选择 Antigravity
-
-
Session Key: 填入账号的 Session Token
-
Account Name: 给账号起个名字,方便识别(如 “Codex Plus 账号 1”)
-
Group: 选择刚才创建的分组(如 “Codex 账号池”)
-
Weight: 权重,数字越大被调度的概率越高(默认 1 即可)
如何获取 Session Token:
-
复制授权链接,粘贴到新 tab 打开
-
登录平台然后会跳转到授权页面
-
点击授权后,会重定向到一个 localhost 地址
-
复制完整的 localhost 链接,粘贴回去
重复上述步骤,添加所有 Plus 账号。
2. 创建 API Key
点击 “API Keys” → “Create New Key”
配置选项:
-
Key Name: API Key 的名称 (如 “我的开发环境”)
-
Rate Limit: 速率限制 (可选)
-
Quota: 配额限制 (可选)
-
Account Groups: 选择使用刚才创建的分组
创建后会生成一个 API Key
3. 为账户充值(使用兑换码)
创建 API Key 后,需要为其充值才能正常调用 API。sub2api 使用兑换码系统进行充值管理。
步骤 1: 生成兑换码
-
在管理面板点击 “兑换码”
-
填写兑换码信息:
-
Amount: 充值金额(虚拟额度,用于内部计费)
-
Expiry Date: 兑换码有效期(可选)
-
Max Uses: 最大使用次数(默认 1 次)
-
-
点击创建,系统会生成一个兑换码
步骤 2: 使用兑换码充值
-
在管理面板点击右上角的用户菜单 → “兑换”
-
输入刚才生成的兑换码
-
点击“兑换”确认充值
-
充值成功后,你的账户余额会相应增加,API Key 即可正常使用
说明:
-
兑换码系统主要用于多人拼车场景,管理员可以生成兑换码分发给其他用户
-
如果只是自用,可以生成一个大额度的兑换码,一次性充值到账户中
-
充值额度是虚拟的,不涉及真实货币交易,主要用于内部配额管理
在 Coding Agent 中使用 API
配置完成后,你可以在各类 AI 编程工具中使用 sub2api 提供的 API。
方式一:使用 cc-switch 快速配置(推荐)
cc-switch 是一个开源的配置管理工具,可以快速切换不同 AI 服务商的配置,无需手动修改各个 Coding Agent 的配置文件。
项目地址:https://github.com/farion1231/cc-switch
重要提示:
-
API Key 与账号分组绑定,不同平台需要创建对应的 API Key
-
例如:Codex、Claude、Gemini 需要分别创建三个 API Key(分别关联对应的账号分组)
-
如果想统一管理,可以在创建 API Key 时自定义名称,使用相同的 Key 值(但需确保该 Key 关联了所有平台的账号分组)
配置示例:
1. Claude 配置
2. Codex 配置
按照图中的配置格式填写你的域名和 API Key 即可。
方式二:手动修改配置文件
如果你使用的工具不支持 cc-switch,可以手动修改配置文件。
OpenCode 配置
OpenCode 需要配置三个平台的 baseURL 和 API Key:
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"anthropic": {
"options": {
"baseURL": "https://sub2api.yourdomain.com/v1",
"apiKey": "your_claude_api_key"
}
},
"google": {
"options": {
"baseURL": "https://sub2api.yourdomain.com/v1beta",
"apiKey": "your_gemini_api_key"
}
},
"openai": {
"name": "OpenAI",
"options": {
"baseURL": "https://sub2api.yourdomain.com/v1",
"apiKey": "your_codex_api_key"
}
}
}
}
配置说明:
-
将
sub2api.yourdomain.com替换为你的实际域名 -
将
your_api_key替换为在 sub2api 管理面板创建的 API Key -
不同平台使用对应的 API 端点(Claude 和 OpenAI 用
/v1, Google 用/v1beta)
使用效果与注意事项
实际使用效果
部署完成后,你将获得:
-
无缝切换:当某个账号触发限流时,系统自动切换到其他可用账号,你的工作流不会中断
-
用量监控:在管理面板实时查看每个账号的使用情况和剩余配额
-
成本优化:多人共享时,每人分摊成本大幅降低
典型场景的用量表现:
-
单人重度使用: 3-5 个 Plus 账号基本够用
-
2-3 人拼车:每人 2 个账号,共 4-6 个账号池
-
小团队 (5 人): 10-15 个账号,平均每人 2-3 个
常见问题
1. 通过 IP 访问时前端 JS 文件加载失败
问题现象:
Docker 容器启动成功,但通过 http://YOUR_SERVER_IP:8080 访问时,页面无法正常显示,浏览器控制台显示 JS 文件加载失败(如 index-CP0CNDtB.js 等文件 404)。
原因:
sub2api 的前端资源路径配置问题,直接使用 IP 访问时可能导致静态资源加载失败。
解决方案:
方法一:绑定域名访问(推荐)
-
准备一个域名,并将 A 记录解析到服务器 IP
-
使用 1Panel 配置反向代理:
-
在 1Panel 中进入“网站” → “创建网站” → “反向代理”
-
域名填写你的域名(如
sub2api.yourdomain.com) -
代理地址填写
http://127.0.0.1:8080 -
开启 HTTPS(可选)
-
-
通过域名访问:
https://sub2api.yourdomain.com
方法二:修改 docker-compose 配置(临时方案)
如果暂时没有域名,可以尝试在 docker-compose.local.yml 中添加环境变量:
environment:
- BASE_URL=http://YOUR_SERVER_IP:8080
然后重启服务:
docker compose -f docker-compose.local.yml down
docker compose -f docker-compose.local.yml up -d
注意:强烈建议使用域名访问,这样不仅能解决 JS 加载问题,还能配置 HTTPS 保证安全性。
总结
通过 sub2api + 多账号池的方案,你可以用相对低廉的成本(30 元 VPS + 若干订阅账号)实现近乎无限的 Claude/Codex 使用额度。虽然部署过程需要一些技术基础,但一旦配置完成,使用体验和官方 API 几乎无差别。
这套方案特别适合以下场景:
个人重度使用:告别单账号限流困扰,多账号自动轮换,让你的 AI 编程工作流保持连续性。
朋友拼车共享:几个人一起分摊成本,每人只需支付很少的费用,就能获得充足的使用额度。通过兑换码系统,可以灵活分配每个人的配额。
团队协作场景:对于小型开发团队来说,这套方案能够将订阅账号的价值最大化。相比每人单独购买 Plus 账号,集中管理的账号池不仅成本更低,还能根据团队成员的实际使用情况动态调配资源,避免某些账号闲置而另一些账号频繁触发限流的情况。团队管理员可以统一监控用量、设置配额限制,确保资源的合理分配。
如果你是重度 AI 编程用户,或者团队需要稳定、高性价比的 AI 能力支持,这套方案值得一试。
相关链接:
-
sub2api GitHub: https://github.com/Wei-Shaw/sub2api
-
在线 Demo: https://demo.sub2api.org/
-
1Panel 官网: https://1panel.cn/