1. Ubuntu 20.04 上 claude-code 装不上、连不通,到底卡在哪
如果你在 Ubuntu 20.04 上敲npm install -g @anthropic-ai/claude-code,大概率会遇到两类问题:一是系统里预装的 node 版本太老(Ubuntu 20.04 默认源里还是 node 10 或 12),npm 直接报引擎不兼容;二是装完之后运行claude,终端提示网络连接失败,因为 claude-code 默认要连 Anthropic 官方端点,而国内网络环境下这个请求走不通。
这篇要解决的就是这条完整链路:在 Ubuntu 20.04 上把 node 升到 22、用 npm 全局装好 claude-code、再通过 TaoToken 的统一 Key 把请求转发到 deepseek v4 pro,最后用一条 curl 命令确认配置真的生效了。适合谁?适合手里有一台 Ubuntu 20.04 开发机、想用 claude-code 这个终端 Agent 工具、但不想折腾网络环境、希望一个 Key 就能切换模型的开发者。
我试过在一台老笔记本上从零走一遍,踩的坑主要集中在 node 版本、npm 全局路径、以及 settings.json 和环境变量谁覆盖谁这三处。下面按顺序拆开讲,每一步都给可复制的命令。
2. 前置准备:node 22 + npm 全局目录 + TaoToken 统一 Key
2.1 先确认并清理旧 node
Ubuntu 20.04 自带的 node 版本通常低于 claude-code 要求的 V18。先看一眼:
node --version npm --version如果输出是 v10 或 v12 这种,直接卸干净再装:
sudo apt remove --purge nodejs npm sudo apt autoremove2.2 用 NodeSource 装 node 22
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash - sudo apt-get install -y nodejs node --version npm --version正常会看到v22.x.x和10.x.x。node 版本这一步不能省,低于 18 装 claude-code 会直接失败。
2.3 配置 npm 全局目录(避免 sudo 装包)
为了不每次装全局包都加 sudo,把全局前缀指到用户目录:
mkdir -p ~/.npm-global npm config set prefix "$HOME/.npm-global" echo 'export PATH="$HOME/.npm-global/bin:$PATH"' >> ~/.bashrc source ~/.bashrc2.4 拿 TaoToken 统一 Key
TaoToken 在这里的角色是一个统一的 API 通道:你只需要在它那边生成一个 Key,claude-code 通过这个 Key 把请求发出去,后端再路由到 deepseek v4 pro。这样你就不用为每个模型单独维护一套环境变量。
操作路径是:登录官网 → 进控制台 → 创建 API Key。地址如下:
- 官网入口:https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=
- 控制台(建 Key):https://taotoken.net/console?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=
- API Keys 管理页:https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=
Key 拿到后先放一边,下一步配置要用。API 基础地址统一用https://taotoken.net/api,这个地址不加任何查询参数。
3. 可复制配置:环境变量 + settings.json 骨架 + CC Switch 切换
3.1 安装 claude-code
npm install -g @anthropic-ai/claude-code claude --version能打印出版本号就说明装好了。
3.2 环境变量写法
claude-code 读取的是ANTHROPIC_前缀的几个变量。把 base url 指向 TaoToken,token 填你刚建的 Key:
echo 'export ANTHROPIC_BASE_URL="https://taotoken.net/api"' >> ~/.bashrc echo 'export ANTHROPIC_AUTH_TOKEN="sk-你的TaoToken密钥"' >> ~/.bashrc echo 'export ANTHROPIC_MODEL="deepseek-v4-pro"' >> ~/.bashrc source ~/.bashrc注意:
ANTHROPIC_BASE_URL后面不要带斜杠,也不要拼/v1之类的路径,claude-code 会自己补。
3.3 settings.json 骨架
环境变量是全局的,但 claude-code 还支持在~/.claude/settings.json里按模型档位分别指定。这样你可以主模型用便宜的 flash,opus 档位用 pro,兼顾成本和效果:
{ "theme": "dark", "env": { "ANTHROPIC_BASE_URL": "https://taotoken.net/api", "ANTHROPIC_AUTH_TOKEN": "sk-你的TaoToken密钥", "ANTHROPIC_MODEL": "deepseek-v4-flash", "ANTHROPIC_DEFAULT_OPUS_MODEL": "deepseek-v4-pro", "ANTHROPIC_DEFAULT_SONNET_MODEL": "deepseek-v4-flash", "ANTHROPIC_DEFAULT_HAIKU_MODEL": "deepseek-v4-flash" } }用 nano 编辑:
nano ~/.claude/settings.json保存后退出。这里有个优先级要记住:settings.json 里的env会覆盖 shell 里同名的环境变量。所以如果你两边都配了,以 settings.json 为准。配好之后,之前临时写进.bashrc的那几行可以按需删掉,避免以后自己看混。
3.4 CC Switch 切换动作
claude-code 里切换模型不用改文件,直接在会话里用斜杠命令:
/model会弹出一个列表,列出 Default、Opus、Sonnet、Haiku 四个档位对应的实际模型。选一个回车即可,这个切换只对当前会话生效。想让它成为新会话的默认,在列表里按d键设为默认。
如果你装了 CC Switch 这类配置切换工具,它的作用就是帮你在多套 settings.json 之间快速切换(比如一套指向 deepseek、一套指向别的模型)。核心还是改~/.claude/settings.json里的env块,工具只是把这个动作图形化了。
4. 验证请求:一条 curl 确认已指向 deepseek v4 pro
配置写完别急着开对话,先用 curl 打一发,确认 Key 和地址是通的:
curl -s https://taotoken.net/api/v1/messages \ -H "x-api-key: sk-你的TaoToken密钥" \ -H "anthropic-version: 2023-06-01" \ -H "content-type: application/json" \ -d '{ "model": "deepseek-v4-pro", "max_tokens": 64, "messages": [{"role": "user", "content": "只回复两个字:通了"}] }'返回体里能看到content字段带文字,就说明通道没问题。如果返回 401,是 Key 错了;返回 404,多半是 base url 拼错了路径。
curl 通了之后,启动 claude-code:
claude首次启动会让你选主题,随便选一个。进去之后敲/model,如果列表里显示的档位对应的是 deepseek-v4-pro 和 deepseek-v4-flash,说明 settings.json 生效了。再随便问一句「帮我写个 hello world 的 python 函数」,能正常流式返回,整条链路就跑通了。
5. 本篇常见错排查
5.1 npm 报 engine 不兼容
现象:装 claude-code 时提示Unsupported engine,要求 node >= 18。原因就是旧 node 没卸干净,或者 PATH 里还指向老版本。用which node和node --version双重确认,必要时重开一个终端。
5.2 claude 命令找不到
装完npm install -g后敲claude提示 command not found。九成是~/.npm-global/bin没进 PATH。检查:
echo $PATH | grep npm-global没有就重新source ~/.bashrc,或者确认那行 export 写对了。
5.3 运行 claude 报网络错误
如果 base url 还是默认的 Anthropic 官方地址,国内环境会连不上。确认ANTHROPIC_BASE_URL已经改成https://taotoken.net/api,并且 settings.json 里没有把它覆盖回官方地址。
5.4 模型没生效,还是默认模型
最常见的原因是 settings.json 和环境变量冲突。记住 settings.json 优先级更高。用cat ~/.claude/settings.json看一眼实际内容,再在会话里/model核对。改完 settings.json 要重启 claude 才生效。
5.5 401 / 403 鉴权失败
Key 复制时带了空格,或者用了别的平台的 Key。TaoToken 的 Key 以sk-开头,重新去 API Keys 页面复制一次,注意别把换行符带进去。
6. 后续怎么用:模型对话、Coding Plan 与接入文档
链路跑通之后,日常使用分几个方向。想快速验证某个模型回答质量,直接开模型对话页面试:
- 模型对话:https://taotoken.net/chat?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=
如果你打算把 claude-code 长期当编码助手用,或者要接 Agent 跑自动化任务,建议看 Coding Plan,按用量规划比单次调用更划算:
- Coding Plan:https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=
接入过程中遇到参数、路径、鉴权细节问题,直接翻接入文档,里面把 base url、请求头、模型名都列清楚了:
- 接入文档:https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=
另外,如果你用的是 ClaudeCodeAnthropic 这套兼容协议,配置方式和本篇一致,参考:
- ClaudeCodeAnthropic:https://taotoken.net/claude-code-anthropic?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=
最后给个实用建议:把~/.claude/settings.json纳入你的 dotfiles 管理,换机器时直接同步过去,省得每次重配。Key 别硬编码进 git 仓库,用环境变量注入或者本地单独存一份。