RH
RouterHub AI API 中转站导航与平台推荐
博客

Claude Code 接入中转 API 全流程:从选站、建 Key 到 401/429/模型不存在排错

用 Claude Code 调中转 API,要解决环境变量、API Key、协议兼容和报错。本文按"选站→建 Key→配环境变量→验证→排错"顺序给出完整流程和错误码对照表。

muchacha 2026-08-16 02:58:00

正文

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):

  1. 登录控制台,进入"API 令牌"页面(有的站叫"令牌"“Token”)。
  2. 点击"添加令牌",填写名称;分组一栏如果站点提供"Claude Code 专属"之类的分组,优先选它——这类分组通常已把模型白名单和倍率调好,避免建完 Key 发现模型不在白名单。
  3. 额度可按需设置,其余参数默认即可,提交生成。
  4. 生成后点"复制"拿走完整 Key 字符串,离开页面后多数站点不再明文展示。
  5. 顺手打开站点的"模型广场"页,搜索 Claude,把你要用的模型实际名称抄下来(见第 5 步排错的"模型不存在")。

New API 框架的站点一般还有"模型广场"页面,建 Key 时把你要用的模型名一并记下,下一步要填进环境变量或 settings.json。

sub2api 框架站点

  1. 登录控制台,在 API Key / 凭证页直接生成 Key。
  2. 复制保存 Key 字符串,离开页面后多数站点不再明文展示。
  3. 记下你要用的模型实际名称(同上,打开模型广场搜 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,就会触发"模型不存在"。

解决办法通常是两选一:

  1. 在中转站模型广场找到对应模型的实际名称,看站点是否提供模型名映射(很多 New API 站点支持把官方名映射到自己的渠道模型)。
  2. 在 Claude Code 的会话/配置里显式指定你要的模型名为站点实际支持的那个。

模型名是中转站和官方之间最大的"不一致点",排错时永远先核对它。

配好不是终点:选可替换的站点更稳

把 Claude Code 接到一个中转站跑通,只是第一步。中转站本身的稳定性、计费透明度、跑路风险,都会直接影响你后面能不能持续用下去。一个站调通了,不代表它永远是最佳选择——上游过载、渠道切换、站点调整模型名,都可能让今天能用的配置明天就报错。

更稳的做法是同时备一两个协议兼容、框架清晰的站点,主站抖动时能快速切过去(改两个环境变量即可)。怎么判断一个中转站值不值得备选、计费口径透不透明、有没有跑路前兆,可以参考 AI 中转站避坑指南:倍率、充值门槛、跑路前兆怎么自己判断。

如果你还没有合适的候选站点,可以先到 RouterHub 中转站目录按框架(New API / sub2api)和协议兼容筛一遍,选两三个模型覆盖够用的站点,各自建一个 Key 备用。这样无论主站怎么抖,你的 Claude Code 都不至于断线。

参考来源