claude-code-anthropic-base-url-override · ZH · 2026-10-06

把 Claude Code 指向第三方接口:ANTHROPIC_BASE_URL 与鉴权变量详解

Claude Code 支持通过环境变量自定义 API 端点与鉴权信息。本文系统梳理 ANTHROPIC_BASE_URL 及相关 token 环境变量的作用、常见冲突与验证方法,帮助你把 Claude Code 安全指向第三方聚合接口。

Claude Code 默认连接 Anthropic 官方端点。若你希望使用第三方聚合服务(如支持多模型的 API 中转),需要调整其读取的 base URL 与鉴权变量。本文不涉及具体服务商配置,只讲通用机制与排查思路。

Claude Code 如何决定请求去向

Claude Code 内部使用 Anthropic SDK。SDK 在发起请求时,会按固定优先级读取环境变量,决定请求的 host 和认证头。关键变量如下:

  • ANTHROPICBASEURL:覆盖默认的 API 基地址。通常应设置为完整的 URL 前缀(例如 https://api.example.com),SDK 会在此基础上拼接 /v1/messages 等路径。
  • ANTHROPICAPIKEY:最常用的鉴权变量,值会作为 x-api-key 请求头发送。
  • ANTHROPICAUTHTOKEN:另一种鉴权变量。部分工具或 SDK 版本使用它来设置 Authorization: Bearer <token> 头。
  • ANTHROPICMODEL / ANTHROPICSMALLFASTMODEL:分别控制主模型和后台快速模型。第三方聚合站可能只支持部分模型名,需按实际可用模型调整。

这些变量可以在 shell 启动文件(如 .bashrc、.zshrc)中导出,或仅在运行 Claude Code 的终端会话中临时设置。

哪些变量会互相冲突

当多个变量同时存在时,行为可能不符合预期。常见冲突场景:

  • ANTHROPICAPIKEY 与 ANTHROPICAUTHTOKEN 同时设置:两者都会尝试写入请求头,服务端可能因收到重复或矛盾鉴权信息而拒绝。通常应只保留一个。
  • 全局与项目级变量叠加:如果你在 .env 文件、shell 配置和项目配置中都设置了 base URL,后加载的会覆盖先加载的。排查时用 env | grep ANTHROPIC 查看当前生效值。
  • 模型名与聚合站不匹配:官方模型名在第三方聚合站可能不存在。如果沿用默认模型名,请求会返回模型不存在错误,而不是写入失败。

建议在配置时遵循最小化原则:只设置必要的变量,避免遗留旧值。

如何确认改动真的生效

改完环境变量后,可以用以下方法验证:

  1. 在终端打印变量:echo $ANTHROPICBASEURL、echo $ANTHROPICAPIKEY。确保值正确且没有多余空格或引号。
  2. 启动 Claude Code 并观察输出。如果 base URL 指向第三方,请求会到达新端点;若鉴权或模型名错误,会看到对应错误信息。
  3. 使用最小请求测试:运行一个简单对话,检查是否能正常返回。若返回内容与预期模型能力不符,可能是聚合站路由到了其他模型。
  4. 检查网络与证书:第三方接口若使用自签名证书,可能触发 TLS 错误。此时需要将证书加入信任链,而非关闭验证。

注意:Claude Code 不会自动从 .env 文件读取变量,除非你使用 shell 的 source 或 export 命令显式加载。

切换回官方端点的注意事项

若想恢复默认,应清除所有自定义变量:

  • unset ANTHROPICBASEURL
  • unset ANTHROPICAPIKEY
  • unset ANTHROPICAUTHTOKEN
  • unset ANTHROPIC_MODEL

然后重新启动终端。如果之前修改过 shell 配置文件,记得删除对应行,否则新开的终端仍会加载旧值。

总之,理解这几个环境变量的优先级与冲突关系,能帮你更可靠地把 Claude Code 对接任意兼容 Anthropic API 的第三方服务。