教程Claude Code

Claude Code 接入中转站:两个环境变量、settings.json 的写法和常见报错

按 Claude Code 官方的网关文档整理:接入中转站只需要接口地址和 API key 两样,先在终端里临时设置并验证,再写进 settings.json。讲清凭据该放哪个变量、VS Code 扩展和桌面应用怎么单独设置,以及 401、404、认证冲突等报错怎么查。

发布 · 约 8 分钟读完 · 经人工审核()· 本站的内容怎么来的

本文根据公开分享整理,本站尚未实测。操作前请对照文末的原始来源。

本页目录(10 节)
  1. 开始之前:从中转站拿到两样东西
  2. 第一步:选对放凭据的变量
  3. 第二步:先在当前终端里临时设置
  4. 第三步:验证
  5. 第四步:写进 settings.json,长期生效
  6. 模型列表里没有中转站的模型
  7. VS Code 扩展和桌面应用要单独设置
  8. 常见报错
  9. 想换回官方登录
  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,要在应用里单独配置:

  1. 菜单 Help → Troubleshooting → Enable Developer Mode。应用会重启,菜单栏多出 Developer。
  2. 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 等同于钱。不要发到群里,不要截图,不要提交进仓库;怀疑泄露就到控制台删掉重建。

来源

通过 API 中转站使用这些模型?到 Veridrop 免费检测中转站给你的是不是它声称的模型,或者看看中转站排行榜前 100 名。

相关文章

  • Claude 桌面应用接入中转站:在第三方推理设置里填网关地址和 key教程 · Claude Code · 约 6 分钟

    按 Claude 官方文档整理:桌面应用不读环境变量和 settings.json,要打开开发者模式,在 Configure Third-Party Inference 里选 Gateway 并填中转站的地址和 key。讲清中转站要满足什么条件、认证方式怎么选、模型列表为什么是空的,以及接入后哪些功能不可用。

  • Claude Code 的网络和数据:代理怎么配,它实际连了哪些地方,你的代码和对话去了哪教程 · Claude Code · 约 10 分钟

    本站在代理后面跑 Claude Code,记下它实际连的主机:即使模型请求走中转站,一句话的工夫它还连了五次 api.anthropic.com;设一个环境变量后只剩中转站。附代理配错的三种表现(非交互模式下会一声不吭地卡两分钟以上)、证书和防火墙要放行的地址,以及对话和代码存在哪、存多久、哪些会被发出去。

  • Claude Code 常见报错怎么查:连不上、401、模型不可用、配置不生效教程 · Claude Code · 约 15 分钟

    报错分三类:装不上、请求报错、配置不生效。本站用假地址和假 key 把常见的请求报错逐个复现,记下原文和原因。两个容易误判的:接口地址多写一级 /v1,报的是“模型有问题”;settings.json 写坏了,claude -p 照常运行、没有提示。附 claude doctor、--debug 的用法。

  • 通过中转站用 Claude Code:哪些功能和直连一样,哪些不一样,出了问题怎么判断是谁的教程 · Claude Code · 约 12 分钟

    Claude Code 官方有一份写给网关的兼容性说明:哪些请求头和字段必须原样转发,漏了会坏什么。本站对照这份说明,在一家中转站上把十几项功能实测了一遍:大部分正常,遇到过三处不一样的地方,其中子代理换模型后主会话报 400 的一处,中转站已经修好。附判断问题出在哪一方的办法。