主题
Claude Code 专项问题
本页收录 Claude Code 特有的配置与认证问题。通用请求报错请看请求错误类问题。
首次启动报 Unable to connect to Anthropic services
现象:安装完成后第一次执行 claude,终端打印以下内容并退出:
text
Unable to connect to Anthropic services
Failed to connect to api.anthropic.com: ERR_BAD_REQUEST
Please check your internet connection and network settings.原因:初次启动的引导流程未完成,客户端仍在尝试连接官方端点。
修复:打开 ~/.claude.json,在最外层 JSON 对象中加入一行:
json
"hasCompletedOnboarding": true各系统打开方式:
text
按 Win + R,输入以下内容后回车(用记事本打开):
notepad %userprofile%\.claude.jsonbash
open -e ~/.claude.jsonbash
nano ~/.claude.json完整写法参考:
json
{
"installMethod": "unknown",
"autoUpdates": true,
"projects": {},
"hasCompletedOnboarding": true
}注意 JSON 格式
在已有字段后面追加时,前一行末尾要补英文逗号 ,,否则整个文件格式非法、配置不生效。保存后可以这样验证:
bash
# macOS / Linux
cat ~/.claude.json | python3 -m json.toolpowershell
# Windows PowerShell
Get-Content $env:USERPROFILE\.claude.json -Raw | ConvertFrom-Json无报错即格式正确。
401 Invalid API Key / 无效令牌
终端返回 401 invalid x-api-key,通常是下面三种情况之一,按顺序排查。
情况一:Base URL 未配置或写错
原因:ANTHROPIC_BASE_URL 没配置或配错,请求直接打到了官方端点。
修复:确认 ~/.claude/settings.json 中的地址与令牌都正确:
json
{
"env": {
"ANTHROPIC_BASE_URL": "https://api.wow3.top",
"ANTHROPIC_API_KEY": "sk-***"
}
}TIP
Claude Code 的 Base URL 不需要 /v1 后缀。带了反而会 401。
情况二:IDE 插件或 MCP 覆盖了配置
现象:令牌确认无误,但持续 401。常见于安装了 Cursor、Continue 等 IDE 插件之后。
原因:插件或 MCP 服务覆盖了 settings.json 里的 apiKey / baseURL 字段。
修复(三选一):
- 推荐:用 cc-switch 重新配置,一键覆盖被改掉的配置
- 手动检查并修正
~/.claude/settings.json中被覆盖的字段 - 改用系统环境变量设置地址和令牌(优先级高于配置文件,不易被插件覆盖)
预防:每次安装新的 IDE 插件或 MCP 之后,重新验证一次连通性。
情况三:旧服务的环境变量残留
现象:之前用过其他中转服务,切换过来后新配置填得没问题,仍然 401。
原因:旧服务留下了系统环境变量(ANTHROPIC_BASE_URL、ANTHROPIC_API_KEY、ANTHROPIC_API_TOKEN),而环境变量优先级高于配置文件。
Windows 修复:Win + R → 输入 sysdm.cpl → 高级 → 环境变量,在「用户变量」和「系统变量」里分别删掉上述三个变量,保存后重新打开终端。
macOS / Linux 修复:编辑 ~/.zshrc 或 ~/.bashrc,删掉以 export ANTHROPIC_ 开头的旧行,执行 source ~/.zshrc 后重启终端。
OAuth 登录冲突导致令牌失效
现象:曾在终端用 claude 完成过官网登录,之后切到本站 API,配置被忽略、请求仍直连官方端点。服务器环境(CentOS / Ubuntu)尤为常见。
原因:~/.claude.json 里写入了 OAuth 令牌,其优先级高于 settings.json 中的 API Key。
修复:
bash
# 1. 退出 OAuth 登录
claude auth logout
# 2. 写入本站配置
cat > ~/.claude/settings.json << 'SETTINGS'
{
"env": {
"ANTHROPIC_API_KEY": "sk-你的令牌",
"ANTHROPIC_BASE_URL": "https://api.wow3.top"
}
}
SETTINGS
# 3. 确认写入成功
cat ~/.claude/settings.json
# 4. 重新启动
claude预防:服务器环境首次运行 claude 之前就先写好 settings.json,避免触发 OAuth 流程。
401 Invalid API Key format — 令牌含不可见字符
现象:令牌肉眼看着没错,但报 401 或 Invalid format。
原因:从 PDF、网页、截图复制令牌时混入了零宽空格、不换行空格、\r 等不可见字符;或 OCR 把相似字符认错(0/O、1/l/I)。
检测方法:
bash
echo "$ANTHROPIC_API_KEY" | cat -A
# 正常:行尾只有一个 $
# 异常:出现 ^M$ 或其他多余字符修复:回到控制台令牌页,用「复制」按钮重新获取,不要手动输入、也不要经 PDF / 截图中转。环境变量赋值时不要加引号:
bash
export ANTHROPIC_API_KEY=sk-你的令牌403 Missing API Key / 配置冲突
原因:配置文件被意外修改,或多处配置互相冲突。
修复:用 cc-switch 重新写入配置,覆盖被改动的文件。
启动时要求认证 / 弹出登录提示
确认已配置 ANTHROPIC_BASE_URL 和 ANTHROPIC_API_KEY,然后完全关闭终端窗口重新打开——新建标签页不会重新加载环境变量。
环境变量优先级说明
优先级从高到低:
text
系统环境变量 > ~/.claude.json(OAuth 令牌) > ~/.claude/settings.json排障时如果改了 settings.json 却不生效,一定是被更高优先级的环境变量或 OAuth 残留盖掉了。
切回 200K 上下文
如需关闭 1M 上下文、回到 200K,在 ~/.claude/settings.json(Windows 为 C:\Users\用户名\.claude\settings.json)的 env 中加入:
json
{
"env": {
"CLAUDE_CODE_DISABLE_1M_CONTEXT": "1"
}
}三个系统写法一致,保存后重启终端生效。
WebFetch 联网功能失效
现象:调用 WebFetch 抓网页报错,但同一个网址用浏览器打开完全正常,代理也已开全局。
原因:Claude Code 抓取目标页面前,会先向 claude.ai 发一个预检请求。国内网络或企业防火墙拦掉这个域名,就会导致 WebFetch 整体失败。
修复:在 ~/.claude/settings.json 中加入:
json
{
"env": {
"ANTHROPIC_BASE_URL": "https://api.wow3.top",
"ANTHROPIC_API_KEY": "sk-***"
},
"skipWebFetchPreflight": true
}保存后重启 Claude Code,即可跳过预检直接请求目标页面。
Permission denied — 文件读写被拒绝
三种独立原因,分别判断:
- 系统权限不足:执行
ls -la 路径查看权限位,用chmod 644(文件)或chmod 755(目录)修复 - 客户端权限设置:之前对该类操作选过「总是拒绝」。搜索命令面板里的
Claude: Manage Permissions,把对应规则改回「询问」或「允许」 - 忽略规则误匹配:
cat .claudeignore检查是否有通配符误匹配到目标文件,删掉或精确化该规则
预防:.claudeignore 用精确路径而不是宽泛通配符;项目目录权限保持 644(文件)/ 755(目录)。
为什么日志里混着 Haiku 这类小模型调用?
这是正常现象,不是降级或偷换模型。 Claude Code 会把「主对话」和「后台辅助任务」分给不同模型,以省钱提速:
- 主模型:只用来回答你真正的问题
- 小模型(Haiku 等):处理不值得用贵模型的杂活,例如生成会话标题、自动总结、
/compact压缩历史、意图识别与工具路由
Codex 同理,后台杂活走 mini 类小模型。
如何确认正常:在使用日志里点开那条小模型请求,如果 prompt 是「起个标题」「总结一下」这类,就属于辅助任务;只要你真正提问那条请求命中的是你选的大模型即可。
如何查看当前令牌用量?
在交互界面输入 /cost 查看当前会话的用量;完整账单见使用日志。

