Claude Code 是 Anthropic 推出的命令行编程工具。默认情况下它直接连接 Anthropic 官方 API,但它也支持把请求转发到自定义的接口地址。本文介绍如何把 Claude Code 接入一个用 sub2api 搭建的 AI 中转站。
一个必须先搞清楚的前提
Claude Code 只能发送 Anthropic Messages API 格式的请求(也就是 /v1/messages 这种接口形态)。它不认 OpenAI 那种 /v1/chat/completions 的格式。
而很多中转站(包括不少 sub2api 部署)对外暴露的是 OpenAI 兼容格式。这就带来两种情况:
- 情况 A:你的中转站同时提供了 Anthropic 兼容端点。 现在很多中转面板都支持,接口路径类似
https://你的域名/v1/messages。如果是这种,直接按下文配置即可。 - 情况 B:你的中转站只有 OpenAI 格式。 那 Claude Code 没法直接连,需要在中间加一个「协议转换代理」,把 Anthropic 格式翻译成 OpenAI 格式再转发。
怎么判断你属于哪种? 最简单的方式是去中转站后台看接口文档,或者直接问中转站是否支持 /v1/messages(Anthropic / Claude 原生格式)。也可以用下面的命令测试(把域名和 key 换成你的):
curl https://你的中转站域名/v1/messages \
-H "x-api-key: 你的中转站key" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{
"model": "claude-sonnet-4",
"max_tokens": 50,
"messages": [{"role": "user", "content": "你好"}]
}'
如果返回的是一段正常的模型回复,说明是情况 A,可以直接用。如果返回 404 或格式错误,基本是情况 B。
准备工作
- 已经安装好 Claude Code。如果还没装,可以通过官方提供的安装方式安装(需要 Node.js 环境)。
- 拿到中转站的两样东西:接口地址(Base URL) 和 API Key。
- 知道中转站后台列出的模型名。中转站通常对模型名做了映射,名字不一定和官方完全一样,这一步很关键。
情况 A:中转站支持 Anthropic 格式 —— 直接配置
Claude Code 通过三个环境变量来切换接口:
| 环境变量 | 作用 | 填什么 |
|---|---|---|
ANTHROPIC_BASE_URL | 接口地址 | 你的中转站地址,例如 https://你的域名 |
ANTHROPIC_AUTH_TOKEN | 鉴权令牌 | 你的中转站 API Key |
ANTHROPIC_MODEL | 默认使用的模型 | 中转站后台列出的模型名 |
临时使用(只对当前终端窗口生效)
在终端里依次执行:
export ANTHROPIC_BASE_URL="https://你的中转站域名"
export ANTHROPIC_AUTH_TOKEN="你的中转站key"
export ANTHROPIC_MODEL="claude-sonnet-4"
claude
关掉终端后这些设置就失效了,适合临时测试。
长期使用(推荐:做成一个命令别名)
每次都手动 export 很麻烦。更省事的做法是在 shell 配置文件里加一个别名。
如果你用的是 bash,编辑 ~/.bashrc;如果用 zsh(macOS 默认),编辑 ~/.zshrc。在文件末尾加上:
cc() {
export ANTHROPIC_BASE_URL="https://你的中转站域名"
export ANTHROPIC_AUTH_TOKEN="你的中转站key"
export ANTHROPIC_MODEL="claude-sonnet-4"
claude "$@"
}
保存后执行 source ~/.zshrc(或 source ~/.bashrc)让配置生效。
之后只要在终端输入 cc,就会用中转站的接口启动 Claude Code;直接输入 claude 仍然走官方接口。两套互不干扰,这是它最方便的地方。
验证是否生效
启动 Claude Code 后,在对话框里输入 /status 命令,可以看到当前会话使用的接口和认证方式。确认接口地址是你的中转站地址,就说明配置成功了。
情况 B:中转站只有 OpenAI 格式 —— 加一层转换代理
如果你的中转站只支持 OpenAI 格式,需要在本地或服务器上跑一个「协议转换代理」。它的作用是:对外伪装成 Anthropic 接口接收 Claude Code 的请求,内部把请求翻译成 OpenAI 格式发给你的中转站,再把返回结果翻译回 Anthropic 格式。
社区里有一些现成的开源转换代理工具(常见名称里带 claude-code-proxy、anthropic-proxy、claude-to-openai 之类的关键词,可以自行搜索选择维护活跃的项目)。它们的通用使用模式是:
- 在本地运行这个代理程序,通常会监听一个本地端口,例如
http://localhost:8080。 - 在代理的配置里,填入你中转站的 OpenAI 格式地址、API Key,以及模型名映射关系。
- 然后把 Claude Code 指向这个本地代理地址,而不是直接指向中转站:
export ANTHROPIC_BASE_URL="http://localhost:8080"
export ANTHROPIC_AUTH_TOKEN="随便填一个占位字符串"
claude
这种方式下,ANTHROPIC_AUTH_TOKEN 往往只是占位用,真正的中转站 key 配置在代理那一层。
需要留意:协议转换属于非官方方案,基础的对话和代码生成一般没问题,但一些 Claude API 特有的高级功能(例如扩展思考、提示缓存等)可能无法完整传递。日常写代码、改代码的场景通常够用。
常见问题排查
报错 401 / 鉴权失败。 检查 API Key 是否填对、是否过期;确认中转站账户还有额度。注意有的中转站要求 key 前面带 sk- 前缀,有的不要。
报错 404 / 接口不存在。 多半是 ANTHROPIC_BASE_URL 结尾的路径问题。Claude Code 会自动在你给的地址后面拼接 /v1/messages,所以这个变量通常只填到域名层级即可,不要自己再加 /v1。如果还不行,说明你的中转站可能不支持 Anthropic 格式,需要走情况 B。
报错「模型不存在」。 ANTHROPIC_MODEL 必须和中转站后台列出的模型名完全一致。中转站常对模型名做映射,先去后台确认准确的模型字符串。
连接超时。 检查中转站域名能否正常访问;如果中转站在境外,确认你的网络环境能连通。
想临时切回官方接口。 新开一个没有设置这些环境变量的终端窗口,直接运行 claude 即可。
一点提醒
使用第三方中转站意味着你的请求会经过中转站服务器,涉及代码或敏感信息时,要确认自己信任这个中转站的运营方。重要项目建议优先使用官方接口。
小结
整个接入的核心就是三个环境变量:ANTHROPIC_BASE_URL、ANTHROPIC_AUTH_TOKEN、ANTHROPIC_MODEL。如果中转站支持 Anthropic 格式,直接配置即可;如果只支持 OpenAI 格式,中间加一层转换代理。把配置写成 shell 别名,就能在官方接口和中转站之间随时切换。