阅读时间 11 分钟

Claude Code 接第三方 / 中转 Key:环境变量怎么配,401 和模型名怎么排查

Claude Code 要用中转或自建网关的 Key,得改 ANTHROPIC_BASE_URL 和鉴权变量。按官方支持的接法写配置步骤,以及 401、路径不对、模型名对不上、流式卡死时怎么查。

Claude Code 装好之后,默认是走 Anthropic 官方的。你要是已经在用自建 New-API、One-API,或者手里只有中转站给的 Key,就得自己改地址和鉴权。

官方支持用环境变量改 API 入口,也支持用 API Key / Token 登录,不用死磕网页订阅那一套。变量不多,但名字容易填错,模型名也经常和面板上的对不上。

我按官方文档里的变量名,把常用接法写下来。网关怎么在 VPS 上装,这篇不重复,之前写过:

VPS 自建 AI API 网关完整教程:One-API、New-API、VoAPI 三方案对比
买了一堆 AI API Key,每个软件都要重复配一遍?在 VPS 上自建一个 OpenAI 兼容的 API 网关,一次配好,所有工具统一走一个地址。折腾了三个方案之后写的对比 + 部署实录。

如果你根本没有 API Key,只是想把 Claude / ChatGPT 账号额度转成接口,那是 CLIProxyAPI 那条线,也另写过:

CLIProxyAPI 终极指南:VPS 自建 OpenAI 兼容接口(WebUI + Docker + Nginx)
在 VPS 上通过 Docker 或直装方式部署 CLIProxyAPI,解决 Gemini/Claude 地区限制,附带 Nginx HTTPS 配置和多客户端实战对接指南。

先说清楚几件事

  1. Claude Code 用的是 Anthropic 的 Messages 接口(路径类似 /v1/messages),不是 OpenAI 那套 chat/completions
  2. 中转或网关得能接 Anthropic 格式。有的商家只写“支持 Claude 模型”,实际只能给 ChatBox 之类走 OpenAI 兼容口用,Claude Code 会连不上。
  3. claude login 登录的是 Anthropic 账号订阅;本文说的是 Key + Base URL
  4. 下面出现的模型名都是占位符。你用面板/文档里真实存在、且令牌有权限的名字,别抄别人过期帖子里的字符串。

你需要准备什么

  • 本机能跑 claudeclaude --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="面板里能用的模型名"
claude

Windows PowerShell

$env:ANTHROPIC_BASE_URL = "https://你的网关或中转地址"
$env:ANTHROPIC_AUTH_TOKEN = "你的令牌"
$env:ANTHROPIC_MODEL = "面板里能用的模型名"
claude

Windows 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 用的模型

模型名只从这几个地方抄:

  1. 中转/网关后台的模型列表
  2. 商家自己的 Claude Code 说明
  3. 你在网关日志里已经成功调用过的名字

令牌没开通某个模型、渠道没勾选,都会报 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.jsonenv 里,不要随便塞进别的“代理配置”文件指望它自动生效。


四、怎么确认真的走了中转

可以按这个顺序核对:

  1. 同一终端里先 echo $ANTHROPICBASEURL(PowerShell 用 echo $env:ANTHROPICBASEURL),确认变量在
  2. 启动 claude,发一句短提示,有完整回复
  3. 打开中转/网关后台,看有没有刚产生的调用记录
  4. 故意把 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="你的模型名"
claude

settings.json

{
  "env": {
    "ANTHROPIC_BASE_URL": "https://example.com",
    "ANTHROPIC_AUTH_TOKEN": "你的令牌",
    "ANTHROPIC_MODEL": "你的模型名"
  }
}

三处:地址、令牌、模型名。先这三样,通了再加 Opus/Sonnet/Haiku 映射。


写在最后

接中转不是什么高深配置,卡住的位置通常就这几个:地址路径、鉴权变量、模型名、网关到底支不支持 Anthropic 协议。

自建网关、账号反代、Notion 提 API 给 Claude Code 用,可以看这几篇:

VPS 自建 AI API 网关完整教程:One-API、New-API、VoAPI 三方案对比
买了一堆 AI API Key,每个软件都要重复配一遍?在 VPS 上自建一个 OpenAI 兼容的 API 网关,一次配好,所有工具统一走一个地址。折腾了三个方案之后写的对比 + 部署实录。
CLIProxyAPI 终极指南:VPS 自建 OpenAI 兼容接口(WebUI + Docker + Nginx)
在 VPS 上通过 Docker 或直装方式部署 CLIProxyAPI,解决 Gemini/Claude 地区限制,附带 Nginx HTTPS 配置和多客户端实战对接指南。
Notion 商业版 6 个月免费试用教程:提取 API 调用 Claude Code / OpenAI 模型(VPS 部署全流程)
手把手教你申请 Notion 商业版(Business)6 个月免费试用,并用开源项目 notion_manager 提取 API,在 Claude Code、OpenAI 兼容客户端里调用 Opus 等模型。含引荐密钥、VPS 部署、systemd 常驻、Caddy 反代全流程。
OpenAI Codex CLI 完整教程:安装、订阅、额度和国内使用避坑
2026 最新 OpenAI Codex CLI 完整教程:从安装登录、ChatGPT Plus/Pro 订阅额度、模型选择,到国内网络、代理、Windows/WSL2 和 API Key 避坑一次讲清。

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