中转服务从零部署

这篇文章只保留真正能直接执行的部署步骤,目标是让一台新的云服务器尽快把 CPA / CLIProxyAPInew-api 跑起来。

如果你后面还要把 Codex、Claude Code 或其它客户端统一接进来,这篇文章就可以直接当部署底稿来用。以下内容默认基于 Docker 容器部署,且云服务器需提供登录方式。

这篇文档的范围很明确,只处理这两个项目:

  • CPA / CLIProxyAPI
  • new-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://&lt;Docker网关IP&gt;:8317
  • API Key:填写 CPA 的 api-keys 里那个值
  • 模型:按 CPA /v1/models 返回的模型填写

当前线上实测跑通的模型包括:

  • gpt-5
  • gpt-5.1
  • gpt-5.1-codex
  • gpt-5.1-codex-mini
  • gpt-5.1-codex-max
  • gpt-5.2
  • gpt-5.2-codex
  • gpt-5.3-codex
  • gpt-5.3-codex-spark
  • gpt-5.4
  • gpt-5.4-mini
  • gpt-5-codex
  • gpt-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:8317
  • CPA 的 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/