Claude Code 接入中转 API 全流程:从选站、建 Key 到 401/429/模型不存在排错
用 Claude Code 调中转 API,要解决环境变量、API Key、协议兼容和报错。本文按"选站→建 Key→配环境变量→验证→排错"顺序给出完整流程和错误码对照表。
正文
Claude Code 接入中转 API 全流程:从选站、建 Key 到 401/429/模型不存在排错
想把 Claude Code 跑起来,最常卡住的不是安装,是"装完之后调不通"。官方订阅要么需要境外支付方式,要么用量一上来就限流,还要在不同模型之间反复切换。对没有官方订阅、或者已经被限流的开发者来说,把 Claude Code 接到一个中转 API 上,是更现实的路径。
但接中转站有自己的坑:环境变量怎么设、Key 从哪里建、模型名怎么填、报 401/429/模型不存在到底是谁的问题。这篇文章按"选站 → 建 Key → 配环境变量 → 验证 → 排错"的顺序走一遍,每一步都给出可直接复用的命令和判断方法。
本文涉及的中转站控制台路径、Key 生成入口均采集/核对于 2026-08-15,各站控制台会改版,以你实际访问时的页面为准。
为什么用中转:官方订阅之外的另一条路
Claude Code 官方用法是装好后用 /login 走订阅登录。这条路对没有 Anthropic 订阅、或订阅被限流的开发者并不友好。中转站的思路是:由中转站统一对接上游的 Claude 模型,你只要拿到一个 API Key,再让 Claude Code 把请求发到中转站的地址即可。
这样做的好处不只是"不用订阅"。很多中转站同时挂着 Claude、GPT、Gemini 多家模型,你可以在一个 endpoint 上切换不同模型,不用为每个上游单独配一套登录态。代价是:你要自己选一个协议兼容、模型覆盖够用、计费透明的中转站。
Claude Code 接中转站,核心就靠两个环境变量:
ANTHROPIC_BASE_URL:中转站的接入地址,一般写到/v1或站点根路径,具体以站点文档/控制台为准。ANTHROPIC_AUTH_TOKEN:你在中转站生成的 API Key。
这两个变量配对,Claude Code 就会把原本发往官方地址的请求改投到中转站。下面逐步展开。
第 1 步 选站:先看协议兼容和框架,再看模型覆盖
不是所有中转站都能直接喂给 Claude Code。选站时优先看三件事:
协议兼容。 Claude Code 走的是 Anthropic 原生协议(/v1/messages)。中转站要么提供 Anthropic 协议直连,要么提供 OpenAI 兼容协议再由你做转换。优先选明确标注支持 Anthropic 原生协议的站点,省掉一层转换。
框架类型。 目前主流中转站背后大多是两种框架:
- New API 框架:控制台常见"令牌/Token"“渠道”"模型广场"等页面,Key 在令牌页生成。
- sub2api 框架:控制台直接生成 API Key,认证走前端 JWT,余额字段通常是
balance。
框架决定了你下一步去哪里建 Key、怎么查余额。在选站阶段先认出框架,后面建 Key 就不会迷路。
模型覆盖。 你要用的 Claude 模型名,必须出现在该站的模型广场里。不同站点的模型命名并不统一,有的用官方名,有的改成 claude-sonnet-4.5 这类自定义名。这一步先确认站点有你要的模型,第 5 步排错还会再回到模型名问题。
如果你手上还没有候选站点,可以先到 RouterHub 中转站目录按框架(New API / sub2api)和协议兼容筛一遍,再进具体站点控制台核对模型覆盖。
第 2 步 建 Key:按框架走两条路径
建 Key 的入口因框架而异,下面给两种主流框架的通用路径(具体页面以各站控制台为准,核对时间 2026-08-15)。
New API 框架站点
以一个实测站点为例(路径采集自公开教程,核对时间 2026-08-15):
- 登录控制台,进入"API 令牌"页面(有的站叫"令牌"“Token”)。
- 点击"添加令牌",填写名称;分组一栏如果站点提供"Claude Code 专属"之类的分组,优先选它——这类分组通常已把模型白名单和倍率调好,避免建完 Key 发现模型不在白名单。
- 额度可按需设置,其余参数默认即可,提交生成。
- 生成后点"复制"拿走完整 Key 字符串,离开页面后多数站点不再明文展示。
- 顺手打开站点的"模型广场"页,搜索 Claude,把你要用的模型实际名称抄下来(见第 5 步排错的"模型不存在")。
New API 框架的站点一般还有"模型广场"页面,建 Key 时把你要用的模型名一并记下,下一步要填进环境变量或 settings.json。
sub2api 框架站点
- 登录控制台,在 API Key / 凭证页直接生成 Key。
- 复制保存 Key 字符串,离开页面后多数站点不再明文展示。
- 记下你要用的模型实际名称(同上,打开模型广场搜 Claude 抄下来),下一步配环境变量要用。
无论哪种框架,拿到 Key 之后都建议先确认两件事:Key 还在有效期、账户里有余额。很多"调不通"其实是 Key 已过期或余额为零。
第 3 步 配环境变量:PowerShell 和 bash 两种写法
核心是设两个变量:ANTHROPIC_BASE_URL 和 ANTHROPIC_AUTH_TOKEN。除了用系统环境变量,Claude Code 还支持写在 ~/.claude/settings.json 的 env 字段里——两种方式任选其一,不要同时设成两套不同的值。
说明:
ANTHROPIC_BASE_URL/ANTHROPIC_AUTH_TOKEN这两个变量名来自 Claude Code 官方环境变量约定。本次写作时官方文档站点(docs.anthropic.com / docs.claude.com)因网络超时未能独立打开核实,变量名与写法以 claude-zh.cn 中文站和 CSDN 实践教程全文为准(核对时间 2026-08-15)。如以官方原文为准,请到官方文档页面再次比对。
PowerShell(仅当前会话生效)
$env:ANTHROPIC_BASE_URL = "https://你的中转站域名/v1"
$env:ANTHROPIC_AUTH_TOKEN = "sk-你的中转站Key"
如果想持久化(推荐用用户级变量,避免把 Key 写进系统全局):
[Environment]::SetEnvironmentVariable("ANTHROPIC_BASE_URL", "https://你的中转站域名/v1", "User")
[Environment]::SetEnvironmentVariable("ANTHROPIC_AUTH_TOKEN", "sk-你的中转站Key", "User")
设完后重开一个终端,用 echo $env:ANTHROPIC_BASE_URL 确认变量已生效。
bash(Linux / macOS / Git Bash)
仅当前会话生效:
export ANTHROPIC_BASE_URL="https://你的中转站域名/v1"
export ANTHROPIC_AUTH_TOKEN="sk-你的中转站Key"
持久化写进 ~/.bashrc 或 ~/.zshrc:
echo 'export ANTHROPIC_BASE_URL="https://你的中转站域名/v1"' >> ~/.bashrc
echo 'export ANTHROPIC_AUTH_TOKEN="sk-你的中转站Key"' >> ~/.bashrc
source ~/.bashrc
几个常踩的坑:
ANTHROPIC_BASE_URL到底写到根路径还是/v1,以站点文档为准。多数 Anthropic 协议站点写到/v1,但有些站点要求写到根路径,它会自己拼/v1/messages。配错会 404。- Key 不要带前后空格和引号残留,复制时容易带上一个换行或空格,直接导致 401。
- 不要把
ANTHROPIC_AUTH_TOKEN和ANTHROPIC_API_KEY混用。Claude Code 中转场景认ANTHROPIC_AUTH_TOKEN。 - 设环境变量前先确认 Claude Code 本体已装好(Node.js 18+ 安装后即可用),否则变量设了也调不起来。
写进 settings.json(推荐,跨终端通用)
如果你不想每次切终端都重新 export,可以把变量写进 ~/.claude/settings.json 的 env 字段(Windows 路径为 C:\Users\你的用户名\.claude\settings.json)。这种方式 Claude Code 启动时自动读取,跨 PowerShell、bash、WSL 都生效:
{
"env": {
"ANTHROPIC_AUTH_TOKEN": "sk-你的中转站Key",
"ANTHROPIC_BASE_URL": "https://你的中转站域名",
"ANTHROPIC_MODEL": "claude-sonnet-4-5-20250929"
}
}
几个要点:
ANTHROPIC_BASE_URL这里写到站点根路径还是/v1,同样以站点文档为准;多数 New API 站点写根路径即可,它会自己拼/v1/messages,写到/v1反而可能 404。拿不准就先写根路径,curl 不通再试/v1。ANTHROPIC_MODEL填中转站模型广场里实际列出的模型名,别直接抄官方文档的模型 ID(见第 5 步)。env里的值会被注入为 Claude Code 进程的环境变量,效果和export等价,优先级以你当前 shell 里是否又手动设了同名变量为准。
第 4 步 验证:先 curl 打通,再让 Claude Code 上
环境变量设好后,别急着开 Claude Code,先用 curl 直接打中转站的 /v1/messages,把连通和模型两件事分开验证。
用 curl 验证连通
curl -X POST "$ANTHROPIC_BASE_URL/messages" \
-H "x-api-key: $ANTHROPIC_AUTH_TOKEN" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{
"model": "claude-sonnet-4-5-20250929",
"max_tokens": 64,
"messages": [{"role": "user", "content": "ping"}]
}'
注意:如果你的 ANTHROPIC_BASE_URL 已经写到 /v1,这里请求路径就是 $ANTHROPIC_BASE_URL/messages;如果写到根路径,就拼成 $ANTHROPIC_BASE_URL/v1/messages。返回一段正常的 content JSON,说明 endpoint、Key、模型名三件事都对。返回错误,就进第 5 步对照排错。
用 claude 命令验证
curl 通了之后,直接在终端跑:
claude
进交互界面后发一句简单消息,能正常回包就说明整条链路打通。如果 curl 通但 claude 命令报错,多半是环境变量没被当前 shell 加载,重开终端或 source 一次配置文件。
第 5 步 排错对照表:401 / 429 / 模型不存在 / 503 / 超时
把最常遇到的几类报错列成一张表,按"症状 → 原因 → 动作"排查。
| 报错 | 常见原因 | 排查动作 |
|---|---|---|
| 401 Unauthorized | Key 失效、过期、复制时带了空格/换行、ANTHROPIC_AUTH_TOKEN 和 ANTHROPIC_API_KEY 混用 |
回控制台重新生成 Key,确认复制干净;确认用的是 ANTHROPIC_AUTH_TOKEN;确认账户未被封禁 |
| 429 Too Many Requests | 中转站对单 Key 限流,或账户余额不足被拦 | 查余额(New API 在令牌页/仪表盘,sub2api 看 balance);降低并发;必要时换更高配额的 Key |
| 模型不存在 / model not found | 填的模型名和站点模型广场不一致,或该模型未对该 Key 开放 | 进站点"模型广场"页,抄它实际用的模型名;别直接抄官方文档里的模型 ID |
| 503 / 529 上游过载 | 中转站上游(Anthropic 侧)过载,或中转站自身渠道抖动 | 等几分钟重试;持续失败说明该站该渠道不稳,换站或换模型 |
| 超时 / Timeout | 本地网络到中转站链路慢,或中转站到上游链路慢 | 先 curl 测基础连通;换网络/换 endpoint 重试;持续超时说明该站当前不可用 |
其中最容易误判的是"模型不存在"。很多人按官方文档抄一个模型名(比如带日期后缀的完整 ID),结果中转站用的是另一个自定义名,于是报模型不存在。正确做法是:进站点模型广场页,直接复制它列出来的模型名,不要假设它和官方文档一字不差。例如某 New API 站点模型广场里 Claude 系列实际暴露的名称之一是 claude-haiku-4-5-20251001 这类带日期的 ID,也有站点改成 claude-sonnet-4.5 这种简写——以你登录后看到的为准。
401 里最容易忽略的是复制残留:从控制台复制 Key 时带了一个尾随空格或换行,shell 里肉眼几乎看不出,但请求头里就成了非法 token。建议复制后 echo "$ANTHROPIC_AUTH_TOKEN" | wc -c 看一眼长度对不对。
别忘了:模型名要对齐站点模型广场
这一条单拎出来强调。Claude Code 默认会请求它内置的模型名(如某个带日期后缀的 Claude 模型 ID)。中转站不一定按官方原样暴露,可能改名、可能只开放部分版本。如果你的中转站只认 claude-sonnet-4.5 这种自定义名,而 Claude Code 默认请求的是官方完整 ID,就会触发"模型不存在"。
解决办法通常是两选一:
- 在中转站模型广场找到对应模型的实际名称,看站点是否提供模型名映射(很多 New API 站点支持把官方名映射到自己的渠道模型)。
- 在 Claude Code 的会话/配置里显式指定你要的模型名为站点实际支持的那个。
模型名是中转站和官方之间最大的"不一致点",排错时永远先核对它。
配好不是终点:选可替换的站点更稳
把 Claude Code 接到一个中转站跑通,只是第一步。中转站本身的稳定性、计费透明度、跑路风险,都会直接影响你后面能不能持续用下去。一个站调通了,不代表它永远是最佳选择——上游过载、渠道切换、站点调整模型名,都可能让今天能用的配置明天就报错。
更稳的做法是同时备一两个协议兼容、框架清晰的站点,主站抖动时能快速切过去(改两个环境变量即可)。怎么判断一个中转站值不值得备选、计费口径透不透明、有没有跑路前兆,可以参考 AI 中转站避坑指南:倍率、充值门槛、跑路前兆怎么自己判断。
如果你还没有合适的候选站点,可以先到 RouterHub 中转站目录按框架(New API / sub2api)和协议兼容筛一遍,选两三个模型覆盖够用的站点,各自建一个 Key 备用。这样无论主站怎么抖,你的 Claude Code 都不至于断线。
参考来源
- Claude Code 入门与环境变量:https://claude-zh.cn/guide/getting-started.html
- Claude Code 安装与中转配置:https://www.runoob.com/claude-code/claude-code-install.html
- Claude Code 中转接入实践:https://blog.csdn.net/Little_Carter/article/details/155130127