用 cc-router 接入 Claude Code:一份 settings.json 把多家订阅塞进 CLI
Claude Code 默认只走 Anthropic 官方 API,单订阅一旦打满就只能干瞪眼;想换成 DeepSeek、Kimi、GLM 又要手动改环境变量,每次切都要折腾。cc-router 干的就是把这些零散订阅聚合成一份「虚拟订阅」,在本地起一个 Anthropic 协议网关,Claude Code 一份 settings.json 就接管完毕 —— 不装证书、不进 Developer 菜单、不重启系统,整个过程十分钟以内。
项目地址: GitHub - finch-xu/cc-router | 官方主页 | 入门文档 | 下载客户端
cc-router 到 Claude Code 是怎么连起来的
cc-router 在本地起一个 Anthropic 协议代理(默认 127.0.0.1:23456),上游挂着 DeepSeek、Qwen、Kimi、GLM、Claude 官方等近 20 家厂商。它对外暴露三个虚拟模型槽位 —— model-opus、model-sonnet、model-haiku,每个槽位都可以挂多家厂商,按顺序 fallback 或者轮询调度。
Claude Code 这边其实什么都不用改,它原本就支持通过环境变量改写 base URL 和模型名,cc-router 正好接管这两个口子。
1 | claude CLI cc-router (本地) 上游 provider |
和 Claude Desktop 接入方式的差别:
- Claude Code 是 HTTP 直连本机环回,不用装自签 CA 证书 —— Desktop 那篇博文里大半篇幅的钥匙串/证书管理这里全部跳过
- 配置位置是
~/.claude/settings.json的env字段,不是 Desktop 那种 Developer 菜单点点点 - 三槽位走的是
model-opus/model-sonnet/model-haiku这种 cc-router 自定义别名,不是anthropic/claude-opus-4-7这种带厂商前缀的真模型名
步骤一:下载并启动 cc-router
cc-router 是 Tauri 写的桌面应用,macOS / Windows / Linux 都有打包好的版本,直接到 GitHub Releases 或 https://ccrouter.app/download/ 下载对应平台的 .dmg、.exe、.AppImage 或 .deb。装完打开 App,本地代理服务会自动起在 127.0.0.1:23456。
如果 23456 端口被别的进程占了,cc-router 会自动 +1 往后递增(23457、23458……)。所以不要把 23456 硬编码到 settings.json 里,要回到 cc-router 设置页确认实际监听端口再复制 —— 这是踩坑率最高的一项。

步骤二:在 App 里绑一家 provider 到虚拟槽位
cc-router 自己不卖 token,它是个调度器,你得把已有的厂商订阅挂上来。流程是「选厂商 → 选接入点 → 粘贴该厂商 API Key → 自动拉模型」,每加一家都要把它绑到某个虚拟槽位。
最小可用配置:至少把一家 provider 绑到 model-opus(比如 DeepSeek-V4-Pro 或 GLM-5.1)。如果你想让 sonnet / haiku 槽位也能用,再各绑一家就行;同一槽位也可以挂多家走 fallback。
调度模式选哪个:
- Sequential:A 用完或失败才切 B,保留 prompt cache,适合「榨干小额订阅」
- Round-robin:请求轮换,真正负载均衡,每个账号独立 cache
只有一家 provider 的时候这两个选哪个都一样,等你后续挂多家了再回来调。
步骤三:从 cc-router 复制 token 和 base URL
打开 cc-router → 设置 → 代理服务,这一页有两个东西要抄:
- Base URL:
http://127.0.0.1:实际端口,注意是http://不是https:// - Token / API Key:cc-router 自己生成的一串字符串,Claude Code 用这个鉴权进 cc-router(不是任何上游厂商的原 key)
直接用页面上的复制按钮,避免手抄漏字符。token 一次性生成、不会自动轮换,如果你确认泄漏了再到这里重置。

⚠️ 这个 token 等同于你所有挂在 cc-router 上的上游订阅的访问权。不要截图、不要 push 到 git、不要发到群里。
步骤四:写入 ~/.claude/settings.json
Claude Code 在启动时会读取 ~/.claude/settings.json,把里面 env 字段的所有键值对当成环境变量注入到自己进程。这是官方支持的扩展点,我们要做的就是把 cc-router 的 base URL 和 token 写进去。
文件位置三平台都是同一个:
- macOS / Linux:
~/.claude/settings.json - Windows:
%USERPROFILE%\.claude\settings.json
如果文件不存在就新建,如果已存在就合并 env 字段(其它字段别动)。完整模板原样照抄自官方文档:
1 | { |
关键字段解释:
| 字段 | 作用 |
|---|---|
ANTHROPIC_BASE_URL |
把 Claude Code 的请求改打到 cc-router 本地代理,端口别忘了换成实际监听端口 |
ANTHROPIC_AUTH_TOKEN |
注意不是 ANTHROPIC_API_KEY —— 字段名写错最常见的 401 来源 |
API_TIMEOUT_MS |
长 prompt 防超时,3000000ms(50 分钟)足够长 prompt 跑完不被掐 |
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC |
关掉 telemetry 等非必要请求,避免空跑消耗 token |
ANTHROPIC_MODEL |
默认模型,这里指向 model-opus(cc-router 的虚拟别名) |
ANTHROPIC_DEFAULT_OPUS_MODEL / _SONNET_ / _HAIKU_ |
三槽位别名,名字要和 cc-router 里的槽位名严格一致 |
步骤五:起 claude,发一条话验证
如果还没装 Claude Code:
1 | curl -fsSL https://claude.ai/install.sh | bash |
随便进一个目录,运行:
1 | claude |
进入对话后随便问一句,比如「写一段 Hello World 的 Python 代码」。
切回 cc-router 主界面,进请求日志页 —— 应该能看到刚刚那条请求的记录:哪个虚拟槽位、被路由到哪家上游 provider、消耗了多少 token、响应耗时多少。如果日志页没动静,说明请求根本没走到 cc-router,回去检查 ANTHROPIC_BASE_URL 的端口对不对。

排错速查
| 现象 | 原因 | 修法 |
|---|---|---|
401 Unauthorized |
token 写错 / 用了 ANTHROPIC_API_KEY 字段 |
字段名必须是 ANTHROPIC_AUTH_TOKEN,回 cc-router 重新复制 token |
connection refused |
端口对不上 | 回 cc-router 设置页看实际监听端口(可能被自动 +1) |
model not found |
settings.json 里模型名拼错 | 与 cc-router 槽位名严格一致:model-opus / model-sonnet / model-haiku |
| 请求日志页没记录 | claude 没读到 settings.json | 完整退出 claude 进程再重开;确认文件路径是 ~/.claude/settings.json 且 JSON 合法 |
| 某次 5xx / 429 | 上游 provider 限流或挂了 | 同槽位多挂一家,开 Sequential 或 Round-robin,cc-router 自动 fallback |
安全提醒
- cc-router 的 token 是聚合密钥 —— 一旦泄漏,攻击者就能消耗你所有挂上来的上游订阅,比单家 API Key 后果严重得多
- HTTP 监听仅限本机环回 —— 不要把 23456 端口暴露公网。跨机器调用请用 cc-router 自带的 HTTPS 模式 + 自签 CA(具体方式见下方相关阅读)
- 各厂商 ToS 自己遵守 —— cc-router 只是透明代理,不替你解除任何 provider 端的限制;高频跨账号轮询有被限速或封号风险
相关阅读
- 想用桌面 GUI 客户端而不是 CLI?参考 用 cc-router 接入 Claude Desktop:一个 Token 调度多家模型订阅,那篇用的是 HTTPS Gateway + 自签 CA 方案。
参考链接
- GitHub 仓库:finch-xu/cc-router
- 官方主页:ccrouter.app
- 入门文档:Getting Started
- 下载客户端:GitHub Releases