1. Ubuntu 上装 Claude Code 到底卡在哪

Claude Code 是 Anthropic 出的终端智能编程工具,简单说就是跑在命令行里的 AI 助手,能读你整个代码库、按自然语言改文件、跑测试、修 bug,不需要图形界面。适合谁?适合像我这样常年 SSH 到 Ubuntu 服务器上写代码的人,本地没桌面、只有终端,照样能让 AI 帮你干活。

相关服务:台湾云服务器租用

但真在 Ubuntu 上装它,坑不在安装命令本身,而在两件事:一是 Node 环境版本不对导致 npm install -g 报错,二是装完之后模型请求走哪条通道。前者是本地环境问题,后者是网络与鉴权问题。我试过在一台北京 2C4G 的 Ubuntu 24 机器上从零装一遍,apt update 那一步就慢得让人怀疑机器掉线了,后来发现是默认源的问题,换成国内镜像才顺畅。

这篇就按我自己的操作顺序来:先把 Ubuntu 的 Node 环境弄干净,装好 Claude Code,再用 TaoToken 的统一 Key 和 API 通道接管模型请求,最后给一份可以直接复制的 config.toml 骨架,以及装完必须做的验证动作。全程命令可复制,你跟着敲就行。

2. 装之前先把 TaoToken 的通道准备好

Claude Code 默认会去连 Anthropic 的官方端点,对国内个人开发者来说,直连的稳定性和鉴权管理都比较麻烦。TaoToken 在这里的角色是一个统一的 API 通道:你拿一个 Key,就能通过它访问包括 Claude 系列在内的模型,不用自己维护多套凭证,也不用在每台机器上分别配。

对个人自用场景,我建议先把这几件事做了:

第一,注册后在控制台创建一个 API Key。地址是 https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=api_keys&utm_campaign=rewrite ,创建完把 Key 复制出来,形如 sk- 开头的一串,后面配置要用。

第二,确认你要用的模型名。TaoToken 的模型列表在文档里有,Claude Code 场景一般选 Claude 系列里适合编码的型号。文档入口:https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite 。

第三,想先验证通道通不通,可以直接在网页里对话测试,不用装任何东西:https://taotoken.net/model-chat?utm_source=taotoken_aicg_blog_end&utm_content=model_chat&utm_campaign=rewrite 。这一步能帮你排除「是 Key 的问题还是本地配置的问题」。

如果你后面打算长期用 Claude Code 做编码、跑 Agent 任务,可以看下 Coding Plan,额度模型更适合高频调用:https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=coding_plan&utm_campaign=rewrite 。

注意:API Key 只创建一次完整显示,关掉页面就看不到了,记得先存到密码管理器里。

3. 可复制的安装与 config.toml 配置骨架

3.1 把 Ubuntu 系统源和 Node 环境弄干净

先更新系统。如果你在京东云、腾讯云这类国内 VPS 上,默认源可能很慢,建议先确认 /etc/apt/sources.list 指向的是国内镜像,再执行:

sudo apt update && sudo apt upgrade -y

接着处理 Node。Claude Code 要求 Node 18 以上,我实测用 Node 20 最稳。先清掉可能存在的旧版本,再通过 NodeSource 装:

sudo apt remove -y nodejs npm
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs

装完校验版本,两个命令都要看:

node --version   # 期望 v20.x.x
npm --version    # 期望 10.x.x 或更高

如果 node --version 输出的是 v18 以下,说明旧版本没清干净,回到上一步重来。

3.2 配置 npm 全局目录并安装 Claude Code

为了避免全局包权限问题,把 npm 的全局目录指到用户目录下:

mkdir -p ~/.npm-global
npm config set prefix ~/.npm-global
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

顺手装上 Claude Code 会用到的两个依赖,ripgrep 用于代码搜索,git 用于版本操作:

sudo apt install -y git ripgrep

然后安装本体:

npm install -g @anthropic-ai/claude-code

安装完成后确认命令可用:

自用文儿:在 Ubuntu 上安装 Claude Code 并配 TaoToken 的 config.toml 骨架

claude --version

能打印出版本号,说明二进制已经进 PATH 了。

3.3 config.toml 骨架:把请求指向 TaoToken

Claude Code 的配置目录在 ~/.claude/,核心文件是 config.toml。下面这份骨架是我自用的版本,把模型请求统一走 TaoToken 的 API 通道,你只需要替换 Key 和模型名两处:

# ~/.claude/config.toml
# Claude Code 自用配置骨架

[api]
# TaoToken 统一 API 入口
base_url = "https://taotoken.net/api"
# 替换成你在控制台创建的 Key
api_key = "sk-你的TaoToken密钥"
# 替换成你要用的模型名,以文档列表为准
model = "claude-sonnet-4-20250514"

[behavior]
# 允许 Claude Code 直接编辑文件
auto_edit = true
# 执行命令前是否需要确认,自用可设 false 提速
confirm_commands = false

[context]
# 单次请求携带的最大上下文,按模型能力调整
max_tokens = 8192

几个参数说明一下。base_url 固定写 https://taotoken.net/api,这是 API 入口,不要带路径后缀。api_key 就是第 2 步创建的 Key。model 必须和 TaoToken 文档里列出的模型名完全一致,写错了会返回模型不存在的错误。auto_edit 打开后 Claude Code 能直接改文件,自用场景方便,但如果你在重要仓库里操作,建议先设 false 观察几轮。

提示:config.toml 里含明文 Key,建议 chmod 600 ~/.claude/config.toml,别提交到 git。

3.4 用环境变量兜底

有些版本的 Claude Code 会优先读环境变量,为了保险,在 ~/.bashrc 里再加一层:

export ANTHROPIC_BASE_URL="https://taotoken.net/api"
export ANTHROPIC_API_KEY="sk-你的TaoToken密钥"

改完 source ~/.bashrc。这样即使 config.toml 没被读到,请求也会走 TaoToken。

4. 验证请求:确认通道真的通了

配置写完不算完,必须验证。我一般分三步。

第一步,进一个测试项目目录,启动 Claude Code:

mkdir -p ~/projects/demo && cd ~/projects/demo
claude

第一次启动会让你选显示风格,随便选一个,后面能改。

第二步,在交互界面里发一条最简单的指令,比如:

列出当前目录下的所有文件,并说明这个目录是做什么的

如果 Claude Code 能正常返回文件列表和分析,说明模型请求已经通过 TaoToken 通道走通了。这一步返回慢是正常的,首次请求要建立连接。

第三步,做一次真实的文件操作验证。让它创建一个文件:

创建一个 hello.py,内容是打印 Hello TaoToken

然后退出 Claude Code,在终端里检查:

cat hello.py

能看到文件内容,说明 auto_edit 生效、写权限正常。到这一步,安装、配置、通道、写操作四条链路全部验证完毕。

如果你在验证时想单独确认 Key 本身没问题,可以回到网页对话页发一条消息,两边对比就能定位问题出在本地还是通道。

5. 本篇常见错排查

5.1 npm install 报 EACCES 权限错误

现象是 npm install -g 提示 permission denied。原因是全局目录还在 /usr/lib/node_modules。回到 3.2 节,确认 npm config get prefix 输出的是 /root/.npm-global 或 /home/你的用户/.npm-global,不是系统路径。改完 prefix 后重新 source ~/.bashrc。

5.2 claude 命令找不到

装完了但敲 claude 提示 command not found。九成是 PATH 没生效。执行 echo $PATH 看有没有 ~/.npm-global/bin。没有的话检查 ~/.bashrc 里那行 export 是否写进去了,然后 source ~/.bashrc。如果你用的是 zsh,要写到 ~/.zshrc。

5.3 请求返回 401 或鉴权失败

先确认 config.toml 里的 api_key 没有多余空格或换行,Key 是完整的一串。再确认 base_url 写的是 https://taotoken.net/api,没有多加 /v1 之类的后缀。如果还不行,去控制台重新生成一个 Key 替换,排除 Key 被误删的可能。

5.4 返回模型不存在

model 字段和 TaoToken 文档里的模型名对不上。打开文档页核对一遍,注意大小写和日期后缀。模型名是精确匹配,差一个字符都不行。

5.5 请求超时或连接被重置

先排除本地网络问题,curl -I https://taotoken.net/api 看能否拿到响应。如果本地能通但 Claude Code 超时,检查是不是同时设了环境变量和 config.toml,两者冲突时以环境变量为准,把不一致的那份改统一。另外确认机器上没有残留的 npm proxy 配置,npm config get proxy 应该是空。

5.6 apt update 卡住不动

这是国内 VPS 常见问题,和 Claude Code 无关。检查 /etc/apt/sources.list 是否指向国内镜像源,京东云、腾讯云的机器默认源质量参差,换成清华或阿里源后重试。这一步卡住会连带影响后面 Node 的安装。

6. 后续怎么用得更顺

装好只是起点。日常用下来,我建议把 Claude Code 固定在你最常改的那个项目目录里启动,它会自动索引整个代码库,上下文越稳定,回答越准。config.toml 里的 max_tokens 可以按你实际项目的规模调,小项目 4096 够用,大仓库调到 8192 或更高。

如果你打算把它接进日常编码流、甚至跑一些自动化的 Agent 任务,单次调用额度会涨得比较快,这时候 Coding Plan 比按量付费更划算,入口在 https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=coding_plan&utm_campaign=rewrite 。Key 的管理和新建都在控制台 https://taotoken.net/console?utm_source=taotoken_aicg_blog_end&utm_content=console&utm_campaign=rewrite ,接入细节以文档 https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite 为准。

最后提醒一句,config.toml 和 ~/.bashrc 里的 Key 都是明文,服务器如果多人共用,记得收紧文件权限,别让 Key 裸奔。