Claude Code 接入中转站:两个环境变量、settings.json 的写法和常见报错
按 Claude Code 官方的网关文档整理:接入中转站只需要接口地址和 API key 两样,先在终端里临时设置并验证,再写进 settings.json。讲清凭据该放哪个变量、VS Code 扩展和桌面应用怎么单独设置,以及 401、404、认证冲突等报错怎么查。
本文根据公开分享整理,本站尚未实测。操作前请对照文末的原始来源。
本页目录(10 节)
把 Claude Code 接到中转站,本质上只做一件事:告诉它请求发到哪里(接口地址)和用什么凭据(API key)。对应两个环境变量:
export ANTHROPIC_BASE_URL=https://你的中转站地址
export ANTHROPIC_AUTH_TOKEN=你的key
设好之后在同一个终端里运行 claude 就接上了。下面把每一步讲细,包括凭据该放哪个变量、怎么验证、怎么长期生效,以及报错怎么查。
先说三件官方文档里写明的事,动手之前要知道:
- 用了中转站的凭据,就不走你的 Claude 订阅了。 凭据变量生效期间,请求带的是中转站的 key,订阅的用量限制不适用,费用按 token 由中转站向你收。你原来的 claude.ai 登录还保存在本机,只是不用。
- Anthropic 不认可、不维护、也不审计任何第三方网关产品。 中转站给你的是不是它声称的模型,需要你自己验证,见文末。
- 官方不支持通过网关让 Claude Code 使用非 Claude 的模型。
如果你还没弄清中转站是什么、有哪些风险,先读中转站是什么和用中转站有什么风险;选站可以看中转站排行榜。还没装 Claude Code 的,先看安装教程。
开始之前:从中转站拿到两样东西
| 需要什么 | 说明 |
|---|---|
| 接口地址 | 中转站文档里叫 Base URL 或请求地址。Claude Code 会自己在后面加上 /v1/messages,所以一般不带 /v1,末尾也不带 / |
| API key | 在中转站的控制台创建。多数站只显示一次,创建后马上保存 |
地址带不带 /v1,以你用的中转站的文档为准。有的中转站同时提供两种协议,给 OpenAI SDK 用的地址带 /v1,给 Claude Code 用的不带,不要填混。
1选对放凭据的变量
Claude Code 有两个放凭据的变量,区别是把 key 放进哪个 HTTP 请求头:
| 变量 | 发送方式 | 什么时候用 |
|---|---|---|
ANTHROPIC_AUTH_TOKEN |
Authorization: Bearer |
中转站说的是“Bearer token”或“Authorization 头” |
ANTHROPIC_API_KEY |
x-api-key |
中转站说的是“API key”或“x-api-key” |
官方的建议是:没说清楚是哪一种的,先用 ANTHROPIC_AUTH_TOKEN。放错了变量,key 会出现在中转站不读的请求头里,结果是 401,换另一个变量再试即可。
两者还有一个差别:ANTHROPIC_AUTH_TOKEN 设了就立刻生效;ANTHROPIC_API_KEY 在交互模式下会先问你一次是否使用这个 key。
很多中转站两种都支持。它的文档写的是哪个,就用哪个。
2先在当前终端里临时设置
第一次接入,先用临时设置,验证通过了再写成长期的。把地址和 key 换成你自己的。
Mac、Linux(bash 或 zsh):
export ANTHROPIC_BASE_URL=https://你的中转站地址
export ANTHROPIC_AUTH_TOKEN=你的key
Windows(PowerShell):
$env:ANTHROPIC_BASE_URL = "https://你的中转站地址"
$env:ANTHROPIC_AUTH_TOKEN = "你的key"
这样设置只对当前这个终端窗口和从它启动的程序有效,关掉就没了。
3验证
先不开 Claude Code,直接测中转站
官方给了一条只消耗 1 个输出 token 的测试请求。它绕开 Claude Code,如果这一步就失败,问题在中转站的地址或 key,而不在你的配置。
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-sonnet-4-6", "max_tokens": 1, "messages": [{"role": "user", "content": "."}]}'
如果你用的是 ANTHROPIC_API_KEY,把 Authorization 那一行换成 -H "x-api-key: $ANTHROPIC_API_KEY"。
怎么看结果:
| 返回 | 意思 |
|---|---|
以 {"id":"msg_ 开头、带 "content":[...] 的 JSON |
地址能通,凭据有效 |
| 报错说模型不存在 | 同样说明地址和凭据是对的:中转站是先验证了身份才拒绝模型名的。这一步不用特意找一个它支持的模型 |
401 |
凭据被拒绝。key 填错了,或者放错了变量,换另一个变量再试 |
再在 Claude Code 里确认
在同一个终端里运行 claude,发一句话,然后输入 /status。在 Status 页看两行:
Anthropic base URL:应该显示你的中转站地址。这一行只在设置了地址时才出现,没有就说明变量没有传到这个会话。Auth token或API key:写着你设的那个变量名,说明生效的是中转站的凭据,而不是保存着的 claude.ai 登录。
4写进 settings.json,长期生效
验证通过后,把两个变量放进 Claude Code 设置文件的 env 里。这样所有终端、包括后台代理都会用它,不依赖你的 shell。
文件位置:~/.claude/settings.json,Windows 上是 %USERPROFILE%\.claude\settings.json。
{
"env": {
"ANTHROPIC_BASE_URL": "https://你的中转站地址",
"ANTHROPIC_AUTH_TOKEN": "你的key"
}
}
文件里已经有别的内容时,把 env 这一段合并进去,不要整个覆盖。
三点注意:
- 不要把 key 写进项目里的
.claude/settings.json。 那个文件会被提交,克隆仓库的人都能看到。只想对一个项目生效的话,用.claude/settings.local.json,并确认它在 gitignore 里。 - 设置文件比 shell 里的 export 优先。 两边都设了同一个变量时,以设置文件为准。不确定用的是哪个,看
/status。 - 想继续用 shell 的方式也可以:把那两行 export 加进
~/.zshrc、~/.bashrc或 PowerShell 的$PROFILE。但官方提醒,只在 shell 里设置不能可靠地传到后台代理。
接上中转站之后,Claude Code 仍然会去连 Anthropic 自己的地址。 本站在网络和数据那篇里实测过:模型请求走了中转站,但一句话的工夫它另外连了 5 次 api.anthropic.com,按文档是用来取功能开关、上报遥测这类事。在连不上这个地址的网络里,可以在 env 里再加一行把这些非必需的联网关掉:
"CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1"
它同时也关掉了自动更新,之后要更新得自己动手。
模型列表里没有中转站的模型
Claude Code 的 /model 里是内置的模型名。中转站提供的模型名不在这个列表里时,可以打开“网关模型发现”:在 shell 里或 settings.json 的 env 里加上
"CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY": "1"
打开后 Claude Code 启动时会向中转站查询它的模型列表,加进 /model 里。你用的本来就是内置的那些模型名的话,不需要开。
VS Code 扩展和桌面应用要单独设置
上面的设置对命令行里的 claude 有效。另外两个入口不完全读这些设置。
VS Code 扩展
在 VS Code 自己的用户设置里填(命令面板里运行 “Preferences: Open User Settings (JSON)”):
{
"claudeCode.environmentVariables": [
{ "name": "ANTHROPIC_BASE_URL", "value": "https://你的中转站地址" },
{ "name": "ANTHROPIC_AUTH_TOKEN", "value": "你的key" }
]
}
官方的解释是:扩展在启动前会先从这个设置里检查凭据,~/.claude/settings.json 里的值能传到它启动的进程,但传不到扩展自己的登录检查。
桌面应用
桌面应用不读 ANTHROPIC_BASE_URL,也不读 settings.json,要在应用里单独配置:
- 菜单 Help → Troubleshooting → Enable Developer Mode。应用会重启,菜单栏多出 Developer。
- Developer → Configure Third-Party Inference,Inference provider 选 Gateway,填中转站的地址和 key。
每一项怎么填、模型列表为空怎么查,见Claude 桌面应用接入中转站。
官方文档写明的条件和限制:
- 中转站必须实现 Anthropic 的 Messages API(
POST /v1/messages,支持流式和工具调用)。它如果还实现了GET /v1/models,应用会自动读出可用的模型。 - 网关配置生效后,不能选 Anthropic 托管的云端环境,Remote Control 也不可用。
- 应用提示
Gateway was unreachable,说明启动时连不上你填的地址,用上面的 curl 命令检查地址和网络。
酷站AI 的文档补充了两个实际操作上的细节(中转站一方的说法):要在没有登录 Claude 账号的状态下打开开发者模式;地址同样不带 /v1,否则模型列表是空的。
常见报错
前面几行取自官方的排查表,是接入阶段最常遇到的。
| 现象 | 原因 | 怎么办 |
|---|---|---|
启动时警告有两个凭据来源,以 auth may not work as expected 结尾(旧版本显示 Auth conflict) |
中转站的凭据和保存着的登录同时存在 | 想用中转站:运行 /logout 清掉保存的登录。想用官方登录:去掉凭据变量 |
401,提示 token 无效或不认识 |
key 不是这个中转站发的,或者放在了它不读的请求头里 | 对照第一步的表换变量;key 被删或停用的话到控制台重新创建 |
Connection refused 或 Can't reach the API server,之前常有一段没反应的停顿 |
地址不对,或者网络到不了中转站。停顿是 Claude Code 在自动重试 | 用第三步的 curl 命令测,它会立刻失败并给出同样的原因 |
API returned an empty or malformed response (HTTP 200) |
中转站或中间的代理返回的不是 API 响应,常见的是一个 HTML 报错页或登录页 | 用 curl 看实际返回了什么;多半是地址写错了路径 |
400,提到 context_management、Extra inputs are not permitted 等不认识的字段 |
中转站把请求转给了一个不接受这些字段的上游 | 设 CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1,可以去掉大部分预发布字段 |
| curl 测试成功,Claude Code 却要你登录 | Claude Code 自己没有拿到凭据。只设了地址不算;写在项目设置文件里的 env 要过了首次运行向导才生效 |
把 ANTHROPIC_AUTH_TOKEN 放到 shell 的 export 或 ~/.claude/settings.json 里 |
设了 ANTHROPIC_API_KEY 但没有反应,也没有提示 |
这个 key 需要一次确认,之前拒绝过的 key 会被直接忽略 | 在 /config 里打开 Use custom API key |
/model 里没有想用的模型 |
中转站的模型名不在内置列表里 | 打开上一节的网关模型发现 |
下面几条来自酷站AI 的接入文档,是中转站一侧的常见情况,别家的提示文字可能不同:
404:地址末尾多了/v1或/。- 提示模型没有对这个 key 开通:有的中转站按渠道发 key,某个渠道的 key 只能调用对应厂商的模型,换一个包含 Claude 的渠道。
402或余额不足:到控制台充值。- 控制台日志里一次运行有好几条请求:正常。Claude Code 除了回答你,还会发生成会话标题、管理上下文的请求。
想换回官方登录
去掉凭据变量即可:删掉 settings.json 里 env 的那两行,或者在 shell 里 unset ANTHROPIC_BASE_URL ANTHROPIC_AUTH_TOKEN。你原来的 claude.ai 登录一直保存着,变量一去掉 Claude Code 就回到它。用 /status 确认。
接上之后
- 哪些功能通过中转站和直连一样,哪些不一样:本站在一家中转站上逐项实测过,见通过中转站用 Claude Code。出了问题怎么判断是哪一方的,那篇里也有。
- 验证拿到的是不是真模型。 能正常回答不等于给你的是它声称的模型。用同一把 key 到 Veridrop 检测一次,背景见中转站模型降智是怎么回事。
- 不想手改文件、或者要在几个中转站之间切换:可以用图形界面的工具,见用 CC Switch 管理中转站配置。
- Codex 的接法不一样,见Codex 接入中转站。
- key 等同于钱。不要发到群里,不要截图,不要提交进仓库;怀疑泄露就到控制台删掉重建。