当前位置: 首页 > news >正文

Ubuntu20.04 部署 CLIProxyAPI 及 Win/Mac/Linux 三端 CLI 配置笔记

最近把 Claude Code、Codex CLI、Gemini CLI 三个工具统一接入了 CLIProxyAPI,让多台设备共享同一套订阅,不用每台机器都单独登录。这里记录一下服务端部署和客户端配置的过程,笔者用的是 Ubuntu 20.04 做服务端,客户端分别有 Windows 11、macOS 和 Linux,如有疏漏欢迎指出。

服务端部署

安装

一键安装:

curl -fsSL https://raw.githubusercontent.com/brokechubb/cliproxyapi-installer/refs/heads/master/cliproxyapi-installer | bash

手动安装的话直接下载二进制就行:

mkdir -p /opt/cli-proxy-api && cd /opt/cli-proxy-api
wget https://github.com/router-for-me/CLIProxyAPI/releases/latest/download/cli-proxy-api-linux-amd64 -O cli-proxy-api
chmod +x cli-proxy-api

配置文件

默认路径 ~/.cli-proxy-api/config.yaml,也可以放在二进制同级目录。

port: 39517
tls:enable: false
remote-management:allow-remote: truesecret-key: <bcrypt哈希>disable-control-panel: false
auth-dir: /opt/cli-proxy-api/auths
api-keys:- <自行生成的api-key>
debug: false
logging-to-file: true
logs-max-total-size-mb: 100
request-retry: 3
max-retry-interval: 30
routing:strategy: round-robin
ws-auth: false
usage-statistics-enabled: true

api-keys 是给客户端鉴权用的,自行生成即可:

import secrets
print('sk-' + secrets.token_hex(32))

给多个用户用就在 api-keys 下面加多行,每人一个 key。

OAuth 登录

启动服务后打开管理面板 http://服务端IP:39517/management.html,页面上有各平台的 OAuth 登录按钮,直接在浏览器里完成授权。

如果服务端没有桌面环境,用命令行登录:

./cli-proxy-api --claude-login -no-browser
./cli-proxy-api --codex-login
./cli-proxy-api --login --project_id <Google Cloud项目ID>

-no-browser 会在终端输出 URL,复制到其他设备的浏览器里完成授权。同一命令重复执行可以添加多个账号做负载均衡。

systemd 服务

cat > /etc/systemd/system/cli-proxy-api.service << 'EOF'
[Unit]
Description=CLIProxyAPI - Multi-provider AI API Proxy
After=network.target[Service]
Type=simple
WorkingDirectory=/opt/cli-proxy-api
Environment=HOME=/root
ExecStart=/opt/cli-proxy-api/cli-proxy-api
Restart=on-failure
RestartSec=5
LimitNOFILE=65536[Install]
WantedBy=multi-user.target
EOFsystemctl daemon-reload
systemctl enable cli-proxy-api
systemctl start cli-proxy-api

验证服务是否正常:

curl http://127.0.0.1:39517/v1/models -H "Authorization: Bearer <你的api-key>"

能返回模型列表就没问题。别忘了防火墙放行端口:

ufw allow 39517/tcp

客户端配置

三端逻辑一样,把 CLI 工具的 API 请求指向自己的 CLIProxyAPI 服务端。

Claude Code

编辑 ~/.claude/settings.json:

{"env": {"ANTHROPIC_API_KEY": "<your-api-key>","ANTHROPIC_BASE_URL": "http://<server-ip>:39517","CLAUDE_CODE_MAX_OUTPUT_TOKENS": "64000","ANTHROPIC_MODEL": "claude-opus-4-6"},"model": "opus"
}

Windows 路径为 C:\Users\用户名.claude\settings.json,macOS 为 /Users/用户名/.claude/settings.json。

OAuth 凭证覆盖问题

如果之前用 claude login 做过 OAuth 登录,Claude Code 会优先使用缓存的 OAuth token 而非 settings.json 中的配置,表现为界面上显示 sk-ant-... 开头的 key。需要清除旧凭证:

macOS 的凭证存在 Keychain 里:

security delete-generic-password -s "Claude Code-credentials"

Linux 存在文件里:

rm ~/.claude/.credentials.json

Windows 在控制面板 → 凭据管理器 → Windows 凭据中删除 Claude Code-credentials。

清除后重启 Claude Code 即可。

跳过 onboarding

Claude Code 首次启动会进入交互式引导(信任目录、使用条款等),走代理时这个流程可能会卡住。直接写入完成标记跳过:

cat > ~/.claude.json << 'EOF'
{"hasCompletedOnboarding": true
}
EOF

之后 claude -p "say hi" 能正常返回就说明配置没问题。

Codex CLI

~/.codex/config.toml:

model = "gpt-5.3-codex"
model_provider = "cliproxyapi"
model_reasoning_effort = "high"[model_providers.cliproxyapi]
name = "CLIProxyAPI"
base_url = "http://<server-ip>:39517/v1"
wire_api = "responses"

~/.codex/auth.json:

{"OPENAI_API_KEY": "<your-api-key>"
}

wire_api = "responses" 不能省,Codex 走的是 OpenAI Responses API 格式。

Gemini CLI

Gemini CLI 没有配置文件,通过环境变量配置:

export GEMINI_API_KEY="<your-api-key>"
export GOOGLE_GEMINI_BASE_URL="http://<server-ip>:39517"

写入 ~/.bashrc 或 ~/.zshrc 持久化。Windows 用 PowerShell 设用户级环境变量:

[System.Environment]::SetEnvironmentVariable('GEMINI_API_KEY', '<your-api-key>', 'User')
[System.Environment]::SetEnvironmentVariable('GOOGLE_GEMINI_BASE_URL', 'http://<server-ip>:39517', 'User')

Gemini CLI 也支持 Google OAuth 直连,不走代理时可以免费用 Gemini 3 系列(1000次/天),启动 gemini 后选 Login with Google 就行,此时不要设上面的环境变量。

NO_PROXY

如果开发机通过本地代理访问外网,需要把 CLIProxyAPI 服务端地址加入 NO_PROXY,避免 API 请求被本地代理转发:

export NO_PROXY="localhost,127.0.0.1,<server-ip>"

验证

claude -p "say hi"
codex exec "echo hello"
gemini -p "say hi"

感谢

  • CLIProxyAPI GitHub
  • CLIProxyAPI 官方文档
  • Codex CLI 配置文档
http://www.jsqmd.com/news/419595/

相关文章:

  • 2026年大型卖场回收厂家最新推荐:二手厨房设备、二手火锅店设备、二手空调回收销售、二手酒店设备、二手餐饮设备选择指南 - 优质品牌商家
  • 2026年Q1宜兴硝化菌厂家全景评测与选型指南 - 2026年企业推荐榜
  • 2026年商务调查公司推荐公司权威推荐:四川找人公司品牌/四川找人公司推荐/四川找人公司电话/四川找人公司网址/选择指南 - 优质品牌商家
  • 花有重开日,人无再少年
  • 2026年二手空调回收销售公司权威推荐:办公设备回收、工厂设备回收、工地二手空调采购、开店设备采购选择指南 - 优质品牌商家
  • 2026年电脑横编织领机品牌厂家权威推荐榜:电脑横编织领机优质厂家、电脑横编织领机供应厂家选择指南 - 优质品牌商家
  • 蚌埠五河县装修设计怎么选?这5家实力公司值得一看 - 2026年企业推荐榜
  • 轻松掌握GPU分区技术在Windows Server 2025上的部署与收藏
  • 轻松入门大模型开发:用mcp-use连接LLM与MCP服务器
  • BERT大模型入门指南:小白也能学会的NLP预训练技术
  • 小白程序员轻松上手部署DeepSeek大模型,开启AI创新之旅
  • 2026年防爆楔子工具公司权威推荐:防爆螺丝旋工具/防爆錾子工具/防爆锤子工具/防爆防跌落扣工具/选择指南 - 优质品牌商家
  • 2026年特殊螺丝厂家最新推荐:螺丝五金异形件、螺丝精密轴、螺丝销轴、高精密螺丝、异形螺丝、微型螺丝选择指南 - 优质品牌商家
  • 2026年304不锈钢链板公司权威推荐:网带输送机、链条传动网带、链板提升机、链板转弯机、链板输送带选择指南 - 优质品牌商家
  • CICD与Jenkins流水线:小白程序员轻松入门自动化软件开发
  • AI-Compass LLM推理框架+部署生态:整合顶级加速框架,轻松掌握大模型部署
  • 2026年评价高的乐吧车公司推荐:商场碰碰车/地网碰碰车/夜市摆摊碰碰车/室内遥控碰碰车/广场乐吧车/选择指南 - 优质品牌商家
  • 前后端分离高校学生饮食推荐系统系统|SpringBoot+Vue+MyBatis+MySQL完整源码+部署教程
  • 企业级儿童性教育网站管理系统源码|SpringBoot+Vue+MyBatis架构+MySQL数据库【完整版】
  • 2026年知识产权打假厂家最新推荐:商业企业员工背景调查、商业反不正当竞争调查、商业泄密调查、商业泄露调查选择指南 - 优质品牌商家
  • 软件运维 --- 必做的win设置优化
  • 光伏电池在太空稳定运行的复合应力光模拟测试
  • 2026年道路监控塔公司权威推荐:防火监控塔架、不锈钢烟囱塔、不锈钢烟囱塔架、化工烟囱塔、塔架式烟囱塔选择指南 - 优质品牌商家
  • DeepSeek「海狮」出没!V4 Lite百万 Token 上下文 + 原生多模态,AI圈又要地震了?
  • 2026年高速纸袋机厂家最新推荐:全自动纸袋设备/卷筒纸袋机/圆绳内折纸袋机/尖底纸袋机/扁绳内折纸袋机/选择指南 - 优质品牌商家
  • VS code ESP-IDF 提示“loading ‘build.ninja‘: 系统找不到指定的文件” 的解决方案(亲测可用)
  • 串口屏通信基石:深入解析波特率的设置与优化
  • 2026年不锈钢烟囱塔架厂家权威推荐榜:碳钢烟囱塔/镀锌烟囱塔架/镀锌监控塔架/防火监控塔架/化工烟囱塔/选择指南 - 优质品牌商家
  • SB4 + MyBatis Plus 3.5.15,加入依赖以后,获取列表,分页返回的total=0的解决
  • 使用C#代码在 Excel 中添加或删除数字签名