Claude Code 接第三方 / 中转 Key:环境变量怎么配,401 和模型名怎么排查
Claude Code 装好之后,默认是走 Anthropic 官方的。你要是已经在用自建 New-API、One-API,或者手里只有中转站给的 Key,就得自己改地址和鉴权。
官方支持用环境变量改 API 入口,也支持用 API Key / Token 登录,不用死磕网页订阅那一套。变量不多,但名字容易填错,模型名也经常和面板上的对不上。
我按官方文档里的变量名,把常用接法写下来。网关怎么在 VPS 上装,这篇不重复,之前写过:
如果你根本没有 API Key,只是想把 Claude / ChatGPT 账号额度转成接口,那是 CLIProxyAPI 那条线,也另写过:
先说清楚几件事
- Claude Code 用的是 Anthropic 的 Messages 接口(路径类似
/v1/messages),不是 OpenAI 那套chat/completions。 - 中转或网关得能接 Anthropic 格式。有的商家只写“支持 Claude 模型”,实际只能给 ChatBox 之类走 OpenAI 兼容口用,Claude Code 会连不上。
claude login登录的是 Anthropic 账号订阅;本文说的是 Key + Base URL。- 下面出现的模型名都是占位符。你用面板/文档里真实存在、且令牌有权限的名字,别抄别人过期帖子里的字符串。
你需要准备什么
- 本机能跑
claude(claude --version有输出) - 一份 Key:官方 Console 的,或中转/自建网关签发的令牌
- Base URL:中转文档或网关面板上的 Anthropic 接口地址
- 至少一个能在该 Key 下调用的模型名
官方 API Key 用户如果只是换 Key、不换地址,Base URL 可以不动,只配 Key 就行。
一、当前终端先打通(最小配置)
别一上来写配置文件。先在当前终端里 export,成了再固化。
Linux / macOS
export ANTHROPIC_BASE_URL="https://你的网关或中转地址"
export ANTHROPIC_AUTH_TOKEN="你的令牌"
export ANTHROPIC_MODEL="面板里能用的模型名"
claudeWindows PowerShell
$env:ANTHROPIC_BASE_URL = "https://你的网关或中转地址"
$env:ANTHROPIC_AUTH_TOKEN = "你的令牌"
$env:ANTHROPIC_MODEL = "面板里能用的模型名"
claudeWindows CMD
set ANTHROPIC_BASE_URL=https://你的网关或中转地址
set ANTHROPIC_AUTH_TOKEN=你的令牌
set ANTHROPIC_MODEL=面板里能用的模型名
claude进交互后随便问一句短的,比如「1+1 等于几」。能正常回,再往下看长期配置。
Base URL 填什么
ANTHROPICBASEURL 用来覆盖默认的 API 地址。
- 官方默认相当于
https://api.anthropic.com - 自建 / 中转:填对方文档写的 Anthropic 入口,一般是
https://域名或http://IP:端口 - 是否带
/v1、是否还有/anthropic这类前缀,以网关说明为准。OpenAI 客户端里能用的地址,不一定原样能给 Claude Code 用
不确定时,一次只改一种写法,测一次,别同时改五个地方。
Key 放哪个变量
官方文档里两个都能碰到:
| 变量 | 什么时候用 |
|---|---|
ANTHROPICAUTHTOKEN | 中转/网关常见;走 Authorization: Bearer ... 或由网关再转成 Anthropic 头 |
ANTHROPICAPIKEY | 更接近官方 X-Api-Key 透传;官方 sk-ant Key 也常用它 |
我自己接网关时,中转优先试 ANTHROPICAUTHTOKEN,不行再换成 ANTHROPICAPIKEY。排错时两个不要塞两套不同的值,先只留一个。
二、模型名对不上怎么办
Claude Code 内部会按自己的档位要模型(Opus / Sonnet / Haiku 这类)。中转面板上的名字经常完全是另一套。
先求能对话,用总开关:
export ANTHROPIC_MODEL="你的面板模型名"通了以后,如果要更接近官方那种自动分档,可以用这些映射(以官方环境变量文档为准):
export ANTHROPIC_DEFAULT_SONNET_MODEL="面板上的 sonnet 类模型"
export ANTHROPIC_DEFAULT_OPUS_MODEL="面板上的 opus 类模型"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="面板上的 haiku 类模型"还有两个按需再加:
ANTHROPICSMALLFAST_MODEL:后台小任务用的快模型CLAUDECODESUBAGENT_MODEL:子 agent 用的模型
模型名只从这几个地方抄:
- 中转/网关后台的模型列表
- 商家自己的 Claude Code 说明
- 你在网关日志里已经成功调用过的名字
令牌没开通某个模型、渠道没勾选,都会报 model not found,这和 Claude Code 坏没坏无关。
三、写进长期配置
每次开终端都 export 很烦,也容易把 Key 留在 shell 历史里。
Claude Code 支持在 settings.json 里放 env。用户级配置一般在用户目录下的 Claude 配置里,常见路径是 ~/.claude/settings.json(以你本机为准)。项目里也可以放 .claude/settings.json,但别把带 Key 的文件提交到 Git。
示例:
{
"env": {
"ANTHROPIC_BASE_URL": "https://你的网关或中转地址",
"ANTHROPIC_AUTH_TOKEN": "你的令牌",
"ANTHROPIC_DEFAULT_SONNET_MODEL": "面板模型名",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "面板更强模型名",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "面板轻量模型名"
}
}注意:
- JSON 逗号、引号写错会导致整段
env不生效 - 改完后新开一个终端再运行
claude - Key 和普通代码仓库分开;个人项目至少把该文件加进
.gitignore
官方也提到,这类变量适合放在 shell 环境或 settings.json 的 env 里,不要随便塞进别的“代理配置”文件指望它自动生效。
四、怎么确认真的走了中转
可以按这个顺序核对:
- 同一终端里先
echo $ANTHROPICBASEURL(PowerShell 用echo $env:ANTHROPICBASEURL),确认变量在 - 启动
claude,发一句短提示,有完整回复 - 打开中转/网关后台,看有没有刚产生的调用记录
- 故意把 Token 改错再试:如果立刻 401,说明请求打到了你设的地址;如果错 Key 也毫无反应,多半变量没进进程,或者还在用别的登录状态
五、常见问题
401 / Unauthorized
- Key 多了空格、少了前缀
- 令牌对应分组根本没开 Claude / Anthropic 渠道
- 鉴权变量用错(Token 和 API_KEY 试反了)
- Base URL 指到旧域名或测试环境
先在网关网页或 curl 测 Key,别一上来就怀疑 Claude Code。
404 / 路径不对
- 把 OpenAI 客户端的
.../v1原样抄过来,和 Claude Code 实际请求路径对不上 - 反代只转发了
chat/completions,没处理 Anthropic 的 messages - 网关只开了 OpenAI 兼容,没开 Anthropic
回去看网关文档里有没有单独写 Claude / Anthropic / Claude Code。没有的话,别硬接。
model not found / 模型不存在
名字和权限问题为主:
- 面板名和
ANTHROPIC_MODEL不一致 - 渠道勾了,令牌没放行
- 模型下架了还在用旧名字
能连上,但输出卡死、半截断
多见于流式被中间层折腾:
- Nginx / CDN 缓冲
- 网关对 Anthropic 流式支持不完整
- 公司代理截长连接
自己控反代的,可以先关缓冲对比;不自己控的,只能换支持完整 Anthropic 流式的入口。
聊天软件能用同一个中转,Claude Code 不行
很常见。Chat 客户端走 OpenAI 兼容口,Claude Code 走 Anthropic 口。商家“有 Claude 模型”不等于“支持 Claude Code”。自建的话,渠道类型选 Anthropic,不要只建一个 OpenAI 渠道指望通吃。
配了环境变量还是跳官方登录
- 变量没设在启动
claude的那个终端 settings.json语法错误没加载- IDE 内置终端和系统终端环境不一致(Windows 上尤其容易)
在同一个窗口里先打印变量,再启动。
Windows 额外注意
- 系统代理、终端代理、VPN 一起开时,排错先关掉多余的
- WSL 里的环境和 Windows 主机是两套,变量要加在你真正运行
claude的那一层
六、和官方订阅怎么选
没有标准答案,看你怎么用:
- 想少折腾、接受官方订阅:直接
claude login - 已有统一网关、多个工具共用出口:Claude Code 一起接进去更省事
- 只是临时试用某个中转:用当前终端 export,别写进全局配置,用完关掉窗口就行
公司项目、未公开代码,慎用来路不明的中转。请求内容会经第三方,这个要自己掂量。
七、最小模板(复制后改三处)
export ANTHROPIC_BASE_URL="https://example.com"
export ANTHROPIC_AUTH_TOKEN="你的令牌"
export ANTHROPIC_MODEL="你的模型名"
claudesettings.json:
{
"env": {
"ANTHROPIC_BASE_URL": "https://example.com",
"ANTHROPIC_AUTH_TOKEN": "你的令牌",
"ANTHROPIC_MODEL": "你的模型名"
}
}三处:地址、令牌、模型名。先这三样,通了再加 Opus/Sonnet/Haiku 映射。
写在最后
接中转不是什么高深配置,卡住的位置通常就这几个:地址路径、鉴权变量、模型名、网关到底支不支持 Anthropic 协议。
自建网关、账号反代、Notion 提 API 给 Claude Code 用,可以看这几篇:

你要是卡在某一步,把报错原文贴出来(Key 打码),并说明 Base URL 大概形态(是否 HTTPS、是否带端口),我按报错帮你看。
评论