在之前的系列文章中,我们介绍了如何在本地电脑上使用 CLIProxyAPI。本文将更进一步,讲解如何在服务器上通过 Docker 完成部署。在开始之前,请确保你拥有一台可用的 VPS(虚拟专用服务器)。本文将以 Debian 13 系统为例进行演示。同时,请确保你的服务器上已经安装了 Git 和 Docker。如果尚未安装,可以通过以下命令进行安装:

  1. 安装 Git
apt update && apt install git -y
  1. 安装 Docker

可以使用官方提供的一键脚本进行安装:

bash <(curl -fsSL https://get.docker.com)

准备工作就绪后,请依次执行以下命令来克隆项目并初始化配置:

git clone https://github.com/luispater/CLIProxyAPI.git
cd CLIProxyAPI
cp config.example.yaml config.yaml

此时,我们可以打开 config.yaml 文件进行编辑。本教程将采用以下最小化配置作为示例:

port: 8317

# 文件夹位置请根据你的实际情况填写

auth-dir: "~/.cli-proxy-api"

request-retry: 3

quota-exceeded:

switch-project: true

switch-preview-model: true

api-keys:

# Key 请自行设置,用于客户端访问代理

- "ABC-123456"

编辑完 config.yaml 文件后,我们执行以下命令来执行 Docker 容器构建脚本:

bash docker-build.sh

脚本会提供两个选项:

  • 选项 1:直接使用 Docker Hub 上的预构建镜像运行 (docker compose up -d),速度快。
  • 选项 2:在服务器本地编译镜像然后再运行,适合需要自定义修改的场景。

在本教程中,我们选择选项 1,以快速启动服务,稍待片刻,服务便成功启动了。

尽管脚本提示使用 docker compose logs -f 查看日志,但由于程序默认会将日志重定向到文件,因此实时查看日志需要使用以下命令:

tail -f ./logs/main.log

现在程序已经在正常运行了。如果需要添加中转 Key,只需按照之前文章介绍的方法编辑配置文件即可,这一次,我们重点讲解如何通过 OAuth 添加授权认证文件。

步骤一:在服务器端生成认证链接

以添加 Codex 为例,请在项目根目录下执行以下命令:

docker compose exec cli-proxy-api /CLIProxyAPI/CLIProxyAPI -no-browser --codex-login

程序会生成一段用于建立 SSH 隧道的命令,请复制箭头处 ssh 开头的整段命令。

步骤二:在本地建立 SSH 隧道

在你自己电脑的终端或命令行工具中,粘贴刚才复制的命令。特别注意:需要将命令中 -p 参数后的端口号(示例中的 22)替换为你 VPS 的实际 SSH 端口。回车后输入服务器的 SSH 登录密码。成功连接后,请保持此终端窗口不要关闭,然后回到刚才操作服务器的终端上。

步骤三:通过浏览器完成授权

复制服务器终端上箭头指向的链接,在你本地电脑的浏览器中打开这个链接,用你的 ChatGPT 账号登录并授权。授权成功后,会看到如下画面:同时,服务器的终端上也会显示认证文件已成功保存。至此,Codex 的认证就全部完成了。对于 Gemini-CLI 和 Claude 等其他需要 OAuth 授权的服务,操作流程完全相同。

最后,我们来总结一下这个远程 OAuth 认证流程的原理:Gemini-CLI、Claude 和 Codex 的 OAuth 认证都需要一个“回调”(Callback)过程来接收授权令牌。由于安全限制,服务商的回调地址通常强制设置为 localhost。当我们在 Docker 容器中执行授权命令时,容器内没有浏览器环境,我们必须在本地电脑上打开授权网页。但授权成功后,浏览器会尝试访问 localhost,这只会访问到我们自己的电脑,而无法将令牌传递给远在服务器上的程序。SSH 隧道的作

用就是搭建一座桥梁:它将我们本地电脑的某个端口(例如 1455)上的所有网络请求,通过加密的 SSH 连接,转发到服务器的同一端口上。这样,当浏览器访问本地的 http://localhost:1455 时,请求实际上被转发给了服务器上正在监听 1455 端口的 CLIProxyAPI 程序,从而巧妙地完成了远程认证。

作为 SSH Tunnel 的替代方案,你也可以在浏览器跳转到 localhost 回调链接时,手动将其中的 localhost 替换为你服务器的 IP 或域名。不过,请注意,这种方法需要你正确配置服务器的防火墙或反向代理,以确保回调请求能够被正确接收,否则可能会认证失败。

完成以上配置后,在客户端使用时,只需将请求的端点(Endpoint)地址指向你服务器的 IP:端口(例如 http://YOUR_SERVER_IP:8317)即可,其余操作与本地使用完全相同。至此,你已经掌握了在服务器上通过 Docker 部署 CLIProxyAPI 的完整流程,快去享受 AI 带来的便利吧!

标签: none

评论已关闭