API中转站评测
← 返回中转站科普

Claude Code 怎么配中转站?三种接法、环境变量与 401 排错

30 秒结论。 这篇是本站所有中转站评测共用的接入教程,单站文章里只保留该站特有的部分(分组怎么选、地址长什么样),通用步骤全在这里。如果你只看一句话,看这句:中转站要设 ANTHROPIC_AUTH_TOKEN,不要只设 ANTHROPIC_API_KEY——这两个变量发出去的 HTTP 请求头完全不同,前者是 Authorization: Bearer(网关认的),后者是 x-api-key(Anthropic 官方 API 认的),填错就是 401,而且报错信息不会告诉你原因。另外两件事也值得先知道:Anthropic 已经不再主推 npm 安装,现在官方首选是原生安装器;官方明确警告不要用 sudo npm install -g

更新于 2026-07-27 | 依据 Claude Code 官方文档(code.claude.com)核对安装方式、settings.json 路径与优先级、环境变量名称


先记住这一条:AUTH_TOKEN 不是 API_KEY

这是接中转站最高频、也最难自己查出来的坑。两个变量看起来只差一个词,实际决定了你的密钥被放进哪个 HTTP 请求头

环境变量实际发出的请求头谁认这个格式
ANTHROPIC_API_KEYx-api-key: sk-xxxAnthropic 官方 API
ANTHROPIC_AUTH_TOKENAuthorization: Bearer sk-xxx绝大多数中转站 / 网关 / 路由器

判断规则一句话:

  • 直连 api.anthropic.com → 用 ANTHROPIC_API_KEY
  • 接任何第三方中转站 → 用 ANTHROPIC_AUTH_TOKEN

为什么填错很难查:中转站在 Authorization 头里找不到凭证,只会回一个干巴巴的 401,它不知道你其实把密钥放在 x-api-key 里了,所以也没法提示你。你看到的就是"密钥明明是对的,却说我没授权"。

这一点在 Anthropic 官方文档里有旁证:它讲 LLM 网关配置时,对 ANTHROPIC_FOUNDRY_API_KEY 明确注明 # Sent as x-api-key——*_API_KEY 系列走的就是 x-api-key

那为什么很多中转站让你「两个都设成一样」

因为那是万能保险,不是原理。

站方不知道你会用什么版本的客户端、会不会再叠一层代理,两个都设上,无论对端认哪个头都能通。本站评测过的站里,AICodeMirror 就在公告里给出这个解法,用来治 HTTP 400: Extra inputs are not permitted

所以实操建议是:两个都设,值填一样的。 代价为零,能省掉一整类排查。但你要知道真正起作用的是 AUTH_TOKEN——万一哪天只设一个,别设错那个。

装 Claude Code:官方已经不推 npm 了

网上绝大多数中文教程(包括本站 7 月 27 日之前发的几篇)第一步都写 npm install -g @anthropic-ai/claude-code这个方法还能用,但已经不是官方主推的方式了。

首选:原生安装器

macOS / Linux / WSL

curl -fsSL https://claude.ai/install.sh | bash

Windows PowerShell

irm https://claude.ai/install.ps1 | iex

Windows CMD

curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd

原生安装的两个好处:不需要装 Node.js;会在后台自动更新,不用你手动升级。

⚠️ 分不清自己在 PowerShell 还是 CMD? 看提示符:带 PS C:\ 的是 PowerShell,只有 C:\ 的是 CMD。官方还给了个更直接的判据——如果你看到报错 The token '&&' is not a valid statement separator,说明你在 PowerShell 里跑了 CMD 的命令;看到 'irm' is not recognized,说明你在 CMD 里跑了 PowerShell 的命令。

其他方式

# macOS Homebrew
brew install --cask claude-code

# Windows WinGet
winget install Anthropic.ClaudeCode

⚠️ Homebrew、WinGet 和 Linux 包管理器装的版本不会自动更新,要自己跑 brew upgrade claude-code / winget upgrade Anthropic.ClaudeCode

npm 路径:还能用,但有两个变化

npm install -g @anthropic-ai/claude-code

变化一:从 v2.1.198 起,npm 包要求 Node.js 22 或更高。 老版本 Node 不会直接失败,只会在安装时打印 EBADENGINE 警告,装完 claude 照样能跑——因为这个包实际下载的是原生二进制,运行时根本不用你的 Node。所以看到 EBADENGINE 别慌,但建议还是升到 22。

变化二:官方明确警告不要用 sudo 原文是「不要使用 sudo npm install -g,因为这可能导致权限问题和安全风险」。

如果你在 macOS 上装 npm 版遇到 EACCES 权限错误,正确做法不是加 sudo,而是改用上面的原生安装器——它装到用户目录,根本不需要权限。

装完先验两条命令

claude --version   # 能打印版本号说明装上了
claude doctor      # 官方诊断命令,检查安装与配置

claude doctor 是这篇文章里最该记住的命令之一,后面排错还要用到它。

⚠️ Windows 用户注意:装完必须重开一个终端窗口,否则 claude 命令找不到。这是 Windows 上最常见的"装了但用不了"。

三种接法,选一种就够

接法适合谁关掉窗口还在吗换站成本
① 命令行环境变量临时试一个站❌ 不在每次重设
settings.json长期固定用一家✅ 在改文件
③ cc-switch手上有好几家要来回切✅ 在点一下

新手建议路径:先用 ① 把链路跑通,确认能用了再转 ② 或 ③。 一上来就改配置文件,出问题时你分不清是配置写错了还是站本身不通。

方法一:命令行环境变量(临时)

Windows PowerShell

$env:ANTHROPIC_BASE_URL="中转站给你的地址"
$env:ANTHROPIC_AUTH_TOKEN="你的密钥"
$env:ANTHROPIC_API_KEY="你的密钥"

Windows CMD

set ANTHROPIC_BASE_URL=中转站给你的地址
set ANTHROPIC_AUTH_TOKEN=你的密钥
set ANTHROPIC_API_KEY=你的密钥

macOS / Linux

export ANTHROPIC_BASE_URL="中转站给你的地址"
export ANTHROPIC_AUTH_TOKEN="你的密钥"
export ANTHROPIC_API_KEY="你的密钥"

关掉终端就失效。 这是特性不是 bug——试站的时候你就该用这种一次性的方式。

想让它永久生效:macOS/Linux 把那三行追加到 ~/.zshrc(或 ~/.bashrc),然后 source ~/.zshrc;Windows 走「搜索栏输入『环境变量』→ 编辑系统环境变量 → 环境变量 → 在用户变量里新建这三项」,建完要重开终端

不过说实话,要永久生效不如直接用方法二,改一个文件比翻 Windows 那几层对话框省事。

方法二:settings.json(推荐长期使用)

Claude Code 的配置文件位置,按官方文档:

层级路径说明
用户级~/.claude/settings.json(Windows:%USERPROFILE%\.claude\settings.json全局生效,大多数人用这个
项目级项目根目录的 .claude/settings.json可以提交进 Git,团队共享
本地覆盖项目根目录的 .claude/settings.local.json自动被 gitignore,放个人密钥用

把中转站配置写进 env 字段:

{
  "env": {
    "ANTHROPIC_BASE_URL": "中转站给你的地址",
    "ANTHROPIC_AUTH_TOKEN": "你的密钥",
    "ANTHROPIC_API_KEY": "你的密钥"
  }
}

⚠️ 两个必须注意的点:

  1. 必须是合法 JSON,不能写注释。 JSON 不支持 // 注释,加了 Claude Code 会读不了这个文件——而且它不一定会明确报错,可能只是"配置像没生效一样"。
  2. 优先级要搞清楚,官方顺序(从高到低)是:托管设置 → 命令行参数 → .claude/settings.local.json → 项目 .claude/settings.json → 用户 ~/.claude/settings.json如果你在项目目录里配过东西,它会盖掉你的全局配置。 这是"我明明改了全局却不生效"的第一大原因。

方法三:cc-switch(多站切换)

如果你手上有两三家中转站要来回切,手动改配置很快就会烦。cc-switch 是一个开源桌面应用,内置了不少中转站的预设,也支持自己填。

用法就三步:添加供应商 → 填 API Key 和 Base URL(或选预设)→ 点启用,它会自动把配置写进对应 CLI 的配置文件。之后在系统托盘右键图标就能直接切换,不用打开主窗口。除了 Claude Code,它也管 Codex、Gemini CLI、OpenCode。

⚠️ cc-switch 用户最常踩的坑:Base URL 结尾不要带斜杠。 多一个 / 会导致拼接出双斜杠的路径,请求直接失败。

一个必须澄清的误解:本站在多篇评测里看到「某某站 cc-switch 用量查询」这类搜索词——用量查询是 cc-switch 这个工具的功能,不是中转站提供的功能。别去中转站后台找它。

另外,渠道/分组是绑在密钥上的,不在客户端配置里。 你在 cc-switch 里怎么填都不改变请求走哪条渠道;要换渠道得回中转站后台改这把密钥,或者干脆建多把密钥、每把绑一条渠道,再用 cc-switch 切。

Base URL 到底填什么:这里没有统一答案

这是本站评测下来发现的、各站差异最大的一项,也是配置失败最集中的地方。 没有一个通用格式,必须看你那家站自己怎么写的。

本站实测过的三种形态:

形态实例说明
根域名,不带 /v1OpenOxhttps://openox.tech站方明确写「直接填根域名,不要手动补 /v1
带完整路径AICodeMirrorhttps://api.claudecode.net.cn/api/claudecode路径很长,照抄
/v1多数 OpenAI 兼容端点但这个通常是给 OpenAI SDK 用的,不是给 Claude Code 的

最容易搞混的一点:同一家站往往给好几个地址,用途不同。 以 OpenOx 为例,它一家就有三个:

  • Claude Code 用 → https://openox.tech(根域名)
  • OpenAI 兼容 SDK 用 → https://openox.tech/v1
  • OpenClaw 等非官方应用用 → https://api.openox.tech/v1

照着"Claude Code"那一行填,别照 OpenAI 那一行填。

三条通用规则:

  1. 去站方后台复制原文,不要凭经验补 /v1 绝大多数站会在「API 密钥」或「令牌管理」页把地址直接印出来。
  2. 结尾不要留斜杠。
  3. 国内用户优先选站方标注的「国内线路 / 国内优化线路」。 很多站同时提供国际线路和国内线路,填错了表现是能连但极慢、或者间歇 connect error

怎么确认你真的走了中转站

配完别急着干活,先确认请求确实走的是中转站,而不是你本机还留着别的配置。三个层次,从快到准:

① 在 Claude Code 里输入 /status 官方文档说明它会显示当前的 API provider 和 base URL;如果你配了企业代理,还会显示 Proxy 一行。这是最快的自查。

② 跑 claude doctor 官方诊断命令,能看到安装状态和配置解析结果。

③ 回中转站控制台看用量记录。 这一步最实在——发几轮对话,然后去站方的「用量」「使用历史」「费用明细」页看有没有对应的扣费记录。看到记录才算真的走通了。

顺便确认扣的是哪条渠道/分组。本站评过的站里,AICodeMirror 和 OpenOx 都在建密钥时让你选渠道,选错了价格能差好几倍——用量页是唯一能验证选对了没有的地方。想搞清楚官转、订阅号池、逆向渠道到底差在哪,看本站的渠道谱系科普

报错速查表

按你实际会看到的信息排:

现象最可能的原因怎么办
401 invalid api key / 没提示原因十有八九是只设了 ANTHROPIC_API_KEYANTHROPIC_AUTH_TOKEN 也设上,值相同;检查密钥有没有带多余空格或引号
401,但密钥确认没错残留的登录态覆盖了环境变量启动 claude 后输入 /logout 退出旧登录,再重开
403 This endpoint only accepts requests from Claude Code CLI站方开了「只允许 Claude Code 客户端」,校验 User-Agent用官方原版 Claude Code,别用改过 UA 的第三方封装;换个分组试
403 Your client is not authorized to use this API key同上,密钥被限定了客户端范围回后台看这把密钥的客户端限制设置
402 insufficient balance 但余额明明有这把密钥自己设了消费上限回后台查该 Key 的额度上限,不是账户余额
403 订阅额度用完订阅额度耗尽且未允许扣余额等次日刷新、升级套餐,或去后台打开「超额后扣余额」
400 model not available / model not allowed模型 ID 写错,或这把密钥的产品线不对去站方模型列表复制准确 ID;Claude 的 Key 调不了 GPT
429 rate limit exceeded并发太高或上游限流降并发,间隔 30~120 秒重试
500 / 529 / 502上游异常先切一个全新对话窗口重试,这是中转站给得最多的解法;持续出现带 request_id 找客服
524 超时上下文太长、单次输出太大切新对话;减少上下文;/compact 压缩
context length exceeded对话历史或文件太长切新对话,或删掉无关历史
能连但极慢 / 间歇 connect error线路选错了换成站方标注的国内优化线路
claude 命令找不到装完没重开终端关掉终端重开(Windows 尤其常见)

配了没生效?先查这三处残留

"我明明改了配置,怎么还是老样子"——90% 是下面三种情况之一,按顺序排查:

① 配置优先级被盖了。 项目目录里的 .claude/settings.local.json.claude/settings.json 都比全局的 ~/.claude/settings.json 优先级高。你在全局改了,但当前项目里有旧配置,就白改了。

② 旧的登录态还在。 如果你之前用 Claude 官方订阅登录过,那个凭证可能压过环境变量。启动 claude 后输入 /logout

③ 环境变量层面的冲突。 Claude Code 会从多个地方读环境变量(shell 进程、项目根目录的 .env~/.claude/envsettings.jsonenv 字段)。你可能在某处留了旧的 ANTHROPIC_BASE_URL

核弹级解法(换站换到彻底糊涂时用):删掉家目录下的 .claude.json.claude 文件夹再重新配。Windows 在 C:\Users\你的用户名\ 下。

⚠️ 这会清掉你的全部设置、工具授权、MCP 配置和会话历史,删之前想清楚。本站评过的 AICodeMirror 在公告里也给过这个解法,用来治顽固的 400 报错。

FAQ

Claude Code 接中转站,ANTHROPIC_API_KEY 和 ANTHROPIC_AUTH_TOKEN 用哪个?

中转站用 ANTHROPIC_AUTH_TOKEN 两者的区别不在名字,在它们实际发出的 HTTP 请求头:ANTHROPIC_API_KEY 会以 x-api-key: sk-xxx 发送,这是 Anthropic 官方 API 认的格式;ANTHROPIC_AUTH_TOKEN 会以 Authorization: Bearer sk-xxx 发送,这是绝大多数中转站、网关、路由器认的格式。填错的表现是 401,而且报错不会告诉你原因——网关在 Authorization 头里找不到凭证,它并不知道你把密钥放在了 x-api-key 里。实操建议是两个都设、值填一样,代价为零且能免掉一整类排查;很多站方也直接推荐这么做。但要清楚真正起作用的是 AUTH_TOKEN

Claude Code 现在还用 npm 安装吗?需要 Node.js 吗?

官方现在首推原生安装器,不再以 npm 为主要方式。 原生安装的好处是不需要 Node.js,而且会后台自动更新:macOS/Linux/WSL 用 curl -fsSL https://claude.ai/install.sh | bash,Windows PowerShell 用 irm https://claude.ai/install.ps1 | iex。npm 路径仍然可用(npm install -g @anthropic-ai/claude-code),但有两个变化:从 v2.1.198 起要求 Node.js 22 或更高(低版本不会失败,只打印 EBADENGINE 警告,因为这个包实际下载的是原生二进制、运行时不用 Node);官方明确警告不要用 sudo npm install -g,说它可能导致权限问题和安全风险。macOS 上遇到 EACCES 权限错误,正确做法是改用原生安装器而不是加 sudo。

Base URL 要不要加 /v1?

没有统一答案,必须看你那家站自己的说明,去后台复制原文。 本站实测到三种形态:有的要根域名不带 /v1(OpenOx 明确写「直接填根域名,不要手动补 /v1」),有的要一条很长的完整路径(AICodeMirror 是 https://api.claudecode.net.cn/api/claudecode),而带 /v1 的地址通常是给 OpenAI 兼容 SDK 用的、不是给 Claude Code 用的。很多站同时给三四个地址,用途不同,照着标注「Claude Code」的那一行填。 另外两条通用规则:结尾不要留斜杠(多一个 / 会拼出双斜杠导致请求失败,cc-switch 用户尤其常踩);国内用户优先选站方标注的「国内线路 / 国内优化线路」,选错了表现是能连但极慢或间歇 connect error。

怎么确认 Claude Code 真的走了中转站?

三个层次,从快到准。一、在 Claude Code 里输入 /status,官方文档说明它会显示当前的 API provider 和 base URL,配了代理还会多一行 Proxy,这是最快的自查。二、跑 claude doctor,官方诊断命令,能看到安装与配置的解析结果。三、回中转站控制台看用量记录——发几轮对话,去站方的「用量」「使用历史」「费用明细」页确认有对应扣费,看到记录才算真走通了。第三步还有个附带价值:能确认扣费走的是哪条渠道或分组,很多站建密钥时让你选渠道,选错价格能差好几倍,用量页是唯一能验证的地方。

配置改了却不生效,是什么原因?

按顺序查三处。一、配置优先级被盖了:官方优先级从高到低是托管设置 → 命令行参数 → 项目的 .claude/settings.local.json → 项目的 .claude/settings.json → 用户的 ~/.claude/settings.json。你在全局改了,但当前项目目录里有旧配置,就会被盖掉——这是最常见的原因。二、旧登录态还在:之前用 Claude 官方订阅登录过的话,那个凭证可能压过环境变量,启动 claude 后输入 /logout三、环境变量冲突:Claude Code 会从 shell 进程、项目根目录的 .env~/.claude/envsettings.jsonenv 字段多处读取,某一处可能留着旧的 ANTHROPIC_BASE_URL。另外提醒一句,settings.json 必须是合法 JSON、不能写 // 注释,写了会读不了整个文件,表现同样是"像没生效"。

报 403 说只接受 Claude Code 客户端,怎么办?

这是中转站开启了客户端校验(校验 User-Agent,只放行官方原版 Claude Code)的结果,典型报错是 This endpoint only accepts requests from Claude Code CLIYour client is not authorized to use this API key解法是用官方原版 Claude Code,不要用改过 UA 的第三方封装或代理层。 如果你确实在用官方版还报这个,回站方后台看这把密钥有没有被限定客户端范围,或者换一个分组试——本站评测发现号池类分组普遍会做 UA 校验,官方直连分组通常不校验。这也是外接工具(把中转站接到非 Claude Code 的客户端里)最高频的失败原因。

cc-switch 是什么?中转站后台为什么找不到用量查询?

cc-switch 是一个开源的第三方桌面应用,用来一键切换 Claude Code、Codex、Gemini CLI、OpenCode 的供应商配置,内置了不少中转站预设,也可以自己填,切换时它会自动改写对应 CLI 的配置文件,系统托盘右键就能切。它不是任何中转站的官方工具。 本站在多篇评测里看到「某某站 cc-switch 用量查询」这类搜索词——用量查询是 cc-switch 自己的功能,不是中转站提供的功能,别去中转站后台找。还有一个常见误解:渠道/分组是绑在密钥上的,不在客户端配置里,你在 cc-switch 里怎么填都不改变请求走哪条渠道,要换渠道得回中转站后台改这把密钥,或者建多把密钥、每把绑一条渠道再切。

换中转站要做什么才能切干净?

最省事的是用 cc-switch 管理,点一下就切。手动切的话,要确认四件事:一、把 ANTHROPIC_BASE_URL 和两个 token 变量全部换掉,只换一个会出现"地址是新站、密钥是旧站"的诡异 401。二、检查项目目录有没有 .claude/settings.json.claude/settings.local.json 留着旧配置,它们优先级高于全局。三、如果之前登录过官方订阅,启动 claude/logout四、实在切不干净,删掉家目录下的 .claude.json.claude 文件夹重新配(Windows 在 C:\Users\你的用户名\)——但这会清掉全部设置、工具授权、MCP 配置和会话历史,是最后手段。切完照例用 /status 加中转站用量页验证一次。