第一步永远是定位:网络、安装还是认证

「用不了」有三种完全不同的病因,一条命令先分诊:

curl -sI https://downloads.claude.ai/claude-code-releases/latest
结果判断下一步
HTTP/2 200网络通查安装(PATH / 二进制)或认证
403代理/过滤器拦截,或地区不可用查代理规则;对照 supported countries
5xx服务端临时故障等几分钟重试
无输出 / 超时 / 解析失败网络被挡配置代理(下一节)

代理配置:国内环境的核心一节

官方支持标准代理环境变量,装之前和运行时都认:

# 指向代理客户端的 HTTP 端口(Clash 系默认混合端口通常是 7890)
export HTTPS_PROXY=http://127.0.0.1:7890
export HTTP_PROXY=http://127.0.0.1:7890

# 内网直连白名单(空格或逗号分隔均可)
export NO_PROXY="localhost 192.168.1.1 .example.com"

# 然后再安装 / 启动
curl -fsSL https://claude.ai/install.sh | bash

四条规则,每条都对应一类疑难杂症:

  • 不支持 SOCKS:官方明确写在文档里。socks5://127.0.0.1:xxxx 这种写法无效,代理客户端务必开 HTTP 端口并用 http:// 协议头。这是「明明有代理还连不上」的第一大根因。
  • 启动时读一次:跑着的会话不感知 shell 里后改的变量——改完重启 Claude Code。
  • 优先级:https_proxy → HTTPS_PROXY → http_proxy → HTTP_PROXY,取第一个已设置的。小写盖大写,排查用 env | grep -i proxy 四个全看。
  • 回环不走代理:对 localhost / 127.0.0.0/8 的连接永不经代理,NO_PROXY 里不用写。

代理要账号密码就写进 URL(http://user:pass@proxy:8080);NTLM / Kerberos 这类高级认证官方建议改走 LLM Gateway。所有变量也可以放 settings.json 的 env 块里,免得污染整个 shell。

证书问题:TLS 报错与公司内网

TLS connect error / unable to get local issuer certificate 一族的病根通常是 TLS 检查型代理的自签根证书不被信任。Claude Code 默认信任内置 Mozilla CA 集 + 操作系统证书库,两条修法:

# 法一:根证书装进系统信任库(推荐,装好即认)
# 法二:显式指定额外 CA 文件
export NODE_EXTRA_CA_CERTS=/path/to/company-root-ca.pem

注意一个版本细节:读取系统证书库需要运行时支持——原生安装版始终可以,npm 安装版要 Node 22.15+,更老的 Node 只认内置集和 NODE_EXTRA_CA_CERTS。信任来源可用 CLAUDE_CODE_CERT_STORE 显式控制(bundled / system / 两者)。

安装期高频错误对照

报错原因与修法
command not found: claude~/.local/bin 不在 PATH;zsh 往 ~/.zshrc 加 export PATH="$HOME/.local/bin:$PATH" 后 source。只装了 VS Code 扩展也会这样——扩展不往 PATH 装 CLI,需另跑标准安装
syntax error near unexpected token 或 curl 403安装脚本被网络设备替换成了 HTML 拦截页;配好代理重下
exit code 137 / KilledLinux 小内存机 OOM;加 swap 或换内存更大的机器装
npm error ENOTEMPTY更新/重装时残留目录冲突;删掉报错提示的包目录重来
Error: claude native binary not installednpm 装了包但原生二进制没落盘;按文档补全安装
cannot execute binary file(WSL)WSL1 跑不了原生二进制;升级到 WSL2
App unavailable in region非故障:地区不可用,对照 supported countries 页
OAuth error / 403 Forbidden认证问题:确认登录的账号与套餐状态;参考文档 login and authentication 节

连上之后:运行期体检工具

  • /doctor:会话内自动体检安装、设置、扩展与上下文占用,给出修复建议、经你确认后执行;Claude Code 起不来就在 shell 里跑 claude doctor
  • /mcp:MCP 服务器连接状态一览。
  • claude --safe-mode:怀疑插件 / MCP / hook 拖慢或搞挂会话时,用它临时禁用全部自定义项做对照实验。
  • CPU / 内存高:勤用 /compact、大构建目录进 .gitignore、任务间重启。
  • /heapdump 慎用:堆快照含完整对话与凭证,公开 issue 只附 -diagnostics.json,别传 .heapsnapshot。

国内用户的三条补充提醒

  1. 代理链路稳定比速度重要:频繁跳变出口 IP 是账号风控的高危因素,固定线路优于「哪个快用哪个」。详见封号避坑指南。
  2. 能跑通 curl 测试不等于万事大吉——安装、登录、API 调用走的域名不止一个,代理规则建议按域名后缀放行而不是逐条精确匹配。
  3. 公司电脑叠加了企业代理 + TLS 检查的,把本文代理与证书两节一起配齐,缺一个都会在不同阶段报错。

排错的正确顺序永远是「先分诊再下药」:一条 curl 定网络,一眼 PATH 定安装,一个 /doctor 定运行期。 对照上面的表,绝大多数「装不上、连不上」十分钟内可以自己解决。