☰
AI编程提效必看:Claude Code Router + modelscope免费模型(Linux)
2026/9/26 2:19:54 网站建设 项目流程

1. Linux 上把 Claude Code 接到 modelscope 免费模型,到底解决什么问题

Claude Code 本身是个终端里的 AI 编程助手,敲claude "帮我写个快排"就能在命令行里对话、改代码、跑命令。但它默认走 Anthropic 官方通道,对国内 Linux 用户来说有两个现实问题:一是网络链路不稳定,二是官方额度用起来心疼。modelscope(魔搭社区)提供了兼容 Anthropic 协议的推理接口,还挂着 Qwen3-Coder 这类代码能力不错的免费模型,于是「Claude Code Router + modelscope」就成了低成本提效的常见组合。

Claude Code Router(下文简称 CCR)干的事,你可以理解成一个「请求调度台」:Claude Code 发出的请求先到 CCR,CCR 按你写的规则决定这次请求发给谁——发给 modelscope 的免费模型,还是发给别的通道。这样你既保留了 Claude Code 的操作习惯,又能把大部分日常编码请求导到免费模型上,只在真正需要强模型的场景才切回去。

这篇面向的是 Linux 环境(Ubuntu/Debian/CentOS 都覆盖),从装 Node、装 Claude Code、装 CCR,到写 config 骨架、配 modelscope 令牌、启动验证、报错排查,一步步给可复制的命令。适合谁:想在服务器或本地 Linux 上跑 AI 编程、又不想为每次补全都付费的开发者;也适合已经在用 Claude Code、想加一条备用模型通道的人。下面所有配置我都实测跑过,坑点会单独标出来。

2. 前置准备:Node 环境、Claude Code 与 TaoToken 统一 Key 通道

先把地基打好。CCR 和 Claude Code 都跑在 Node 上,建议 Node 18 及以上。Ubuntu/Debian 用 apt,CentOS 用 yum,命令直接抄:

# Ubuntu / Debian sudo apt update && sudo apt install -y curl curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - sudo apt install -y nodejs # CentOS / RHEL curl -fsSL https://rpm.nodesource.com/setup_18.x | sudo bash sudo yum install -y nodejs

装完验证一下,两个命令都要出版本号:

node --version npm --version

接着装 Claude Code。国内服务器直连 npm 官方源容易卡,加个镜像参数会顺很多:

npm install -g @anthropic-ai/claude-code --registry=https://registry.npmmirror.com claude --version

然后是 CCR 本体,它是个 npm 包,全局装:

npm install -g @musistudio/claude-code-router --registry=https://registry.npmmirror.com ccr -v

到这里你有了 Claude Code 和 CCR 两个命令。接下来是 Key 的问题。modelscope 的令牌可以直接用,但如果你同时还想接别的模型通道、又不想在每台机器上维护一堆环境变量,可以用 TaoToken 做统一入口:一个 Key 管多个模型通道,CCR 的 config 里只填一处地址和一处 Key,换模型时改配置就行,不用来回 export。

TaoToken 的 API 地址是https://taotoken.net/api,控制台在https://taotoken.net/console,Key 在https://taotoken.net/api-keys生成。接入文档在https://taotoken.net/doc,里面有各协议的对接说明。如果你主要就是长期写代码、跑 Agent,可以看下 Coding Plan:https://taotoken.net/coding-plan。想先验证模型通不通,用模型对话页最快:https://taotoken.net/models。

注意:modelscope 的令牌通常带ms-前缀,填进配置时要去掉前缀,只留后面的内容。这一点后面排错章节还会再提。

3. 可复制的 CCR config 骨架与 modelscope 接入

CCR 的配置文件默认在~/.claude-code-router/config.json。第一次用可以直接让 CCR 生成一份,再改:

ccr start # 首次运行会在 ~/.claude-code-router/ 下生成默认 config.json

然后编辑它:

vim ~/.claude-code-router/config.json

下面是一份可直接改用的骨架,我把 modelscope 通道和 TaoToken 通道都放进去了,你可以按需删减。关键字段是Providers(定义有哪些上游)、Router(定义什么请求走哪个上游):

{ "LOG": true, "API_TIMEOUT_MS": 600000, "Providers": [ { "name": "modelscope", "api_base_url": "https://api-inference.modelscope.cn/v1/chat/completions", "api_key": "你的modelscope令牌去掉ms-前缀", "models": [ "Qwen/Qwen3-Coder-480B-A35B-Instruct", "Qwen/Qwen2.5-Coder-32B-Instruct" ] }, { "name": "taotoken", "api_base_url": "https://taotoken.net/api/v1/chat/completions", "api_key": "你的TaoToken Key", "models": [ "claude-sonnet-4-20250514", "gpt-4o" ] } ], "Router": { "default": "modelscope,Qwen/Qwen3-Coder-480B-A35B-Instruct", "background": "modelscope,Qwen/Qwen2.5-Coder-32B-Instruct", "think": "taotoken,claude-sonnet-4-20250514", "longContext": "taotoken,claude-sonnet-4-20250514" } }

几个字段解释一下,方便你按自己情况调:

字段作用建议
default日常请求默认走哪个模型填 modelscope 免费模型,省钱
background后台小任务(补全、摘要)填更轻量的模型,快
think需要推理的复杂任务填强模型,比如 TaoToken 通道
longContext超长上下文请求填支持长上下文的模型
API_TIMEOUT_MS请求超时免费模型偶尔慢,给到 600000

Router里值的格式是provider名,模型名,逗号前后不要有空格,写错了 CCR 会找不到对应通道。modelscope 的模型名要写全,比如Qwen/Qwen3-Coder-480B-A35B-Instruct,只写Qwen3-Coder会报模型不存在。

如果你只想用 modelscope,把taotoken那段 Provider 和 Router 里引用它的行删掉即可;反过来想全走 TaoToken 统一通道,就把default改成taotoken,claude-sonnet-4-20250514。改完保存,配置就绪。

4. 启动 CCR 并验证请求真的通了

配置写完,先重启 CCR 让新配置生效:

ccr restart

看下状态和日志,确认没报配置解析错误:

ccr status ccr logs

日志里如果出现Provider modelscope loaded之类的字样,说明通道加载成功。接着做一次真实请求验证。最直接的方式是让 Claude Code 走 CCR 发一条指令:

claude "用 Python 写一个读取 CSV 并统计每列缺失值的函数"

如果返回了代码,说明整条链路通了:Claude Code → CCR → modelscope → 返回。想更精确地确认走的是哪个模型,可以在 CCR 日志里看这次请求命中的 provider 和 model 名。

也可以绕过 Claude Code,直接对 CCR 的本地端口发请求测试。CCR 默认监听http://127.0.0.1:3456:

curl http://127.0.0.1:3456/v1/chat/completions \ -H "Content-Type: application/json" \ -d '{ "model": "modelscope,Qwen/Qwen3-Coder-480B-A35B-Instruct", "messages": [{"role": "user", "content": "输出一段简单的 Python 循环代码"}] }'

返回 JSON 里choices[0].message.content有内容,就说明 modelscope 通道本身没问题。这一步能把「CCR 配置问题」和「上游模型问题」分开定位,排错时很有用。

成功的结果长这样:命令行里claude能正常对话,ccr logs能看到请求记录,curl能拿到模型返回。三者都通过,就可以日常用了——之后每次直接claude "你的指令",CCR 会自动按 Router 规则分发,不用手动切模型。

5. 本篇常见报错与排查动作

配 CCR + modelscope 最容易踩的坑集中在下面几类,按现象对号入座。

报错一:401 Unauthorized或invalid api key。九成是 modelscope 令牌前缀没去掉。modelscope 令牌形如ms-abc123,填进 config 的api_key时要写成abc123,把ms-去掉。另外确认令牌没过期、账号已绑定阿里云账号(魔搭部分模型服务需要绑定后才能调用)。

报错二:model not found或404。模型名写错了。modelscope 的模型名是组织/模型格式,必须写全,比如Qwen/Qwen3-Coder-480B-A35B-Instruct。去魔搭模型页复制准确名称,别手打。

报错三:ECONNREFUSED 127.0.0.1:3456。CCR 没启动或端口不对。先ccr status看进程,没起来就ccr start。如果改过端口,确认 Claude Code 侧指向的地址和 CCR 实际监听端口一致。

报错四:请求一直转圈最后超时。免费模型高峰期会慢,先把API_TIMEOUT_MS调大,比如 600000。如果持续超时,用第 4 节的curl直连测试,确认是上游慢还是 CCR 卡住。上游慢的话,把default临时切到 TaoToken 通道顶一下。

报错五:改了 config 不生效。CCR 不会自动热加载配置,改完必须ccr restart。另外确认你改的是~/.claude-code-router/config.json,不是项目目录下的同名文件。

报错六:claude命令还是走官方通道。检查环境变量里有没有残留的ANTHROPIC_BASE_URL指向别处,它会覆盖 CCR 的设置。用env | grep ANTHROPIC看一眼,有冲突就清掉再重启终端。

排查顺序建议固定成:先ccr logs看 CCR 有没有收到请求 → 再curl直连 CCR 测上游 → 最后查 Claude Code 侧环境变量。这样能快速把问题锁在某一层,不用瞎试。

6. 把通道固定下来:Key 管理与后续接入

跑通之后,建议把配置固化,别每次手动改。如果你只用 modelscope,config 里就一个 Provider,简单直接。但实际用久了通常会遇到「免费模型不够用、想加一条强模型通道」的情况,这时候在 config 里堆多个 Provider、每台机器维护不同 Key 就很烦。

我的做法是留一条 TaoToken 统一通道兜底:日常default走 modelscope 免费模型,think和longContext走 TaoToken。这样既省了大部分调用成本,又保证复杂任务不掉链子。Key 在https://taotoken.net/api-keys统一生成管理,接入细节看https://taotoken.net/doc,换机器时只改一处api_key就行。

如果你主要场景是长期编码、跑 Agent 任务,Coding Plan 那条线更适合,地址是https://taotoken.net/coding-plan,按用量规划比零散调用省心。想先确认某个模型在当前通道下能不能正常返回,用模型对话页https://taotoken.net/models点几下就知道,不用改 config 试错。

最后给个实用习惯:把~/.claude-code-router/config.json纳入你的 dotfiles 管理(比如放 Git 仓库),换服务器时 clone 下来改一下 Key 就能用。CCR 的日志默认会记录请求,调试期开着"LOG": true,稳定后可以关掉减少磁盘写入。整套跑下来,Linux 上 Claude Code + modelscope 免费模型 + TaoToken 兜底通道的组合,日常编码提效够用了。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询