用 CLIProxyAPI 搭建多账号 Codex 代理池

1444 字
7 分钟
用 CLIProxyAPI 搭建多账号 Codex 代理池

背景#

有多个 OpenAI / Codex 订阅账号时,在不同客户端之间手动切换又麻烦又浪费——每个账号有独立的使用频率限制,但单个客户端固定用某一个账号时,其余的额度就闲置了。

理想状态是:多个账号的额度合在一起,对外暴露成一个统一的 API 端点,自动做负载均衡和故障转移。任何时候任何客户端接入,都只用一个 API key,后端自动把请求分配到有余量的账号上。

CLIProxyAPI(以下称 CPA)正是干这个的。它把 Codex、Claude Code、Gemini CLI、Grok Build 等 CLI 工具的 OAuth 凭证转换成标准 OpenAI/Gemini/Claude 兼容 API,内置多账号轮询和 token 自动刷新。

本文记录在一台 Debian VPS 上的完整部署过程。

目标与约束#

  • 多个 Codex 账号聚合:每个账号独立 OAuth 凭证,支持自动 token 刷新
  • 统一 API 端点:对外暴露标准 /v1/chat/completions,所有客户端共用
  • 自动轮询:CPA 内置 round-robin,请求自动分配到可用账号
  • 无头服务器友好:VPS 没有桌面环境,OAuth 登录需要通过 SSH 端口转发或管理面板完成
  • systemd 部署:不使用 Docker,以节省磁盘空间
  • 最小配置:只做 Codex 通道,其他 provider 按需再开

安装#

CPA 官方提供了一键安装脚本,自动检测架构、下载二进制、创建目录结构:

Terminal window
curl -fsSL https://raw.githubusercontent.com/brokechubb/cliproxyapi-installer/refs/heads/master/cliproxyapi-installer | bash

安装后目录结构:

~/cliproxyapi/
├── cli-proxy-api # 主程序二进制
├── config.yaml # 配置文件
├── cliproxyapi.service # systemd 服务文件
├── static/ # 管理面板前端资源
└── 7.1.19/ # 版本目录(旧版本保留最近 2 个)

配置#

核心文件是 ~/cliproxyapi/config.yaml,最小可用配置如下:

host: "0.0.0.0" # 监听所有网络接口
port: 8317 # 主 API 端口
auth-dir: "~/.cli-proxy-api" # OAuth 凭证存储目录
api-keys:
- "sk-your-secret-api-key" # 对外统一 API 密钥
debug: false
remote-management:
allow-remote: true # 允许远程访问管理面板
secret-key: "your-password" # 管理面板登录密钥(启动时自动 hash)

说明:

  • api-keys 是客户端连接 CPA 时使用的 API key,格式随意(sk- 前缀是 OpenAI 惯例)
  • secret-key 是管理面板的登录密码,明文写入即可,CPA 启动后自动哈希
  • auth-dir 下的文件是各账号的 OAuth 凭证 JSON

添加 Codex 账号(OAuth 登录)#

CPA 的 OAuth 回调地址固定为 http://localhost:1455/auth/callback。VPS 没有桌面环境,需要借助 SSH 端口转发完成回调。

方法:SSH 正向隧道#

核心思路:把本机 1455 端口转发到 VPS 的 1455 端口,让 OAuth 回调能回到 CPA。

第一步:停掉正在运行的 CPA(释放 1455 端口)。

第二步:在 VPS 上以交互模式启动 CPA 的 OAuth 登录流程:

Terminal window
cd ~/cliproxyapi
./cli-proxy-api --codex-login

此时 CPA 会:

  1. 生成 PKCE 验证码
  2. 在本地 localhost:1455 启动 OAuth 回调监听
  3. 打印一个 https://auth.openai.com/oauth/authorize?... 授权链接

第三步:在本机建立 SSH 隧道(PowerShell):

Terminal window
ssh -L 1455:localhost:1455 root@你的VPS_IP -i "C:\Users\xxx\.ssh\id_ed25519"

第四步:本机浏览器打开授权链接 → 完成 OpenAI 登录 → 授权回调 localhost:1455 → 通过 SSH 隧道回到 CPA。

登录成功后,凭证自动保存到 ~/.cli-proxy-api/codex-{email}.json

第五步:多个账号重复上述流程,每个账号生成独立的凭证文件。

凭证文件格式#

自动生成的凭证文件结构:

{
"id_token": "eyJ...",
"access_token": "eyJ...",
"refresh_token": "eyJ...",
"account_id": "user-xxx",
"email": "someone@example.com",
"last_refresh": "2026-05-23T20:00:00+08:00",
"type": "codex",
"expired": "2026-05-23T21:00:00+08:00"
}

文件名规则:codex-{email}.json。如果需要在不同机器之间迁移账号,直接复制这个目录即可。

systemd 部署#

安装脚本已经生成了 cliproxyapi.service 文件,但默认是 user 级别。推荐设为系统级,确保开机自启:

Terminal window
sudo cp ~/cliproxyapi/cliproxyapi.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable --now cli-proxy-api
# 确认运行状态
sudo systemctl status cli-proxy-api
# 查看日志
journalctl -u cli-proxy-api -f

此时 API 端点 http://VPS_IP:8317/v1 和管理面板 http://VPS_IP:8317/admin 已经可用。

客户端对接#

Codex CLI#

修改 ~/.codex/config.toml(或项目内的 .codex/config.toml):

[model_providers.openai]
base_url = "http://VPS_IP:8317/v1"
api_key = "sk-your-secret-api-key"

如果文件中已有其他 provider 配置,只改动 OpenAI 段即可。之后 Codex CLI 的所有请求都会经过 CPA,由 CPA 在后端多账号间自动轮询分配。

其他 OpenAI 兼容客户端#

几乎所有支持自定义 base URL 的客户端都能接入。比如 Open WebUI、ChatBox、Continue、Cursor 等,只需把 API base URL 指向 http://VPS_IP:8317/v1,API key 填入 CPA 配置中的密钥即可。

生产环境建议#

http:// 明文传输 token 并不安全。生产使用建议在前端套一层反向代理:

server {
listen 443 ssl;
server_name cpa.example.com;
ssl_certificate /etc/ssl/certs/cpa.pem;
ssl_certificate_key /etc/ssl/private/cpa.key;
location / {
proxy_pass http://127.0.0.1:8317;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_read_timeout 300s; # 流式响应可能需要较长时间
}
}

管理面板#

启用 remote-management 后,浏览器打开 http://VPS_IP:8317/admin,用配置中的 secret-key 登录。

面板提供:

  • 各账号状态与额度概览
  • 在线添加 / 删除 OAuth 账号(远程浏览器模式)
  • API key 管理
  • 实时请求日志

在线添加账号时,面板会生成授权 URL,在本地浏览器完成登录后,把回调 URL 粘贴回面板即可,无需 SSH 隧道。

关键决策#

  1. 选 systemd 而非 Docker:VPS 磁盘空间有限,直接安装二进制比 Docker 镜像省几百 MB
  2. SSH 正向隧道做 OAuth:比管理面板的远程浏览器模式更可靠,回调不会卡在浏览器跳转
  3. 最小化配置:先只开 Codex 通道、关闭 debugusage-statistics,按需再扩展其他 provider
  4. 凭证可迁移:所有 OAuth 文件集中在 ~/.cli-proxy-api/,迁移机器时直接 scp 目录即可

相关项目#

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

用 CLIProxyAPI 搭建多账号 Codex 代理池
https://notes.shimmer93.com/posts/cliproxyapi-codex-pool-setup/
作者
Shimmer93
发布于
2026-05-23
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
Shimmer93
由玖露亚酱占领~
分类
标签
站点统计
文章
5
分类
2
标签
24
总字数
6,478
运行时长
0
最后活动
0 天前

目录