解决Claude Code 启动后无响应,无法与后端 API 建立连接
1. 遇到的问题
Claude Code 启动后无响应,无法与后端 API 建立连接。排查发现根本原因是 API 认证配置失效:
ANTHROPIC_AUTH_TOKEN被服务端返回「无效令牌」ANTHROPIC_BASE_URL配置错误或指向不支持 Claude Code 完整接口的代理- 表现为日志中连续出现
401 无效的令牌或404 Invalid URL (POST /v1/messages/count_tokens)
2. 怎么解决此问题
Step 1:确认当前环境变量状态
env | grep ANTHROPIC
echo $ANTHROPIC_BASE_URL
echo $ANTHROPIC_AUTH_TOKEN
Step 2:在 ~/.bashrc 中配置(推荐,最稳定)
export ANTHROPIC_AUTH_TOKEN="sk-xxxxxxxxxxxxxxxxxxxx"
export ANTHROPIC_BASE_URL="https://your-proxy-endpoint.com"
然后执行 source ~/.bashrc,再启动 Claude Code。
Step 3:或在 ~/.claude/settings.json 中配置(应用级配置)
{
"env": {
"ANTHROPIC_API_KEY": "sk-xxxxxxxxxxxxxxxxxxxx",
"ANTHROPIC_BASE_URL": "https://your-proxy-endpoint.com"
},
"permissions": {
"allow": [],
"deny": []
},
"apiKeyHelper": "echo 'sk-'"
}
注意:修改后需要重启 Claude Code 会话才能生效。
Step 4:验证配置是否生效
查看最新 debug 日志确认无 401 或 404 错误:
cat ~/.claude/debug/$(ls -t ~/.claude/debug/ | head -1)
3. 经验与启发
3.1 两种配置方式的差异
| 配置位置 | 生效时机 | 适用场景 |
|---|---|---|
~/.bashrc | 进程启动前(shell 继承) | API 地址、Token 等启动即需的变量 |
~/.claude/settings.json | Claude Code 启动后读取 | 应用级附加配置 |
关键结论:~/.bashrc 中的环境变量在 Claude Code 初始化阶段就已确定,因此更"硬"、更可靠;settings.json 生效偏晚,可能错过早期 API 初始化。
3.2 调试三板斧
- 看日志:
~/.claude/debug/*.txt中的401/403/404错误直接定位问题 - 查环境:
env | grep ANTHROPIC确认当前生效配置 - 清缓存:
~/.claude.json中的customApiKeyResponses.rejected会记录被拒绝的 key,必要时可清理
3.3 避坑指南
- Token 有效性:第三方代理的 Token 不一定兼容 Claude Code 原生接口,需确认代理支持
/v1/messages和/v1/messages/count_tokens - Base URL 格式:不要带末尾空格,不要带
/v1后缀(Claude Code 会自动拼接) - 配置单一来源:避免同时在
~/.bashrc和settings.json中配置冲突的值,选择一处即可
核心原则:Claude Code 的 API 配置 = ANTHROPIC_AUTH_TOKEN + ANTHROPIC_BASE_URL,二者缺一不可,且必须在进程启动早期就正确注入。
4133

被折叠的 条评论
为什么被折叠?



