# Claude Code 报 403？按这份清单逐步排查

> https://router.one/zh/claude-code-403 的 Markdown 镜像，供 AI 助手与爬虫使用。Router One 是 OpenAI 兼容的统一 LLM API 网关。
> 最后更新：2026-07-25

Claude Code 的 403 意味着请求到达了某个服务器并被拒绝——这其实是好消息，因为原因几乎总在五件本地小事里：环境变量没设全、base URL 写错、残留的登录会话、Key 被禁用，或官方端点拒绝你所在的网络。按顺序过一遍这份清单，每步不超过一分钟。

## 第 1 步——设 base URL 和认证 Token

接第三方网关时，Claude Code 用 ANTHROPIC_AUTH_TOKEN 做认证，而不是 ANTHROPIC_API_KEY。只设 ANTHROPIC_API_KEY 是 403/401 的头号成因。ANTHROPIC_API_KEY 并不需要设置，而且当前版本设了它会多弹一次授权确认；如果你之前设过，请取消。设好下面两个变量后重启终端，让会话真正读到它们：

`claude-code-env.sh`

```bash
export ANTHROPIC_BASE_URL=https://api.router.one
export ANTHROPIC_AUTH_TOKEN=sk-your-router-one-key
unset ANTHROPIC_API_KEY
```

## 第 2 步——逐字核对 base URL

Anthropic 兼容端点是 https://api.router.one——结尾没有 /v1。从 OpenAI 风格配置里照抄 /v1 后缀，请求就会打到 Anthropic 兼容面上不存在的路径。如果之前把 Claude Code 指过别的中转，还要检查 ~/.zshrc、~/.bashrc 或 shell profile 里有没有残留的 ANTHROPIC_BASE_URL 把你刚设的值覆盖掉。

## 第 3 步——清理残留凭据

如果这台机器上的 Claude Code 曾登录过官方服务，存储的会话可能优先于环境变量生效——你以为在调一个端点，工具实际在向另一个端点认证。在 Claude Code 里退出登录（或清除其存储的凭据），重启终端，并在同一会话里用 `echo $ANTHROPIC_BASE_URL` 确认变量可见。

## 第 4 步——核实 Key 本身

到 Dashboard → API Keys 确认 Key 处于启用状态、消费上限（maxSpend）没有用尽——被禁用或额度耗尽的 Key 无论本地配置多正确都会拒绝请求。Dashboard → Logs 能告诉你请求到底有没有到达网关：那里什么都没有，说明问题在本地（第 1–3 步）；出现了 4xx 记录，trace 会指出你撞上的是哪条限制。

## 中国大陆场景

从中国大陆直连官方 Anthropic 端点，常因供应商侧的地区限制而返回 403 或连接失败。Router One 网关在大陆可直连、无需 VPN，所以上面同样的两个环境变量就是大陆场景的解法——不存在额外的特殊配置。

## 常见问题

### 还需要设 ANTHROPIC_API_KEY 吗？

不需要。接第三方网关时 Claude Code 认的是 ANTHROPIC_AUTH_TOKEN。ANTHROPIC_API_KEY 不是必需的，当前版本设了它启动时会多弹一次授权确认；如果之前设过，请在同一个 shell 里 unset，并从 ~/.zshrc 或 ~/.bashrc 里删掉。Router One 的一键安装脚本只会往 ~/.claude/settings.json 写 ANTHROPIC_BASE_URL 和 ANTHROPIC_AUTH_TOKEN。

### 变量设了，Claude Code 还是 403。

在启动 Claude Code 的同一个终端会话里打印它们：echo $ANTHROPIC_BASE_URL。如果为空，说明 export 写在了别的 shell 或 profile 文件里。另外检查是否有存储的官方服务登录会话在覆盖环境变量（第 3 步）。

### base URL 结尾要不要带 /v1？

不要——Claude Code 用的 Anthropic 兼容 base URL 是 https://api.router.one，不带 /v1。/v1 后缀属于 Codex CLI 和 OpenAI SDK 使用的 OpenAI 兼容端点。

### 怎么确认请求真的到了网关？

Dashboard → Logs 记录包括失败在内的每个请求。如果 Claude Code 的尝试完全没出现在那里，说明请求根本没有正确离开你的机器——回到第 1–3 步；如果出现了错误状态记录，trace 会精确指出是哪条限制或 Key 问题。

### 在中国大陆这套配置能用吗？

能。网关在大陆可直连、无需 VPN，配置与全球环境完全一致——就是那两个环境变量。

## 相关页面

- 错误码速查：https://router.one/zh/llm-api-error-codes#claude-code-里的报错
- Claude Code 中国大陆接入：https://router.one/zh/claude-code-china
- Codex Responses API：https://router.one/zh/codex-responses-api
- 中转 API 真伪检测：https://router.one/zh/llm-api-authenticity
- 地区限制报错修复：https://router.one/zh/unsupported-country-region-territory
- insufficient_quota 修复：https://router.one/zh/openai-insufficient-quota
- CLI 配置指南：https://router.one/zh/docs/guides/cli-setup
- CC Switch 指南：https://router.one/zh/docs/guides/cc-switch
- 本页规范地址：https://router.one/zh/claude-code-403
- 模型与每模型 token 价格：https://router.one/zh/models（markdown：https://router.one/zh/models.md）
- 定价：https://router.one/zh/pricing
- API 文档（markdown）：https://router.one/zh/docs.md
- 公司事实（markdown）：https://router.one/zh/facts/company.md
