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_KEY | x-api-key: sk-xxx | Anthropic 官方 API |
ANTHROPIC_AUTH_TOKEN | Authorization: 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": "你的密钥"
}
}
⚠️ 两个必须注意的点:
- 必须是合法 JSON,不能写注释。 JSON 不支持
//注释,加了 Claude Code 会读不了这个文件——而且它不一定会明确报错,可能只是"配置像没生效一样"。 - 优先级要搞清楚,官方顺序(从高到低)是:托管设置 → 命令行参数 →
.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 到底填什么:这里没有统一答案
这是本站评测下来发现的、各站差异最大的一项,也是配置失败最集中的地方。 没有一个通用格式,必须看你那家站自己怎么写的。
本站实测过的三种形态:
| 形态 | 实例 | 说明 |
|---|---|---|
根域名,不带 /v1 | OpenOx:https://openox.tech | 站方明确写「直接填根域名,不要手动补 /v1」 |
| 带完整路径 | AICodeMirror:https://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 那一行填。
三条通用规则:
- 去站方后台复制原文,不要凭经验补
/v1。 绝大多数站会在「API 密钥」或「令牌管理」页把地址直接印出来。 - 结尾不要留斜杠。
- 国内用户优先选站方标注的「国内线路 / 国内优化线路」。 很多站同时提供国际线路和国内线路,填错了表现是能连但极慢、或者间歇
connect error。
怎么确认你真的走了中转站
配完别急着干活,先确认请求确实走的是中转站,而不是你本机还留着别的配置。三个层次,从快到准:
① 在 Claude Code 里输入 /status。 官方文档说明它会显示当前的 API provider 和 base URL;如果你配了企业代理,还会显示 Proxy 一行。这是最快的自查。
② 跑 claude doctor。 官方诊断命令,能看到安装状态和配置解析结果。
③ 回中转站控制台看用量记录。 这一步最实在——发几轮对话,然后去站方的「用量」「使用历史」「费用明细」页看有没有对应的扣费记录。看到记录才算真的走通了。
顺便确认扣的是哪条渠道/分组。本站评过的站里,AICodeMirror 和 OpenOx 都在建密钥时让你选渠道,选错了价格能差好几倍——用量页是唯一能验证选对了没有的地方。想搞清楚官转、订阅号池、逆向渠道到底差在哪,看本站的渠道谱系科普。
报错速查表
按你实际会看到的信息排:
| 现象 | 最可能的原因 | 怎么办 |
|---|---|---|
401 invalid api key / 没提示原因 | 十有八九是只设了 ANTHROPIC_API_KEY | 把 ANTHROPIC_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/env、settings.json 的 env 字段)。你可能在某处留了旧的 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/env、settings.json 的 env 字段多处读取,某一处可能留着旧的 ANTHROPIC_BASE_URL。另外提醒一句,settings.json 必须是合法 JSON、不能写 // 注释,写了会读不了整个文件,表现同样是"像没生效"。
报 403 说只接受 Claude Code 客户端,怎么办?
这是中转站开启了客户端校验(校验 User-Agent,只放行官方原版 Claude Code)的结果,典型报错是 This endpoint only accepts requests from Claude Code CLI 或 Your 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 加中转站用量页验证一次。