中转服务从零部署
中转服务从零部署
这篇文章只保留真正能直接执行的部署步骤,目标是让一台新的云服务器尽快把 CPA / CLIProxyAPI 和 new-api 跑起来。
如果你后面还要把 Codex、Claude Code 或其它客户端统一接进来,这篇文章就可以直接当部署底稿来用。以下内容默认基于 Docker 容器部署,且云服务器需提供登录方式。
这篇文档的范围很明确,只处理这两个项目:
CPA / CLIProxyAPInew-api
一、服务器连接
当前线上服务器参考:
- 公网 IP:
139.155.128.49 - 登录用户:
ubuntu - SSH 私钥:
C:\Users\Lenovo\.ssh\tencent\MuYue.pem
连接命令:
1ssh -i "C:\Users\Lenovo.ssh\tencent\MuYue.pem" ubuntu@139.155.128.49
二、安装 Docker 和 Docker Compose
在 Ubuntu 上执行:
123456789101112131415sudo apt updatesudo apt install -y ca-certificates curl gnupgsudo install -m 0755 -d /etc/apt/keyringscurl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg –dearmor -o /etc/apt/keyrings/docker.gpgsudo chmod a+r /etc/apt/keyrings/docker.gpgecho \ "deb [arch=$(dpkg –print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/nullsudo apt updatesudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginsudo systemctl enable dockersudo systemctl start dockersudo usermod -aG docker ubuntu
验证:
123docker –versiondocker compose versionsudo docker ps
注意:
- 执行完
usermod -aG docker ubuntu后,最好重新登录一次 SSH
三、部署 CPA / CLIProxyAPI
3.1 创建目录
1234mkdir -p /home/ubuntu/cliproxyapi/authsmkdir -p /home/ubuntu/cliproxyapi/logsmkdir -p /home/ubuntu/cliproxyapi/mihomocd /home/ubuntu/cliproxyapi
3.2 写 docker-compose.yml
保存为 /home/ubuntu/cliproxyapi/docker-compose.yml
12345678910111213141516171819202122services: mihomo: image: metacubex/mihomo:latest container_name: mihomo restart: unless-stopped ports: - "127.0.0.1:7891:7891" volumes: - /home/ubuntu/cliproxyapi/mihomo:/root/.config/mihomo cli-proxy-api: image: eceasy/cli-proxy-api:latest container_name: cli-proxy-api restart: unless-stopped depends_on: - mihomo ports: - "8317:8317" volumes: - /home/ubuntu/cliproxyapi/config.yaml:/CLIProxyAPI/config.yaml - /home/ubuntu/cliproxyapi/auths:/root/.cli-proxy-api - /home/ubuntu/cliproxyapi/logs:/CLIProxyAPI/logs
3.3 写 config.yaml
保存为 /home/ubuntu/cliproxyapi/config.yaml
12345678910111213host:port: 8317auth-dir: /root/.cli-proxy-apiproxy-url: "socks5://mihomo:7891"remote-management: allow-remote: true secret-key: "<管理后台密码>"api-keys: - "<给客户端调用 CPA 的 API Key>"debug: false
说明:
remote-management.secret-key:CPA 管理后台密码api-keys:给new-api或其他客户端调用/v1/*的 Bearer key
3.4 写 mihomo/config.yaml
保存为 /home/ubuntu/cliproxyapi/mihomo/config.yaml
1234567891011121314151617181920212223242526272829303132allow-lan: truemode: rulelog-level: infoipv6: truesocks-port: 7891proxy-providers: sub: type: http url: "<你的订阅地址>" path: ./providers/subscription.txt interval: 86400 header: User-Agent: - "mihomo/1.18.3" health-check: enable: true url: "https://www.gstatic.com/generate_204" interval: 300 timeout: 5000proxy-groups: - name: "PROXY" type: url-test use: - sub url: "https://www.gstatic.com/generate_204" interval: 300 tolerance: 50rules: - MATCH,PROXY
3.5 启动 CPA
12345cd /home/ubuntu/cliproxyapidocker compose up -ddocker compose psdocker logs –tail 200 cli-proxy-apidocker logs –tail 200 mihomo
3.6 验证 CPA
检查根路径:
1curl http://127.0.0.1:8317/
预期会返回:
1{"endpoints":["POST /v1/chat/completions","POST /v1/completions","GET /v1/models"],"message":"CLI Proxy API Server"}
检查模型接口:
1curl -H "Authorization: Bearer <CPA 的 API Key>" http://127.0.0.1:8317/v1/models
如果还没登录账号,这一步可能没有模型;先继续下一步账号登录。
四、给 CPA 登录 GPT Plus / Codex 账号
4.1 打开管理页
1http://服务器IP:8317/management.html
用 remote-management.secret-key 登录。
4.2 登录账号
在管理页里进入 OAuth / Codex 登录页,开始登录。
流程:
- 点击开始 Codex 登录
- 浏览器打开 OpenAI 授权页
- 登录 GPT Plus / Codex 账号
- 浏览器跳转到:
1http://localhost:1455/auth/callback?code=...&scope=...&state=…
- 复制完整回调 URL
- 回到管理页提交
- 等待状态变成成功
成功后,服务器上会出现新文件:
1find /home/ubuntu/cliproxyapi/auths -maxdepth 1 -type f
五、部署 new-api
5.1 拉代码
123cd /home/ubuntugit clone https://github.com/QuantumNous/new-api.gitcd /home/ubuntu/new-api
5.2 使用项目自带 compose 启动
123docker compose up -ddocker compose psdocker logs –tail 200 new-api
5.3 验证 new-api
1curl http://127.0.0.1:3000/api/status
预期包含:
1"success": true
六、在 new-api 中接入 CPA
6.1 先拿到 Docker 网关地址
new-api 容器不能直接用 127.0.0.1:8317 去访问 CPA。
必须先执行:
1sudo docker inspect new-api –format '{{range .NetworkSettings.Networks}}{{.Gateway}} {{end}}'
当前线上实测值是:
1172.18.0.1
但新服务器上不要写死,重新查。
6.2 在 new-api 后台新增渠道
进入 new-api 管理后台,新增一个 OpenAI 类型渠道:
- 类型:
OpenAI - 名称:
cliproxyapi - Base URL:
http://<Docker网关IP>:8317 - API Key:填写 CPA 的
api-keys里那个值 - 模型:按
CPA /v1/models返回的模型填写
当前线上实测跑通的模型包括:
gpt-5gpt-5.1gpt-5.1-codexgpt-5.1-codex-minigpt-5.1-codex-maxgpt-5.2gpt-5.2-codexgpt-5.3-codexgpt-5.3-codex-sparkgpt-5.4gpt-5.4-minigpt-5-codexgpt-5-codex-mini
七、验证整条链路
7.1 验证 CPA
1curl -H "Authorization: Bearer <CPA 的 API Key>" http://127.0.0.1:8317/v1/models
7.2 验证 new-api
用 new-api 的 token 去请求:
12curl http://127.0.0.1:3000/v1/models \ -H "Authorization: Bearer <new-api token>"
7.3 验证真实聊天请求
1234curl http://127.0.0.1:3000/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer <new-api token>" \ -d '{"model":"gpt-5.4-mini","messages":[{"role":"user","content":"Reply with exactly: ok"}],"max_tokens":8}'
八、必要注意事项
只保留这几个最关键的:
- 先部署
CPA,再部署new-api new-api连接CPA时,不要写127.0.0.1:8317CPA的 OAuth 登录完成后,要及时提交完整回调 URL- 管理后台密码和 CPA API key 建议自己重新生成
new-api自带 compose 里的数据库默认密码是123456,正式长期运行建议修改- 重要目录建议至少保留:
/home/ubuntu/cliproxyapi/config.yaml
/home/ubuntu/cliproxyapi/auths//home/ubuntu/cliproxyapi/mihomo/config.yaml/home/ubuntu/new-api/data/





