
1. Linux 上跑 Claude Code卡在哪一步Claude Code 是 Anthropic 出的命令行编程助手能在终端里直接读项目、改代码、跑命令适合习惯在 Linux 服务器或本地开发机上干活的人。它本身是个 npm 包理论上npm install -g就能装但真正让大多数人卡住的不是安装而是装完之后连不上模型官方默认走 Anthropic 的接口国内网络环境下首次登录、鉴权、模型请求经常超时界面停在登录页反复转圈。我试过的路径是Node.js 环境准备好用 npm 装 Claude Code然后把模型请求切到 GLM再通过 TaoToken 统一 Key 和 API 通道收口最后用settings.json把环境变量一次性写死。这样做的结果是claude命令启动后不再弹登录直接进项目目录就能对话和改代码。整条链路涉及四个环节Node.js/npm、Claude Code 本体、GLM 模型映射、TaoToken 通道配置。下面按顺序拆开每一步都给可复制的命令和验证动作你照着敲一遍就能确认哪一环生效、哪一环报错。需要提前说明的是Claude Code 要求 Node.js 18 或以上低于这个版本 npm 装完也可能启动失败。另外配置文件分两个~/.claude/settings.json管模型和环境变量~/.claude.json管首次登录状态两个都要建缺一个都可能卡在引导页。2. 前置准备Node.js、npm 与 TaoToken 通道2.1 确认 Node.js 与 npm 版本先看当前环境别急着装。执行node -v npm -v如果node -v输出v18.x及以上就合格v20、v22、v24都行。如果提示 command not found或者版本低于 18需要先装 Node.js。用包管理器装最省事Debian/Ubuntu 系curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - sudo apt-get install -y nodejsCentOS/RHEL 系可以用dnf module install nodejs:20。装完再跑一次node -v npm -v确认。npm 一般随 Node.js 一起装上版本在 9 以上就够用。2.2 为什么中间要加一层 TaoTokenClaude Code 的模型请求走ANTHROPIC_BASE_URL这个环境变量默认指向 Anthropic 官方。直接填官方地址在部分网络环境下会连不上直接填某个模型厂商的地址又会把 Key 和模型绑定死换模型要改配置。TaoToken 在这里的作用是提供一个统一的 Key 和 API 通道你拿一个 Key通过https://taotoken.net/api这个入口发请求模型名在配置里映射换模型只改一行配置不用重新申请 Key。对 Claude Code 来说它只认ANTHROPIC_BASE_URL和ANTHROPIC_AUTH_TOKEN两个变量所以把 BASE_URL 指向 TaoToken 的 API 入口AUTH_TOKEN 填 TaoToken 的 KeyClaude Code 就以为自己在跟 Anthropic 说话实际请求被转发到 GLM。这就是整条链路能跑通的关键。2.3 拿 Key 和看文档的位置Key 在控制台生成接入细节看文档。地址如下控制台生成和管理 Keyhttps://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_contentconsoleutm_campaignrewriteAPI Keys 页面https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewrite接入文档https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewriteAPI 入口本身是https://taotoken.net/api这个地址不加 UTM直接写进配置文件。Key 生成后先复制到剪贴板或临时文件下一步要用。3. 可复制配置装 Claude Code 并写 settings.json3.1 安装 Claude CodeNode.js 就绪后一条命令装npm install -g anthropic-ai/claude-code装完验证两件事claude --version which claudeclaude --version会输出版本号which claude会输出可执行文件路径比如/www/server/nodejs/v24.16.0/bin/claude。如果which claude找不到说明 npm 的全局 bin 目录不在 PATH 里用npm config get prefix看前缀把对应的bin目录加进 PATH。想确认这个命令最终指向哪个真实文件用readlink -f $(which claude)它会解析所有软链接输出类似/www/server/nodejs/v24.16.0/lib/node_modules/anthropic-ai/claude-code/bin/claude.exe。bin/claude只是快捷方式真正的程序在lib/node_modules下面。这一步不是必须但排查「命令找不到」或「版本不对」时很有用。3.2 创建配置目录和 settings.json先建目录mkdir -p ~/.claude然后编辑配置文件vim ~/.claude/settings.json填入下面内容把YOUR_API_KEY换成你在控制台生成的真实 Key{ env: { ANTHROPIC_AUTH_TOKEN: YOUR_API_KEY, ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_DEFAULT_HAIKU_MODEL: glm-4.7, ANTHROPIC_DEFAULT_SONNET_MODEL: glm-5.2[1m], ANTHROPIC_DEFAULT_OPUS_MODEL: glm-5.2[1m], CLAUDE_CODE_AUTO_COMPACT_WINDOW: 1000000, CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC: 1, API_TIMEOUT_MS: 3000000 } }逐项说明一下别照抄完不知道在干嘛配置项作用ANTHROPIC_AUTH_TOKEN你的 TaoToken Key鉴权用ANTHROPIC_BASE_URL请求入口指向 TaoToken APIANTHROPIC_DEFAULT_HAIKU_MODELClaude Code 请求 Haiku 时实际调用的模型ANTHROPIC_DEFAULT_SONNET_MODEL请求 Sonnet 时实际调用的模型ANTHROPIC_DEFAULT_OPUS_MODEL请求 Opus 时实际调用的模型CLAUDE_CODE_AUTO_COMPACT_WINDOW上下文压缩窗口配合大上下文模型CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC关掉非必要流量减少无效请求API_TIMEOUT_MS请求超时单位毫秒设大一点避免长任务被掐断其中glm-5.2[1m]里的[1m]表示 100 万 Token 上下文窗口也就是 1 Million。Claude Code 界面里显示的Opus 4.8 (1M context)对应的就是这个量级。写成glm-5.2[1m]的意思是当 Claude Code 默认请求 Sonnet 或 Opus 时实际调用的是 GLM-5.2 的百万上下文版本。这样你在界面里选模型底层映射到 GLM不用改代码。3.3 跳过首次登录引导Claude Code 第一次启动会走登录引导走官方登录在国内环境容易卡住。直接建一个状态文件跳过vim ~/.claude.json内容{ hasCompletedOnboarding: true }这个文件告诉 Claude Code「引导已完成」启动时不再弹登录页。注意它是~/.claude.json跟~/.claude/settings.json是两个不同路径的文件别搞混。4. 验证请求从启动到确认模型生效4.1 启动并观察首屏进到任意项目目录cd ~/your-project claude如果配置正确会直接进入 Claude Code 的交互界面不再出现登录提示。首屏一般会显示当前目录、可用命令和模型信息。如果还停在登录页说明~/.claude.json没生效或路径写错回去检查。4.2 发一条测试请求在交互界面里输入一句简单的话比如让它解释当前目录下的某个文件解释一下 package.json 里 scripts 字段的作用正常情况它会读取文件并返回解释。这一步验证的是整条链路Claude Code 发出请求 → 请求打到ANTHROPIC_BASE_URL→ TaoToken 转发 → GLM 返回结果 → 界面显示。任何一环断了这里就会报错或超时。4.3 用命令行方式快速验证不想进交互界面也可以直接用-p参数发一次性请求claude -p 用一句话说明当前目录是什么项目这个方式适合写进脚本或做连通性测试。如果返回正常文本说明 Key、BASE_URL、模型映射都通了。如果报鉴权错误重点查ANTHROPIC_AUTH_TOKEN有没有填错、Key 有没有过期如果报连接超时查ANTHROPIC_BASE_URL是不是写成了https://taotoken.net/api注意结尾不要多加斜杠。4.4 确认模型映射生效在交互界面里输入/model或查看状态栏能看到当前使用的模型标识。如果显示的是 GLM 相关名称说明ANTHROPIC_DEFAULT_SONNET_MODEL等映射生效了。如果显示的还是 Claude 官方模型名检查 settings.json 的 JSON 格式有没有写错比如多了逗号、少了引号JSON 解析失败会导致整个 env 块被忽略。5. 本篇常见错排查5.1 claude 命令找不到现象claude: command not found。原因通常是 npm 全局 bin 目录不在 PATH。执行npm config get prefix假设输出/www/server/nodejs/v24.16.0那么 bin 目录就是/www/server/nodejs/v24.16.0/bin把它加进 PATHecho export PATH/www/server/nodejs/v24.16.0/bin:$PATH ~/.bashrc source ~/.bashrc再跑which claude确认。5.2 启动后仍停在登录页检查~/.claude.json是否存在、内容是否为{hasCompletedOnboarding: true}。注意文件名是.claude.json不是.claude/settings.json。另外确认当前用户的家目录正确用echo $HOME看一下别把文件建到了 root 家目录而当前是普通用户。5.3 请求超时或连接失败先确认ANTHROPIC_BASE_URL的值。正确写法是https://taotoken.net/api不要写成https://taotoken.net/api/带尾斜杠也不要在后面拼/v1。然后确认API_TIMEOUT_MS设得够大长任务建议 300000050 分钟。如果还是超时用curl直接测一下通道curl -s -o /dev/null -w %{http_code} https://taotoken.net/api返回 4xx 说明通道可达但鉴权或路径有问题返回超时说明网络层不通。5.4 鉴权失败 401重点查三处Key 是否复制完整前后不要有空格、ANTHROPIC_AUTH_TOKEN字段名是否拼对、settings.json 是否是合法 JSON。用python3 -m json.tool ~/.claude/settings.json验证 JSON 格式能解析通过才说明格式没问题。5.5 模型名报错如果返回「model not found」之类检查ANTHROPIC_DEFAULT_*_MODEL的值是否跟通道支持的模型名一致。glm-5.2[1m]这种带方括号的写法要原样保留不要改成glm-5.2-1m或去掉方括号。模型名以文档里列出的为准别自己猜。5.6 上下文窗口不生效CLAUDE_CODE_AUTO_COMPACT_WINDOW设成1000000是为了配合百万上下文模型。如果发现长对话被提前压缩检查这个值有没有被其他配置覆盖以及模型本身是否支持百万上下文。不是所有 GLM 版本都支持[1m]用之前确认一下。6. 后续怎么用模型对话、Coding Plan 与文档配置跑通之后日常使用分几个方向。想快速验证模型能力、做单次问答用模型对话页面最直接https://taotoken.net/model-chat?utm_sourcetaotoken_aicg_blog_endutm_contentmodel-chatutm_campaignrewrite 。如果你打算长期用 Claude Code 做编码、跑 Agent 任务按量计费不如包月划算可以看 Coding Planhttps://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding-planutm_campaignrewrite 。接入过程中遇到参数、路径、模型名的问题文档里都有对照说明https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite 。最后给一个实用习惯把~/.claude/settings.json备份一份换机器或重装时直接复制过去只改 Key 就能用。另外 Claude Code 升级后偶尔会重置配置读取逻辑升级完先跑一次claude -p test确认链路还通再进项目干活。