基于开源项目 Wei-Shaw/sub2api(中文说明 README_CN)整理。
定位:订阅转 API / 号池调度——把 ChatGPT Plus、Claude、各类 Coding Plan 等订阅账号池化为统一 API,支持负载均衡、粘性会话、配额分摊。
本项目中角色:副站,作为主站 NewAPI 的一条上游渠道;对外只暴露主站。
默认端口:8080· 依赖:PostgreSQL + Redis
编码场景默认:ChatGPT Pro 号池(如 Pro20x)+ 每账号独立静态家宽代理。
| 项目 | 说明 |
|---|---|
| 项目定位 | 订阅账号池化网关:账号管理、分组、API Key 分发、计费、调度 |
| 与 NewAPI 区别 | NewAPI 强于多渠道聚合与计费中台;Sub2API 强于订阅号池(OAuth/Cookie/拼车) |
| 官方仓库 | github.com/Wei-Shaw/sub2api |
| 中文文档 | README_CN.md |
| 部署目录 | 仓库 deploy/(compose、脚本、systemd、config 样例) |
合规要点(必读)
POSTGRES_PASSWORD、JWT_SECRET、TOTP_ENCRYPTION_KEY,并开 2FA副站机器:可与 NewAPI 同机(起步)或独立海外机(日/美);不要公网裸奔。VPS 规格与港/日分工见架构 §8;出口信誉靠 每号家宽,不靠把 VPS 买很大。
| 组件 | 作用 |
|---|---|
| Sub2API 主进程 | 鉴权、API Key 分发、分组路由、池调度、计费、限流、Web 面板 |
| PostgreSQL | 账号、分组、API Key、用量等持久化 |
| Redis | 会话、限流、调度状态(粘性会话依赖) |
| 上游账号 | ChatGPT(OAuth)、Claude、Coding Plan、第三方中转 API Key 等 |
| IP 管理 / 代理 | 每账号可绑定独立出口代理;上游看到的是代理 IP,不是副站 VPS IP |
核心能力(官方)
| 概念 | 说明 | 要点 |
|---|---|---|
| 账号 Account | 一个上游订阅/凭证 | 绑定平台(OpenAI / Anthropic),类型 OAuth 或 API Key;建议绑定独立代理 |
| 分组 Group(池) | 同平台账号的集合 | 下游调用时自动负载均衡 + 故障转移 + 粘性会话;类型必须与账号平台一致 |
| API Key | 对外发放的密钥 | 绑定一个分组,是计费与调用单位 |
| 代理 / IP | 账号出网出口 | 1 账号 1 静态家宽;在 IP 管理中维护,账号编辑页勾选 |
| 池模式 | 分组的调度行为 | 多账号放一个池,掉线自动切换;粘性会话保持同一账号连续对话 |
配置规则:分组类型(平台)必须与账号平台一致;API Key 绑定分组——所以要先规划分组,再建账号与 Key。代理在加号时一并绑定。
官方推荐 Docker Compose(自带 PostgreSQL + Redis)。生产建议用
docker-compose.local.yml(本地目录存数据,便于备份迁移)。
脚本会:下载 docker-compose.local.yml + .env.example、生成 JWT_SECRET / TOTP_ENCRYPTION_KEY / POSTGRES_PASSWORD、建 data/ postgres_data/ redis_data/、打印凭证。
.env 关键项http://服务器IP:8080 进入 setup 向导,配置数据库/Redis/管理员docker compose logs sub2api | grep "admin password"config.yaml 会跳过向导,导致 users 表为空、无法登录——此时先移走 config.yaml 触发向导| 版本 | 数据存储 | 迁移 | 适用 |
| --- | --- | --- |
| docker-compose.local.yml | 本地目录 | 打包目录即可 | 生产、频繁备份(推荐) |
| docker-compose.yml | 命名卷 | 需 docker 命令 | 简单场景 |
| 项 | 建议 |
|---|---|
| 副站 VPS | 美西/日本等海外机即可(可机房 IP) |
| 真正出网 | 各账号绑定的家宽/住宅代理 |
| 对主站 | 仅内网或白名单;不对公网用户暴露 |
| 与双层网络 | 主站可在香港入口;副站在美西出口机房,经隧道互通 |
平台类型要选对:调用什么模型就按其接口协议选平台(OpenAI / Anthropic)。
http://localhost... 回调地址Base URL 与 KEY,测试连接| 上游 | 平台类型 | Base URL(以官方为准) |
|---|---|---|
| 腾讯云 Coding Plan | Anthropic | 官方 coding 兼容地址 |
| 阿里云 Coding Plan | Anthropic | 官方 coding 兼容地址 |
| 阿里云百炼(后付费) | Anthropic | https://dashscope.aliyuncs.com/api/v2/apps/protocols/compatible-mode/v1 |
具体 Base URL / 模型名以各厂商最新文档为准;添加后清空默认模型并手动填该账号支持的模型。
号池风控的核心不是「副站 VPS 在哪」,而是 上游看到的出口 IP。Pro / Claude 类订阅对 机房 IP、多号共 IP、IP 乱跳 更敏感。生产建议:
原则:1 账号 ↔ 1 条固定静态家宽(或低共享住宅)代理,禁止多号挤同一出口。
副站机器本身可以是美西/日本普通 VPS;OpenAI/Anthropic 侧看到的是各账号绑定的代理出口,不是 VPS 网卡 IP(账号已绑代理时)。
http_proxy 打全部号)。账号 ID ↔ 代理 ID ↔ 出口 IP ↔ 到期日,避免重复绑定。社区确认:账号勾选代理后出网来源为代理 IP(见上游仓库 IP 管理相关讨论)。批量「IP 池自动一对一分配」以你部署版本面板能力为准;无自动分配则手工/脚本保证不重复。
| 要 | 不要 |
|---|---|
| 静态住宅 / 家宽,IP 长期不变 | 机房/数据中心 IP 直出多号 |
| 低共享(可用 ping0 等查类型、共享人数、封控) | 廉价动态池、请求间 IP 乱飘 |
| 地区与账号习惯一致(如美国家宽) | 登录地与调用出口长期不一致 |
| 带宽与并发够单号流式编码 | 多号共用一条小带宽代理 |
ChatGPT池(OpenAI)、chatgpt-pro20x(OpenAI)、Claude池(Anthropic)、腾讯Coding(Anthropic)…key-openai → ChatGPT 池;key-pro20x → Pro20x 池;key-claude → Claude 池写代码 / Cursor / Agent 等场景,本方案 默认走 ChatGPT Pro 号池(如 Pro20x),而不是自建 Azure 官价渠道:
| 项 | 建议 |
|---|---|
| 分组名 | 如 chatgpt-pro20x(平台 OpenAI) |
| 账号 | 自有合法 Pro 订阅;每号独立家宽代理(§4.4) |
| API Key | 仅发给主站 NewAPI,不直接给终端用户 |
| 主站渠道名 | 如 sub2api-pro20x-coding |
| 主站分组 | coding 或 default,Priority 高(主力) |
| 粘性会话 | 开,保证 Agent 多轮同号 |
| 兜底 | 可选低优先级三方中转;真 AZ/官方 Key 作后续稳仓,非编码默认 |
并发粗估:有效号数 × 单号可同时会话数(再受家宽/代理限制),不是 Azure TPM 提额模型。
合规:仅池化自有合法授权订阅;共享/商用须自行评估上游条款风险。
:::warning 生图 / 4K 不要默认走 Pro20x 号池是 ChatGPT 订阅会话能力,不是完整 Images API。实测与社区反馈:4K 生图支持差(参数丢失、降采样、超时)。
coding 分组 Models 不要填 gpt-image* / 4K 图像模型推荐拓扑:客户端 → 主站 NewAPI →(内网)副站 Sub2API → 订阅账号池(每号独立家宽代理)。
对接步骤:
Base URL:副站地址,建议内网(如 http://10.0.0.5:8080),勿公网裸奔Key:Sub2API 发放的 API Key| 字段 | 填写 |
|---|---|
| 类型 | OpenAI 兼容(以 Sub2API 分组协议为准) |
| 名称 | sub2api-pro20x-coding |
| Base URL | 副站内网,如 http://10.0.0.5:8080 |
| Key | Sub2API 中绑定 chatgpt-pro20x 分组的 API Key |
| Models | 与号池实际可出模型对齐 |
| Group | coding(或 default) |
| Priority | 100(编码主力) |
| Auto Ban | 开 |
编码用户令牌只放 coding 分组。号池侧必须已完成 §4.4 每号代理绑定。
详见《AI 中转站架构方案》§10、§11 与《New API 中转站运维手册》「对接 Sub2API 号池渠道」一节。
生图不走本副站:
gpt-image-2/ Adobe Firefly 生图见《AI 中转站架构方案》§12 与 NewAPI §16.6;Sub2API 专注文本/订阅号池(Pro20x 等)。
underscores_in_headers on;),否则鉴权/回调可能异常TOTP_ENCRYPTION_KEY 妥善保存tar 打包 data/ postgres_data/;升级前先备份| 现象 | 可能原因 | 处理 |
|---|---|---|
首次登录 invalid email or password |
已存在 config.yaml 跳过了向导,users 表空 |
移走 config.yaml 触发向导创建管理员 |
| 面板能开但调用失败 | DB/Redis 未就绪或上游账号异常 | 查依赖容器、测账号连接 |
| 账号测试报错 | OAuth 回调不完整 / 平台选错 / 上游封控 / 代理不通 | 重走 OAuth;核对平台;测代理连通与出口 IP |
| 分组无可用账号 | 账号未加入分组 / 全部无配额 / 代理全挂被停 | 账号加入分组;补配额;修复代理后恢复 |
| 多号同时异常/风控 | 多号共 IP 或机房 IP 裸奔 | 检查是否 1 号 1 家宽;禁止回退本机出口 |
| 鉴权头丢失 | 反代吞下划线头 | 开 underscores_in_headers on; |
| 主站调不通副站 | Base URL / Key / 协议不匹配 | 核对渠道类型、内网地址、Sub2API Key |
| 重启后需重登 / 2FA 失效 | 未设 JWT_SECRET / TOTP_ENCRYPTION_KEY |
补全并重启 |
| 对话中途变笨/断流 | 粘性会话未开导致换号,或代理中途换 IP | 开粘性;换静态代理 |
chatgpt-pro20x)sub2api-pro20x-coding 渠道,Priority 高coding 分组;可选三方中转低优先级兜底chat/completions;开粘性会话;设单号并发| 资源 | URL |
|---|---|
| GitHub | https://github.com/Wei-Shaw/sub2api |
| 中文说明 | https://github.com/Wei-Shaw/sub2api/blob/main/README_CN.md |
| 部署目录 | https://github.com/Wei-Shaw/sub2api/tree/main/deploy |
| datamanagementd 说明 | 仓库 deploy/DATAMANAGEMENTD_CN.md |
| 架构方案(主副站 / 编码编排) | AI 中转站架构方案 |
| 主站运维 | New API 中转站运维手册 |
本文结合 Sub2API 公开文档与社区教程整理,项目迭代较快,具体字段与 Base URL 以你部署的版本与各上游最新文档为准。