Skip to content

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.json
bash
open -e ~/.claude.json
bash
nano ~/.claude.json

完整写法参考:

json
{
  "installMethod": "unknown",
  "autoUpdates": true,
  "projects": {},
  "hasCompletedOnboarding": true
}

注意 JSON 格式

在已有字段后面追加时,前一行末尾要补英文逗号 ,,否则整个文件格式非法、配置不生效。保存后可以这样验证:

bash
# macOS / Linux
cat ~/.claude.json | python3 -m json.tool
powershell
# 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 查看当前会话的用量;完整账单见使用日志。

内容如有疑问请联系客服