# Claude Code 怎么接入中转站？ANTHROPIC_BASE_URL 配置、验证和常见报错

> 来源：DeeDee Pulse（https://pulse.deedee.tech/learn/claude-code-setup） · 发布 2026-10-28 · 资料核对 2026-10-28（北京时间）

一句话：Claude Code 官方支持把请求发到第三方网关，中转站就是这样一个网关。只要两个环境变量：ANTHROPIC_BASE_URL 填站方给的接口地址，ANTHROPIC_AUTH_TOKEN 填站方给的 Key。先在终端里临时设置并用 curl 验证，确认能通再写进用户级 settings.json。下面的写法都按 Claude Code 官方文档（2026-10-28 核对），示例地址统一用 relay.example.com，换成你自己的站即可。

## 接入前确认三件事

第一，站方提供的是 Anthropic 格式的接口，也就是支持 /v1/messages。通过 ANTHROPIC_BASE_URL 接入时，Claude Code 按 Anthropic Messages 格式发请求，只提供 OpenAI 格式（/v1/chat/completions）的站接不上。

第二，问清 Key 怎么传。官方文档的规则是：ANTHROPIC_AUTH_TOKEN 放在 Authorization: Bearer 请求头里，ANTHROPIC_API_KEY 放在 x-api-key 请求头里。不确定时先用 ANTHROPIC_AUTH_TOKEN，验证返回 401 再换另一个。

第三，Key 只放用户级配置。不要写进项目里的 .claude/settings.json，那个文件会随仓库提交，等于把 Key 公开给所有能看到代码的人。

## 第一步：在终端里临时设置

macOS、Linux 用 Bash 或 Zsh：

```bash
export ANTHROPIC_BASE_URL=https://relay.example.com
export ANTHROPIC_AUTH_TOKEN=sk-你的中转站Key
```

Windows 用 PowerShell：

```powershell
$env:ANTHROPIC_BASE_URL = "https://relay.example.com"
$env:ANTHROPIC_AUTH_TOKEN = "sk-你的中转站Key"
```

注意地址一般不带 /v1，Claude Code 会自己拼上 /v1/messages。站方文档写的是带 /v1 的地址时，以站方说明为准，下一步的 curl 能帮你确认。这种设置只对当前终端有效，关掉就没了。

## 第二步：用 curl 先测一次

在同一个终端里发一条只要 1 个 token 的请求，确认地址和 Key 都对，再打开 Claude Code。这样出了问题能分清是站方接口的问题还是配置的问题。

```bash
curl -sS -w '\n%{http_code}\n' -X POST "$ANTHROPIC_BASE_URL/v1/messages" \
  -H "Authorization: Bearer $ANTHROPIC_AUTH_TOKEN" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{"model": "claude-opus-5-5", "max_tokens": 1, "messages": [{"role": "user", "content": "."}]}'
```

返回以 {"id":"msg_ 开头、带 content 字段的 JSON，说明接口和 Key 都可用。返回“模型不存在”一类的错误，也说明 Key 已经通过验证，只是模型名要换成站方支持的名字。返回 401 说明 Key 不对，或者站方要用 x-api-key：把请求头换成 x-api-key: $ANTHROPIC_API_KEY 再试。

## 第三步：写进用户级 settings.json

验证通过后，把两个变量写进 settings 文件的 env 块，以后每次启动都会生效，后台会话也能读到。路径是 ~/.claude/settings.json，Windows 上是 %USERPROFILE%\.claude\settings.json。

```json
{
  "env": {
    "ANTHROPIC_BASE_URL": "https://relay.example.com",
    "ANTHROPIC_AUTH_TOKEN": "sk-你的中转站Key"
  }
}
```

只想在某个项目里用这个站，就写进项目里的 .claude/settings.local.json，并确认它在 .gitignore 里。终端变量和 settings 文件同时设置时，以 settings 文件为准。

用 VS Code 扩展的话，官方建议把变量写进 VS Code 用户设置的 claudeCode.environmentVariables，因为扩展启动时的登录检查只读这里。

## 第四步：用 /status 确认

启动 claude，发一句话，再输入 /status。Status 页里要看到两行：Anthropic base URL 显示你的中转地址，Auth token（或 API key）一行写着你设置的变量名。没有 base URL 这一行，说明变量没传进来；显示的是 claude.ai 账号登录，说明凭据没生效，还在用订阅。

计费上要知道一点：官方文档说明，网关凭据生效后请求不再使用 claude.ai 订阅额度，而是按 token 计费给凭据的所有者，也就是按站方的分组倍率扣你的余额。只设置 ANTHROPIC_BASE_URL、不设凭据时，已登录的订阅仍然生效。

## 模型名和站方不一致怎么办

有的站把模型改了名，或者只提供部分模型。可以用 ANTHROPIC_MODEL 指定默认模型，用 ANTHROPIC_DEFAULT_OPUS_MODEL、ANTHROPIC_DEFAULT_SONNET_MODEL、ANTHROPIC_DEFAULT_HAIKU_MODEL 把 opus、sonnet、haiku 这几个别名指到站方的模型名。设置 CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1 后，Claude Code 启动时会向网关查询模型列表，加进 /model 选择器。

多个中转站之间切换，最简单的做法是给每个项目各写一份 settings.local.json，或者在 shell 配置里为每个站写一组变量，用的时候切换。

## 常见报错怎么处理

下表整理自官方网关文档的排错表，挑了接中转站时最常遇到的几种。

| 现象 | 原因 | 处理 |
|---|---|---|
| 401，提示 Key 无效 | Key 不对，或放错了请求头 | ANTHROPIC_AUTH_TOKEN 与 ANTHROPIC_API_KEY 换一个试；到站方后台确认 Key 未被删除 |
| curl 能通，Claude Code 仍要求登录 | 凭据只写在项目 settings 里，首次启动向导时还没生效 | 把 ANTHROPIC_AUTH_TOKEN 写进终端变量或 ~/.claude/settings.json |
| 设置了 ANTHROPIC_API_KEY 却没生效 | 交互模式要先批准一次，之前拒绝过就不再询问 | 在 /config 里打开 Use custom API key |
| 启动提示同时存在两个凭据来源 | 网关凭据和已登录的 claude.ai 账号同时存在 | 运行 /logout 只保留网关凭据 |
| 400，提示 Extra inputs are not permitted | 站方上游不接受 Claude Code 发送的新字段 | 设置 CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 |
| 400，提示 thinking 或 adaptive | 站方上游不支持自适应思考 | 换站或换分组；部分模型可设 CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1 |
| empty or malformed response (HTTP 200) | 站方返回了 HTML 错误页或登录页，不是 API 响应 | 用 curl 检查地址是否正确，是否少了或多了路径 |
| 403，返回 HTML 页面 | 站方的防火墙拦截了含代码的请求体 | 联系站方放行 /v1/messages，或换站 |
| Connection refused / ENOTFOUND | 地址写错或网络不通 | 先用 curl 验证，确认域名能解析、端口能连 |

来源：Claude Code 官方文档「Connect Claude Code to an LLM gateway」排错表，2026-10-28 核对。

## 接好之后先自测

能用不等于是真的。接通后建议先用统一标准跑一次检测：Claude 的加密思考签名能证明思考块确实由 Claude 生成，Pulse 的[在线检测](https://pulse.deedee.tech/probe)会校验它，判读方法见[《怎么判断掺水、降智、假模型》](https://pulse.deedee.tech/learn/fake-model)。长对话的缓存是否真按缓存价计费，用[缓存篇](https://pulse.deedee.tech/learn/cache-pricing)的方法对一次账单。

安全上，中转站能看到 Claude Code 发出的全部内容，包括读取的代码文件和命令输出。公开研究发现有中转会改写返回的工具调用、动用诱饵凭据。不要让 Claude Code 读取私钥、生产环境配置和密码文件，重要项目在容器或独立账户里运行，给中转单独设额度。

## 我们的数据

选站之前，可以先看看 Pulse 收录的 Claude 分组整体情况：分组数、倍率分布、统一标准实测结论和可用率分布，随每轮采集自动更新。具体站点在[站点排名](https://pulse.deedee.tech/sites)里按 Claude 筛选。

<!--PULSE_DATA:BEGIN-->
> 数据截至 2026-11-01 00:16（北京时间），随 Pulse 每轮采集自动更新。

接入前先看看目标分组在 Pulse 的记录。下面是 Claude 分组的整体情况，随采集自动更新。

| 项目 | 数值 |
|---|---|
| Claude 分组数（有站方可用率 / 全部） | 1,233 / 3,769 |
| 分组倍率 P10 / 中位数 / P90 | 0.15 / 0.95 / 2.5 |
| 统一实测标准 | claude-opus-5-5 · 思考档 xhigh |
| 当前分组实测结论 | 通过 22、待复核 34、未通过 30、降智 7、疑似假模型 102、不符合标准 9、其他 3 |
| 分组名可识别的渠道 | CC Max 963、Kiro 765、AWS 218、零注入 66、逆向 45、官方 35 |
| 近 30 天 Claude 自动实测（次） | 334：通过 25、待复核 37、未通过 210、不符合标准 57、其他 5 |
| 其中思考签名缺失或偏短（次，含各家族） | 109 |

倍率为站方显示的分组倍率，不含充值汇率；结论按分组计，一个站可能有多个分组。

| 近 7 天可用率 | ≥99% | 95%–99% | 80%–95% | <80% |
|---|---|---|---|---|
| Claude 分组占比 | 28.6% | 24.9% | 20.6% | 25.9% |

样本 374 个有 7 天读数的 Claude 分组；7 天与 30 天都达标的 154 个。

<!--PULSE_DATA:END-->

## 常见问题

### 国内能用 Claude Code 吗？

Anthropic 的支持地区列表里没有中国内地和香港。用中转站时 Claude Code 本身可以运行，但上游条款与断供风险由站方承担、最终影响你的余额，本文不讨论绕过地区限制。

### ANTHROPIC_AUTH_TOKEN 和 ANTHROPIC_API_KEY 用哪个？

看站方要哪个请求头：Bearer 用 ANTHROPIC_AUTH_TOKEN，x-api-key 用 ANTHROPIC_API_KEY。不确定先用 ANTHROPIC_AUTH_TOKEN，401 再换。

### 接了中转站还会消耗我的 Claude 订阅额度吗？

凭据变量生效后不会，请求按站方计费；只设置 ANTHROPIC_BASE_URL 不设凭据时，订阅登录仍然生效。

### Key 可以写进项目里的 .claude/settings.json 吗？

不要。这个文件会随仓库提交。用 ~/.claude/settings.json，或项目里已加入 .gitignore 的 settings.local.json。

### 接入后怎么确认用的是真 Claude？

用统一标准检测校验思考签名和计费字段，例如 Pulse 在线检测；只看回答内容或 model 字段不够。

## 资料来源

- [Connect Claude Code to an LLM gateway（官方）](https://code.claude.com/docs/en/llm-gateway-connect)
- [Claude Code LLM gateways 概览（官方）](https://code.claude.com/docs/en/llm-gateway)
- [Claude Code 环境变量（官方）](https://code.claude.com/docs/en/env-vars)
- [Claude Code 法律与合规说明（官方）](https://code.claude.com/docs/en/legal-and-compliance)
- [Pulse 在线检测](https://pulse.deedee.tech/probe)

## 相关答案

- [Codex 怎么接入中转站？config.toml 的 model_providers 配置、验证和常见报错](https://pulse.deedee.tech/learn/codex-setup)
- [AI 中转站是什么？和官方 API、镜像站、拼车、公益站有什么区别](https://pulse.deedee.tech/learn/what-is-relay)
- [怎么判断中转站掺水、降智、假模型？先看这些证据](https://pulse.deedee.tech/learn/fake-model)
- [中转站后台的 Kiro、CC Max、官方、AWS、号池都是什么？成本、风险和实测差别](https://pulse.deedee.tech/learn/channel-groups)
- [缓存是什么、对价格影响多大？用官方价算给你看](https://pulse.deedee.tech/learn/cache-pricing)

---

DeeDee Pulse 由 DeeDee 运营；DeeDeeAI 为自营，不参与排名。引用请注明「DeeDee Pulse（pulse.deedee.tech）」与数据时间。
