DeeDee PulseDeeDee Pulse
首页答案页Claude Code 接入中转站

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

发布 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,换成你自己的站即可。

去实测:用自己的 Key 检测去比价:看各站倍率

接入前确认三件事

第一,站方提供的是 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:

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

Windows 用 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。这样出了问题能分清是站方接口的问题还是配置的问题。

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。

{
  "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 的在线检测会校验它,判读方法见《怎么判断掺水、降智、假模型》。长对话的缓存是否真按缓存价计费,用缓存篇的方法对一次账单。

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

我们的数据

选站之前,可以先看看 Pulse 收录的 Claude 分组整体情况:分组数、倍率分布、统一标准实测结论和可用率分布,随每轮采集自动更新。具体站点在站点排名里按 Claude 筛选。

数据截至 2026-10-31 23:16(北京时间),随 Pulse 每轮采集自动更新。

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

项目数值
Claude 分组数(有站方可用率 / 全部)1,235 / 3,879
分组倍率 P10 / 中位数 / P900.15 / 0.95 / 2.42
统一实测标准claude-opus-5-5 · 思考档 xhigh
当前分组实测结论通过 22、待复核 34、未通过 30、降智 7、疑似假模型 102、不符合标准 9、其他 3
分组名可识别的渠道CC Max 989、Kiro 787、AWS 219、零注入 69、逆向 46、官方 35
近 30 天 Claude 自动实测(次)334:通过 25、待复核 37、未通过 210、不符合标准 57、其他 5
其中思考签名缺失或偏短(次,含各家族)109

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

近 7 天可用率≥99%95%–99%80%–95%<80%
Claude 分组占比27.7%25.0%21.0%26.3%

样本 372 个有 7 天读数的 Claude 分组;7 天与 30 天都达标的 150 个。

常见问题

国内能用 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 字段不够。

资料来源
相关答案Codex 怎么接入中转站?config.toml 的 model_providers 配置、验证和常见报错AI 中转站是什么?和官方 API、镜像站、拼车、公益站有什么区别怎么判断中转站掺水、降智、假模型?先看这些证据中转站后台的 Kiro、CC Max、官方、AWS、号池都是什么?成本、风险和实测差别缓存是什么、对价格影响多大?用官方价算给你看