手把手带你用上AI神器 - CLIProxyAPI(伍:Docker服务器部署)

hKFirEs 2025-10-06 08:56 1


由于该系列教程篇幅较长,因此我按主题拆分,大家可以点击目录快速跳转到感兴趣的篇章



  • 手把手带你用上AI神器 - CLIProxyAPI(零:配置详细解说)

  • 手把手带你用上AI神器 - CLIProxyAPI(壹:项目介绍+Qwen实战)

  • 手把手带你用上AI神器 - CLIProxyAPI(贰:Gemini CLI+Codex实战)

  • 手把手带你用上AI神器 - CLIProxyAPI(叁:NanoBanana实战)

  • 手把手带你用上AI神器 - CLIProxyAPI(肆:中转转发接入篇)

  • 手把手带你用上AI神器 - CLIProxyAPI(伍:Docker服务器部署)

  • 手把手带你用上AI神器 - CLIProxyAPI(陆:新人最爱GUI)

  • 没有VPS?教你零成本在ClawCloud上部署CLIProxyAPI

  • 没有VPS?教你零成本在Render上部署CLIProxyAPI

  • 没有VPS?教你零成本在Railway上部署CLIProxyAPI

  • 没有VPS?教你零成本在HuggingFace上部署CLIProxyAPI



在之前的系列文章中,我们介绍了如何在本地电脑上使用 CLIProxyAPI。本文将更进一步,讲解如何在服务器上通过 Docker 完成部署。


一、 环境准备


在开始之前,请确保你拥有一台可用的 VPS(虚拟专用服务器)。本文将以 Debian 13 系统为例进行演示。


同时,请确保你的服务器上已经安装了 GitDocker


如果尚未安装,可以通过以下命令进行安装:


1. 安装 Git



apt update && apt install git -y


2. 安装 Docker


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



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


二、 部署 CLIProxyAPI


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



git clone [https://github.com/luispater/CLIProxyAPI.git](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"



请注意: 当使用 Docker 部署时,建议保持 auth-dir 的默认设置,无需修改。



编辑完 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


四、 添加 OAuth 认证


现在程序已经在正常运行了。如果需要添加中转 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 隧道(SSH Tunnel) 的作用就是搭建一座桥梁:它将我们本地电脑的某个端口(例如 1455)上的所有网络请求,通过加密的 SSH 连接,转发到服务器的同一端口上。这样,当浏览器访问本地的 http://localhost:1455 时,请求实际上被转发给了服务器上正在监听 1455 端口的 CLIProxyAPI 程序,从而巧妙地完成了远程认证。


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


六、 客户端使用


完成以上配置后,在客户端使用时,只需将请求的端点(Endpoint)地址指向你服务器的 IP:端口(例如 http://YOUR_SERVER_IP:8317)即可,其余操作与本地使用完全相同。


至此,你已经掌握了在服务器上通过 Docker 部署 CLIProxyAPI 的完整流程,快去享受 AI 带来的便利吧!

最新回复 (19)
  • HongShi 10-06 08:59
    1

    牛哇佬!

  • 我是彭于晏 10-06 09:01
    2

    这就部署试试

  • 大帅哥 10-06 11:03
    3

    感谢大佬教程

  • zzc0621 10-06 12:47
    4

    完球了,我有罪,点收藏点成举报了 ^-^

  • XC W 10-06 13:59
    5

    这样的好处是什么?

  • hKFirEs 楼主 10-06 15:00
    6

    服务器上部署,随处可用呀

  • sunss 10-08 13:32
    8

    有没有爪云或者render之类的部署?没VPS。

  • ks 10-08 13:57
    9

    目前不能直接部署,得改下代码里面的config复制,等作者了

  • 国彬 张 10-08 14:00
    10

    牛笔大佬

  • leileio 10-08 17:01
    11

    步骤二:回车后输入ssh 的登陆密码


    没有登陆密码,是密钥登录的,怎么办呢??

  • hKFirEs 楼主 10-08 17:12
    12

    不是有两行提示嘛,第一行提示是密码,第二行是密钥

  • hKFirEs 楼主 10-08 18:07
    13

    可以在爪云部署,但是由于容器云不能跑ssh隧道,现在在优化流程

  • sddxsm 10-09 18:09
    14

    现在还不能在私有云服务器上部署吗

  • hKFirEs 楼主 10-09 18:36
    15

    你说的私有云服务器指的是什么?

  • sddxsm 10-09 18:38
    16

    就是自己购买的云服务器上安装docker 然后根据你的教成 可以配置成功吗

  • hKFirEs 楼主 10-09 18:43
    17

    这篇教程就是讲这个的呀

  • sddxsm 10-09 18:44
    18



    这里不是说有问题吗

  • sddxsm 10-09 18:44
    19

    问题解决啦吗?

  • hKFirEs 楼主 10-09 18:46
    20

    没问题啊,我哪里说有问题 ^-^ 我只是说优化下流程方便用户部署而已。

    另外容器云不是指你自己的VPS上安装Docker,而是直接提供了Docker环境的那种。

    你自己有VPS,那就照着教程做就是了。

* 帖子来源Linux.do
返回