先给结论:小团队内部使用,可以部署一套私有 Sub2API,给每位成员单独发 Key、设置额度并查看用量;如果未来对外运营,可以再加上 New API,把不同渠道统一管理,再分发 API Key。
这篇文章按「可以照着执行」的方式整理一版搭建路线,文中的部署方法来自项目官方文档。
适用场景与最终结果
这套方案适合以下情况:
- 团队大约 3~30 人,已经在使用多种 AI 工具;
- 不想继续共享账号密码;
- 需要给每位成员独立 Key,并在离职或项目结束后单独撤销;
- 希望按成员、模型或项目查看 Token 和成本;
- 团队内有人能够维护 Linux、Docker、域名和 HTTPS。
如果只是一个人偶尔调用一次 API,或者团队没有任何服务器维护能力,自建中转站通常不会更省事。
本指南实现的工作流程是:
团队成员
↓ 每人独立 Key
私有 Sub2API
↓
经过授权的上游账号 / 官方 API
开始前的准备
把工作拆成两部分:购买服务器、购买域名和 DNS 解析由你完成;登录服务器以后需要执行的命令,交给 Codex 完成。
开始前需要准备:
- 一台可以通过 SSH 登录的 Linux 服务器;
- 一个域名或准备用作接口地址的子域名;
- 可以运行 Codex 的电脑;
- 一个专用的上游账号或官方 API Key。
第一步:购买服务器
服务器至少需要满足下面几个条件:
- 安装 Ubuntu 等常见 Linux 系统;
- 有独立公网 IPv4 地址;
- 可以使用 SSH 登录;
- 可以在安全组中开放
22、80和443端口。
机房选香港或美国都可以,配置建议轻量的 2 核 2G 以上。我用的是一年 100 多块的这家:
https://my.yecaoyun.com/aff.php?aff=7946
购买完成后,记录服务器 IP、SSH 端口、用户名和登录方式。
第二步:准备域名和 DNS
可以购买一个新域名,也可以在现有域名下增加一个子域名。还没有域名的话,可以参照这篇指南,一年 11 块钱注册一个 .COM 域名。
例如:
api.example.com
在域名服务商的 DNS 后台添加一条记录:
记录类型:A
主机记录:api
记录值:服务器公网 IP
TTL:默认
然后在云服务器安全组中:
- 开放 SSH 端口、
80和443; - 不要开放
8080; - 如果 SSH 不是默认的
22,记录实际端口。
等待 DNS 生效后,确认子域名已经解析到这台服务器。
第三步:准备给 Codex 的连接信息
把下面的信息准备好:
服务器地址:
SSH 端口:
用户名:
登录方式:SSH 私钥路径或临时密码
部署域名:
管理员邮箱:
优先使用 SSH 私钥。如果只能使用密码,建议设置一个临时密码,部署完成后立即更换。
第四步:把部署任务交给 Codex
新建一个 Codex 任务,把连接信息填入下面的提示词,然后发送给 Codex:
请通过 SSH 登录服务器,部署一套供小团队内部使用的 Sub2API。
连接信息:
- 服务器地址:<填写服务器 IP>
- SSH 端口:<填写 SSH 端口>
- 用户名:<填写用户名>
- 登录方式:<填写 SSH 私钥路径,或在私密任务中提供临时密码>
- 部署域名:<例如 api.example.com>
- 管理员邮箱:<填写管理员邮箱>
部署目标:
- 使用 Sub2API 当前官方推荐的 Docker Compose 方案;
- 使用 Nginx 提供反向代理;
- 配置 HTTPS、HTTP 自动跳转和证书自动续期;
- 公网只通过域名的 80 和 443 端口访问;
- Sub2API 的 8080 端口只绑定到 127.0.0.1,不能直接暴露到公网。
执行要求:
1. 先只读检查操作系统、磁盘、内存、现有服务、端口占用、Docker 和防火墙状态。
2. 如果发现现有网站、数据库、代理或端口冲突,停止修改并先告诉我;不要覆盖或删除已有服务。
3. 如果没有冲突,安装缺少的 Docker、Docker Compose、Nginx 和证书工具。
4. 从 Sub2API 官方仓库获取当前部署文件,不使用来源不明的一键脚本。
5. 自动生成不同的数据库密码、JWT Secret、TOTP 加密密钥和管理员密码。
6. 设置 BIND_HOST=127.0.0.1,并验证公网不能访问 8080。
7. 配置域名、Nginx、HTTPS 和证书自动续期,兼容流式输出。
8. 完成后检查容器状态、数据库、Redis、HTTPS、HTTP 跳转、证书续期和服务重启后的数据持久化。
完成后向我报告:
- 实际修改了哪些内容;
- 后台 HTTPS 地址;
- 管理员登录信息保存在哪个服务器文件中;
- 容器和 HTTPS 的检查结果;
- 8080 是否已确认无法从公网访问;
- 日常查看状态、备份和升级应该使用什么方法。
第五步:配合 Codex 完成部署
Codex 开始工作后,通常会请求运行 SSH、安装软件或修改配置的授权。逐项确认它准备执行的操作:
- 只读检查可以直接允许;
- 安装 Docker、Nginx、Certbot 和写入新的 Sub2API 配置属于本次任务范围;
- 如果它准备删除文件、覆盖已有网站、关闭不明服务或修改其他域名,先停止并核对;
- 如果发现 DNS 尚未生效或安全组没有开放
80、443,回到服务器和域名后台处理后再继续。
Codex 报告完成不等于部署成功。至少要看到它实际检查了容器、HTTPS、端口和证书续期。
第六步:登录后台并接入第一个上游
部署完成后,只通过 Codex 返回的 HTTPS 地址登录后台,例如:
https://api.example.com
- 登录后进入控制台,先创建分组(我这里创建的是 gpt)。
- 进入「账号管理」,添加账号。
- 建议用 OpenAI:账号订阅选 OAuth,有官方 API 的可以用 API Key,我们做反代用(目前 OpenAI 对国区还算友好)。最下面选择刚创建的分组,点下一步。
- 生成授权链接。如果有 session,也可以在 session.nobrisk.com 转成 Sub2API 的 JSON 导入。
- 复制这个链接到浏览器打开,去登录。
- 登录成功后会显示「无法访问此网站」,这是正常的。复制地址栏的完整网址,填回 Sub2API,点完成授权。
- 这样账号就授权进来了,可以看到具体的账号信息和剩余额度。
第七步:创建 Key
- 在 API 密钥里创建 Key。
- 选择刚创建的分组,这把 Key 就可以用刚才分组里的账号了。
- 创建完之后,就可以用你的密钥和网站地址来进行调用了。
Base URL:你的 HTTPS 中转站地址
API Key:自己的 Key
第八步:让成员使用
- 成员不多的话,可以直接在这里帮他们创建,输入邮箱和密码。他们登录后创建自己的 Key,然后调用使用。
- 成员多的话,可以在设置里打开注册,让他们自己注册,后续你按成员添加余额就可以了。
第九步:怎么接入
可以参考这篇指南:3 分钟让 ClaudeCode 变成 DeepSeekCode:Mac 完整配置指南。
后续维护也可以交给 Codex
以后需要查看状态、备份或升级时,不要直接让 Codex「更新到最新版」,可以使用下面的提示词:
请通过 SSH 检查当前 Sub2API 的运行状态、磁盘空间、容器日志、数据目录和证书有效期。
如果系统健康,只报告结果,不执行升级。
如果确实需要升级,请先阅读当前官方升级说明,备份 .env、data、postgres_data 和 redis_data,告诉我升级影响和回滚方法,获得确认后再执行。
升级完成后重新检查容器、数据库、Redis、HTTPS、成员登录和一次真实 API 请求;任何检查失败都立即停止,不要继续扩大变更。
如果以后需要对外运营
可以增加一层 New API 在下游:New API 负责公共用户、渠道、计费和限流,Sub2API 负责反代。
当前实验状态
当前状态是 Testing:已经部署并在内部使用,地址是 howdo.de5.net。
目前不对外开放,只是公司几人小团队使用。
如果你觉得有这个需求,但自己做不了,也可以找我帮助部署。