一、添加codex OAuth 认证
(放行OAuth 回调端口 1455)
现在程序已经在正常运行了。如果需要添加中转 Key,只需按照之前文章介绍的方法编辑配置文件即可,这一次,我们重点讲解如何通过 OAuth 添加授权认证文件。
步骤一:在服务器端生成认证链接
以添加 Codex 为例,请在项目根目录下执行以下命令:
./cli-proxy-api --codex-login
程序会生成一段用于建立 SSH 隧道的命令,请复制箭头处 ssh 开头的整段命令。

步骤二:在本地建立 SSH 隧道
在你自己电脑的终端或命令行工具中,粘贴刚才复制的命令。

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

步骤三:通过浏览器完成授权
复制服务器终端上箭头指向的链接

在你本地电脑的浏览器中打开这个链接,用你的 ChatGPT 账号登录并授权


同时,服务器的终端上也会显示认证文件已成功保存

至此,Codex 的认证就全部完成了。
需要注意的是,目前 Codex 需要付费的 ChatGPT 会员才能够使用,免费用户并没有权限哦。
二、添加Gemini OAuth 认证
(放行OAuth 回调端口 8085)
步骤一:配置 Gemini CLI
接下来,我们来添加 Gemini CLI。Gemini CLI 是完全免费的,但有些用户在配置过程中可能会遇到问题。因此,在这里我将从创建 Google Cloud 项目开始,一步步带你完成整个授权认证过程。
首先,请用你的 Google 账号登录
https://console.cloud.google.com/
登录成功后,点击图中所示位置:

点击“新建项目”。

给项目命名后,点击“创建”。

按照第一步的位置,选择刚刚创建的项目。

先把红框内的项目 ID 复制下来备用,然后点击左上角箭头所指的位置。

依次点击“API和服务” -> “已启用的API和服务”。

点击“启用API和服务”。

在图示的搜索框内输入 cloudaicompanion.googleapis.com,然后点击搜索到的“Gemini for Google Cloud”。

点击“启用”。

至此,Google Cloud 前期的准备工作就全部完成了。
以添加 Gemini 为例,我们回到 CLIProxyAPI 程序所在的目录,打开终端命令行,输入 ./cli-proxy-api -no-browser --login --project_id [你的项目ID]。
在本例中就是在项目根目录下执行以下命令:
./cli-proxy-api -no-browser --login --project_id mimetic-planet-473413-v7
程序会生成一段用于建立 SSH 隧道的命令,请复制箭头处 ssh 开头的整段命令。

步骤二:在本地建立 SSH 隧道(参照codex认证)
在你自己电脑的终端或命令行工具中,粘贴刚才复制的命令。

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

步骤三:通过浏览器完成授权(参照codex认证)
复制服务器终端上箭头指向的链接

在你本地电脑的浏览器中打开这个链接,用你的 Geminin账号登录并授权
随后会弹出授权页面,请使用刚才完成准备工作的 Google 账号登录。

授权验证成功后,会看到如下画面:

回到终端命令行,可以看到认证文件已被成功保存。
Codex 和 Gemini CLI 在验证成功后的命令行信息,与 Qwen会有所不同,这是因为在验证 Codex 和 Gemini CLI 时,CLIProxyAPI 会在本地监听一个特定端口以接收回调,因此验证总是一次成功。而在验证 Qwen 时,CLIProxyAPI 会直接从 Qwen 的验证服务器来获取授权信息,因此最多会有 60 次的尝试请求。
五、 原理总结
最后,我们来总结一下这个远程 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)即可,其余操作与本地使用完全相同。
至此,你已经掌握了在服务器上部署 CLIProxyAPI 的完整流程,快去享受 AI 带来的便利吧!
反重力 (反重力 OAuth 登录):
./cli-proxy-api --no-browser --antigravity-login
OAuth 回调端口为 51121
Claude Code (Anthropic OAuth 登录):
./cli-proxy-api --no-browser --claude-login









