Claude Code 中转站配置:API、Base URL 与验证
Claude Code 中转站配置不能只改 ANTHROPIC_BASE_URL:还要核对 API 鉴权、模型发现、Messages 协议、流式响应、工具调用、数据边界和故障回退。
结论: Claude Code 中转站是否可用,不能只看一次文本回复。至少要验证鉴权优先级、模型映射、流式内容块、工具调用、多轮继续、取消请求和用量记录;其中任何一项语义不完整,都可能让普通对话成功而真实编码任务失败。
国内装不上、连不上或很慢,先看 Claude Code 国内连不上、慢、安装失败怎么办;还没选定网关,看 Claude Code 中转站怎么选;不用 Claude Code、直接调接口,看 Claude API 中转接入;Key 从哪来,看 Claude API Key 怎么获取。
Claude Code API 中转站的四段信任边界是什么?
封面把链路拆成本地工作区 → 兼容网关 → 模型上游 → 验证与回退。本地工作区可能提供代码、终端输出和工具参数;网关能处理鉴权头与正文;模型上游接收网关转发的数据;验证与回退负责用请求 ID、日志和冒烟用例证明切换结果。
| 边界 | 主要资产或风险 | 最小控制 | 通过证据 |
|---|---|---|---|
| 本地工作区 | 源代码、配置、命令输出 | 仓库分级、排除凭据、只授予必要工具权限 | 脱敏测试仓库与工具允许清单 |
| 兼容网关 | Token、提示词、工具参数、路由 | 独立低额度 Key、TLS、日志脱敏、租户隔离 | 请求 ID、脱敏日志与权限审计 |
| 模型上游 | 正文、模型映射、数据地区 | 披露真实上游、保留期、人员权限与删除规则 | 当前文档、合同与实际路由记录 |
| 验证与回退 | 协议退化、工具副作用、账单异常 | 固定回归集、冻结写操作、可逆 Provider 配置 | 回滚演练与恢复后的四组冒烟结果 |
这也是供应商评估边界:无法回答日志正文、上游、地区、保留和删除问题时,只能在脱敏测试仓库中验证,不能把“请求已加密”当成完整安全结论。
Claude Code 网关配置怎样连接 Anthropic Messages?
ANTHROPIC_BASE_URL 选择的是 Anthropic Messages 格式网关,最低需要正确处理 /v1/messages;Token 计数端点是否提供要按协议能力表单独声明。变量只填网关根地址,不带 /v1:Claude Code 会自己在后面拼 /v1/messages,官方连接文档的 curl 验证用的也是 $ANTHROPIC_BASE_URL/v1/messages。下面只使用保留域名和环境变量,不包含真实凭据:
export ANTHROPIC_BASE_URL="https://gateway.example"
export ANTHROPIC_AUTH_TOKEN="$CLAUDE_GATEWAY_TOKEN"
claude
- 先验证 Base URL、TLS 与
/v1/messages路径。 - 启动 Claude Code 后运行
/status,核对实际 Base URL 与鉴权来源。 - 用
/model核对可见模型与静态映射。 - 完成一次读取、编辑、测试、工具失败与多轮继续的真实编码任务。
网关应尽量透传未知请求字段、beta 头和响应事件。只支持 OpenAI Chat Completions 的服务不能因此被描述为 Claude Code 完整兼容。
ANTHROPIC_BASE_URL 填 https://gptzzz.ai,不要带 /v1,Claude Code 实际请求的是 https://gptzzz.ai/v1/messages。Key 在控制台 /keys 页面创建,分组选 Claude官key:一个 Key 只属于一个分组,只能调用这个分组里的模型。GPTZZZ 的 /v1/messages 同时接受 Authorization: Bearer 和 x-api-key 两种鉴权头,所以 ANTHROPIC_AUTH_TOKEN(发 Bearer 头)和 ANTHROPIC_API_KEY(发 x-api-key 头)任选其一即可,变量含义见官方网关连接文档。Claude API 中转接入一文的 curl 用的是 x-api-key,同样可用。
export GPTZZZ_API_KEY="YOUR_GPTZZZ_API_KEY"
export ANTHROPIC_BASE_URL="https://gptzzz.ai"
export ANTHROPIC_AUTH_TOKEN="$GPTZZZ_API_KEY"
export ANTHROPIC_MODEL="claude-sonnet-5"
export ANTHROPIC_DEFAULT_OPUS_MODEL="claude-opus-4.8"
export ANTHROPIC_DEFAULT_SONNET_MODEL="claude-sonnet-5"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="claude-sonnet-5"
claude
$env:GPTZZZ_API_KEY = "YOUR_GPTZZZ_API_KEY"
$env:ANTHROPIC_BASE_URL = "https://gptzzz.ai"
$env:ANTHROPIC_AUTH_TOKEN = $env:GPTZZZ_API_KEY
$env:ANTHROPIC_MODEL = "claude-sonnet-5"
$env:ANTHROPIC_DEFAULT_OPUS_MODEL = "claude-opus-4.8"
$env:ANTHROPIC_DEFAULT_SONNET_MODEL = "claude-sonnet-5"
$env:ANTHROPIC_DEFAULT_HAIKU_MODEL = "claude-sonnet-5"
claude
Claude Code 默认按 Anthropic 官方模型 ID 发请求(例如 claude-opus-4-8),GPTZZZ 价格页上的 ID 是 claude-opus-4.8 这种带点的写法,所以要用 ANTHROPIC_MODEL 指定主模型;会话中也可以用 /model claude-opus-4.8 切换。opus、sonnet、haiku 这些别名(/model 里选别名、opusplan、子代理配置里写的 model: haiku)默认也解析成官方 ID,所以上面用三个 ANTHROPIC_DEFAULT_*_MODEL 把它们都指到价格页上的 ID,见官方模型配置文档。价格页注明 claude-haiku-4.5 最早于 2026-10-15 退役,所以示例把 haiku 也指到 claude-sonnet-5。用 ANTHROPIC_AUTH_TOKEN 时,会话标题等后台任务默认走主模型;设了 ANTHROPIC_DEFAULT_HAIKU_MODEL 后改走它指定的模型。
| 模型 | 分组 · 倍率 | 输入 ¥/百万 Token | 输出 ¥/百万 Token | 缓存读 ¥/百万 Token |
|---|---|---|---|---|
| claude-fable-5.1 价格 | Claude官key · 0.39x | ¥46.90 | ¥234.00 | ¥1.17 |
| claude-opus-5.5 价格 | Claude官key · 0.39x | ¥18.70 | ¥93.70 | ¥0.94 |
| claude-opus-5 价格 | Claude官key · 0.39x | ¥23.40 | ¥117.00 | ¥2.34 |
| claude-opus-4.8 价格 | Claude官key · 0.39x | ¥3.91 | ¥19.50 | ¥0.39 |
| claude-sonnet-5 价格 | Claude官key · 0.39x | ¥1.56 | ¥7.81 | ¥0.16 |
| claude-sonnet-4.6 价格 | Claude官key · 0.39x | ¥2.34 | ¥11.70 | ¥0.23 |
Claude Code 会在请求里加 cache_control 缓存标记,长会话要把缓存写入和缓存读一起算:例如 claude-sonnet-5 缓存写入 ¥1.95(1 小时 ¥3.22),高于输入价 ¥1.56;各模型的缓存写入价在价格页每个模型的“更多价格与官方说明”里。表中价格取自 2026-10-09 的模型价格页,单位是元/百万 Token(充值 ¥1 = 余额 $1),已乘分组倍率;价格页共列 12 个 Claude 模型。实际扣费以 GPTZZZ 模型价格页和控制台为准。
也可以用 GPTZZZ 桌面客户端配置。当前版本 v3.21.0(2026-09-12 发布)的更新说明写明:客户端只开放 Claude Code、Codex 等 5 项;登录后只写入列表、不再自动切换,要用时需自己切换;原配置可一键恢复。安装包有 macOS(.dmg)和 Windows(.msi 与便携版 .zip,都有 arm64 版本)。配置后同样在 Claude Code 里运行 /status,核对 Base URL 和凭据来源。
鉴权优先级、settings 与 apiKeyHelper 为什么容易配错?
| 来源 | 发送方式 | 适用场景 |
|---|---|---|
ANTHROPIC_AUTH_TOKEN | Authorization: Bearer | 网关接受 Bearer Token |
ANTHROPIC_API_KEY | x-api-key | 网关按 Anthropic Key 头鉴权 |
apiKeyHelper | 按官方连接规则提供推理凭据 | 短期、按用户或集中 Secret 系统 |
Claude Code apiKeyHelper 要与凭据优先级一起检查。Claude Code 的认证优先级中,云提供商配置、ANTHROPIC_AUTH_TOKEN 与 ANTHROPIC_API_KEY 都可能覆盖 apiKeyHelper。怀疑走错凭据时,不要打印 Token;只记录来源、版本或不可逆指纹,并用 /status 观察实际选择。官方 Key 怎么申请、订阅登录和 API Key 有什么区别,见 Claude API Key 怎么获取。
同名变量存在时,settings 文件里的 env 会覆盖 shell export;只依赖 shell 的配置也不一定可靠传给 supervisor 管理的 background agents。动态 helper 默认会按官方规则缓存并在 401 后刷新,TTL 必须兼顾 Secret 系统负载与吊销时延。
Claude Code 中转失败怎么排查?
检查当前终端是否同时存在 ANTHROPIC_API_KEY、ANTHROPIC_AUTH_TOKEN、云平台变量或代理设置。多个变量可能让请求走向不同端点。
建议为中转站建立单独启动脚本或 shell profile,退出后恢复干净环境。
装不上、连不上、很慢或用一会儿就断,属于网络和安装层的问题,按 Claude Code 国内连不上、慢、安装失败怎么办 一文分层排查。
不要只验证一句对话
至少完成以下任务:
- 读取一个小型测试仓库;
- 生成修改计划但不写文件;
- 修改一个文件并运行测试;
- 触发一次工具调用与多轮继续;
- 主动取消流式输出;
- 使用错误模型名观察错误对象。
保存 Claude Code 版本、模型映射、请求 ID 和网关日志。工具调用失败而普通文本成功,通常说明协议适配不完整。
Claude Code 接入网关要验证什么?
| 验收项 | 最小任务 | 通过证据 | 常见假阳性 |
|---|---|---|---|
| 鉴权 | 新终端启动并发起请求 | 网关记录正确用户和密钥版本 | 旧环境变量仍在生效 |
| 模型映射 | 明确请求主模型和子任务模型 | 返回模型、路由日志与配置一致 | 所有别名被静默映射到同一模型 |
| 流式 | 生成较长补丁并主动取消 | 内容块顺序正确,取消后连接释放 | 只验证首个文本 chunk |
| 工具调用 | 读取文件、修改文件并运行测试 | 调用 ID、参数、结果和结束状态完整 | 普通聊天成功但工具循环 |
| 多轮继续 | 修复测试后继续同一任务 | 历史内容和工具结果未丢失 | 每轮都被网关当成新会话 |
| 用量 | 完成一次可重复任务 | 客户端、网关和上游记录可关联 | 只有总金额,没有请求级 Token |
建议把这张表作为发布门禁,而不是上线后的排障清单。任何一项没有请求 ID 或日志证据,只能记为“未验证”,不能记为通过。
Claude Code 模型发现与模型映射怎样验收?
静态模型映射和动态发现要分开测试。需要发现网关模型时,显式设置 CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1;Claude Code 会查询 GET /v1/models?limit=1000,并按协议规则处理超时、重定向和模型 ID。
不跟随模型目录重定向是一条凭据边界:不能让带鉴权的发现请求被静默送到未知目标。生产映射表应记录客户端模型名、真实上游 ID、能力、负责人和变更时间;不要把所有别名静默映射为同一个模型。
自定义 Base URL 下的细粒度工具流式能力也要显式核对。若启用 CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING=1,应重复参数分片、取消和工具结果回传测试,详细状态机见 API 流式输出与工具调用兼容性。
最小权限、日志脱敏和供应商评估
Claude Code 可能发送仓库片段、终端输出和工具参数。为每位成员或自动化任务使用独立、低额度、可撤销的 Key,只授予所需模型和功能;轮换时保留短暂双 Key 窗口,确认旧 Key 流量归零后再撤销。
应用、反向代理、APM 与工单都要过滤 Authorization、x-api-key、完整提示词和工具结果。排障只保留请求 ID、密钥版本、模型、状态和必要的脱敏字段。进一步的凭据操作见 API Key 安全指南,第三方处理边界见 API 中转站安全与隐私评估。
还要验证网络边界是否与预期一致。官方协议说明部分可用性或 WebFetch 安全检查可能直连 Anthropic;若组织要求所有出口都经网关,应在防火墙与抓包证据中确认,而不是仅检查推理请求。
Claude Code 回退官方端点:中转故障怎样隔离?
| 触发器 | 先做什么 | 回退后证据 |
|---|---|---|
| 401 或凭据来源错误 | 停止新任务,清理冲突变量,核对正确鉴权头 | /status 显示预期来源 |
| 模型目录为空 | 关闭动态发现,恢复已验证静态映射 | /model 与路由日志一致 |
| 流式或工具关联丢失 | 取消在途工具,禁止写操作并切回原端点 | 调用 ID、结果和结束状态完整 |
| 日志或账单异常 | 撤销网关 Key,保全最少必要证据 | 旧 Key 无新流量,费用恢复基线 |
- 保留官方 Provider 配置,但不要与网关变量同时生效。
- 在干净终端移除 Base URL 与网关凭据,恢复已验证的官方鉴权。
- 重跑非流式、流式、工具调用和故意错误四组冒烟。
- 确认在途命令和工具没有重复执行,再恢复写权限。
原生接口基础见 Claude API 中转接入,回退后的可靠性对照可按 API 稳定性基准测试重跑。
团队上线需要额外控制什么
个人终端能运行,不代表团队可以安全推广。至少统一 Claude Code 版本、允许的模型映射、网关配置模板、仓库数据等级和故障回退方法。密钥按成员或自动化任务拆分,并设置独立额度,避免共享一个无法追踪的长期 Token。
建议把验收结果记录成矩阵:读取文件、修改文件、执行命令、工具失败、多轮继续、用户取消和长任务各自是否通过;每项保存客户端版本、请求 ID、模型映射和网关状态。模型或 Claude Code 升级后只需重复同一矩阵,就能看出具体退化位置。
对于含客户代码、生产配置或凭据的仓库,应先确认中转站是否记录正文、数据经过哪些地区、谁能访问日志以及如何删除。若这些问题无法回答,只在公开测试仓库中验证,不要用“传输加密”代替完整的数据治理。
关系说明: gptzzz.ai 是独立技术内容站,与 Anthropic 及 Claude Code 官方不存在隶属关系。文中的配置应以当前 Anthropic 官方文档和实际网关能力为准。
可复现:用请求、响应和指标验证 Claude Code 网关
先在脱敏测试项目中设置 ANTHROPIC_BASE_URL、CLAUDE_GATEWAY_TOKEN 与经过确认的模型别名。以下请求只使用保留域名、环境变量和合成提示词;响应是结构示例,延迟与 Token 必须记录实测值。
set +x
: "${ANTHROPIC_BASE_URL:?set ANTHROPIC_BASE_URL}"
: "${CLAUDE_GATEWAY_TOKEN:?set CLAUDE_GATEWAY_TOKEN}"
printf 'header = "Authorization: Bearer %s"\n' "${CLAUDE_GATEWAY_TOKEN}" | \
curl --config - --silent --show-error --no-buffer \
--request POST "${ANTHROPIC_BASE_URL%/}/v1/messages" \
--header "anthropic-version: 2023-06-01" \
--header "content-type: application/json" \
--data '{"model":"gateway-claude-alias","max_tokens":32,"stream":false,"messages":[{"role":"user","content":"Reply only with pong"}]}' \
--write-out '\nhttp=%{http_code} start=%{time_starttransfer}s total=%{time_total}s\n'
最小成功响应应保持 Messages 对象形状;示例 ID 和计数不是测试基准:
{"id":"msg_example","type":"message","role":"assistant","model":"gateway-claude-alias","content":[{"type":"text","text":"pong"}],"stop_reason":"end_turn","stop_sequence":null,"usage":{"input_tokens":12,"output_tokens":3}}
http=200 start=<measured>s total=<measured>s
| 参数边界 | 通过条件 | 错误或失败模式 |
|---|---|---|
Base URL + /v1/messages | HTTPS、JSON、状态 200 | 404 表示路径或协议面不支持;200 HTML 表示命中错误代理 |
Bearer 与 x-api-key | 只启用网关要求的一种来源 | 401/403 时先核对头与凭据优先级,不扩大权限 |
model、max_tokens、stop_reason 与 stop_sequence | 响应模型映射可追踪,停止字段存在,输出不超过请求边界 | 未知模型被静默改写,或边界与停止字段被网关丢弃 |
| 请求 ID、start、total、usage | 客户端、网关和上游可关联 | 只有最终文字,缺少状态、用量或可排障标识 |
验证指标:保存 HTTP 状态、首字节时间、总耗时、返回模型、停止原因、请求 ID 与用量完整性;再用同一输入跑一次流式和一次工具调用。若普通响应成功而工具关联失败,故障排查应先核对原始事件和请求 ID,再按前文回滚表停止写操作、切回原端点,不要把它记为兼容通过。
参考资料
- Claude Code:连接 LLM gateway
- Claude Code:Gateway protocol reference
- Claude Code:Authentication
- Claude Code:Environment variables
- Anthropic Messages API
使用 Codex CLI 的开发者可参考 Codex CLI 中转 API 配置,两类命令行工具的验证思路一致。
常见问题
Claude Code 官方支持 LLM gateway 吗?
支持。Claude Code 官方文档给出了 Anthropic Messages 格式网关的协议、鉴权、模型发现与连接方法;接入时仍要按目标网关逐项验证。
ANTHROPIC_AUTH_TOKEN 和 ANTHROPIC_API_KEY 怎么选?
前者发送 Authorization: Bearer,后者发送 x-api-key。应与网关实际接受的鉴权头一致,并清理优先级更高的冲突凭据。
为什么 shell 里能用,background agent 里却失败?
只在 shell export 的变量不一定可靠传给 supervisor 管理的后台代理;团队环境更适合把所需 env 放进受控的 Claude Code settings,并用 /status 核验。
为什么 /model 里没有网关模型?
模型发现默认需要显式启用,并要求网关正确响应 /v1/models。还应检查超时、重定向、模型 ID 过滤与静态模型映射。
Claude Code 中转失败怎样回退官方端点?
停止新任务,取消在途工具调用,移除网关 Base URL 与凭据,在干净终端恢复已验证的官方配置,再跑文本、流式、工具和错误四组冒烟测试。
模型名称、价格与可用性会变化,请以 GPTZZZ 控制台的实时信息为准。

