如何让 Claude Code 接入 sub2api 中转站的 API

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。

准备工作

  1. 已经安装好 Claude Code。如果还没装,可以通过官方提供的安装方式安装(需要 Node.js 环境)。
  2. 拿到中转站的两样东西:接口地址(Base URL)API Key
  3. 知道中转站后台列出的模型名。中转站通常对模型名做了映射,名字不一定和官方完全一样,这一步很关键。

情况 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-proxyanthropic-proxyclaude-to-openai 之类的关键词,可以自行搜索选择维护活跃的项目)。它们的通用使用模式是:

  1. 在本地运行这个代理程序,通常会监听一个本地端口,例如 http://localhost:8080
  2. 在代理的配置里,填入你中转站的 OpenAI 格式地址、API Key,以及模型名映射关系。
  3. 然后把 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_URLANTHROPIC_AUTH_TOKENANTHROPIC_MODEL。如果中转站支持 Anthropic 格式,直接配置即可;如果只支持 OpenAI 格式,中间加一层转换代理。把配置写成 shell 别名,就能在官方接口和中转站之间随时切换。

Leave a Comment

Your email address will not be published. Required fields are marked *

Shopping Cart