这篇适合谁,读完能做到什么
如果你所在的团队已经有统一的模型网关,或者管理员打算用网关统一管理 Claude Code 的调用,这篇适合你。读完你能分清两件事:作为开发者,怎么让本机的 Claude Code 走公司网关;作为管理员,怎么推广配置、锁定出口,并弄清楚费用算在谁头上。[1]
网关是什么,和直连有什么不同
LLM 网关是组织在 Claude Code 和模型供应商之间自己运行的一层代理。开发者不再用个人的 claude.ai 账号登录,而是使用组织发放的网关凭据。[2]
Claude Code 支持任何暴露了受支持 API 格式的网关,具体有哪些格式,列在网关兼容性指南里。[1] 需要注意的是,Anthropic 不背书、不维护、也不审计第三方网关产品,并且不支持通过任何网关把 Claude Code 指向非 Claude 模型。[1]
网关能在一处统一管理几件事:按开发者或团队归集用量,不论请求由哪家供应商处理;设置预算和速率限制;记录每一次模型请求,便于合规审计。[1]
如果想在不改动开发者机器的前提下切换供应商,网关需要对外提供一个统一的 Anthropic 格式端点,不管后端是哪家供应商。代价是,网关从此成了组织自己要运维的基础设施。Claude Code 每个版本都会增加新能力,网关如果不转发这些能力,对应的功能就会失效,所以网关产品要跟着 Claude Code 一起更新。[1]
管理员怎么推广网关
推广分四步,与具体用哪款网关产品无关。[1]
- 部署网关,并把供应商凭据交给它,让它能为转发的请求完成认证。
- 给每位开发者发一份网关凭据。这样用量能归到个人,人员离职时只需吊销一份凭据。
- 通过托管设置文件(managed settings)和密钥管理工具下发配置,让每台机器都拿到基础地址和凭据。
- 让每位开发者在 Claude Code 里检查一下配置是否已经生效,把下发环节的问题提前暴露出来,免得等到真正依赖网关时才发现。[1]
如果组织还没有配置下发机制,开发者就要按连接指南自己设置环境变量。[1][2]
想让托管机器只能访问这一个网关,可以在同一个托管设置文件里把 allowedProviders 设为 ["customEndpoint"],并把网关的 ANTHROPIC_BASE_URL 写进该文件的 env 块。设置之后,Claude Code 会拒绝指向其他地址的会话,包括直连 Anthropic,或者开发者自己架的代理。这个锁定功能需要 Claude Code v2.1.285 或更高版本。[1]
如果网关是通过某个供应商专用的端点变量接入的,比如 ANTHROPIC_BEDROCK_BASE_URL,那么 allowedProviders 的条目要写明应该锁定哪个变量。[1]
订阅额度和网关计费怎么算
这是最容易搞混的一节。[1]
只要网关凭据变量或 apiKeyHelper 处于生效状态,请求就会携带这份凭据,而不再使用开发者的 claude.ai 订阅登录,订阅的用量限额也不再适用于这些请求。Claude Code 仍会在本机保存 claude.ai 登录信息,但发送网关请求时不会带上它。[1]
网关流量按 token 计费,费用记在网关所转发凭据的所有者名下。这个所有者可以是组织的 Anthropic Console 账号,也可以是网关路由到的 Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry 账号。[1]
只设置 ANTHROPIC_BASE_URL、不设置网关凭据,请求虽然会经过网关,但 claude.ai 登录仍是生效的凭据,订阅额度和计费照旧。所以只改地址、不改凭据,并不能把费用转到组织账上。[1]
如果网关会把流量转发给 Anthropic,它必须转发 Authorization 请求头,以及 anthropic-beta 里的 OAuth 能力标识。[1]
开发者怎么接入
先看管理员有没有已经配置好。在终端运行 claude:如果直接进入会话,说明配置已经下发;如果停在登录界面,说明没有下发任何网关凭据,需要自己设置。[2]
自己设置时,先向网关团队要两样东西:网关的基础地址,以及凭据。凭据放进哪个变量,取决于网关团队怎么描述它:
- 对方说是 bearer token 或 Authorization 头:用
ANTHROPIC_AUTH_TOKEN,它以Authorization: Bearer的形式发送。 - 对方说是 API key 或 x-api-key:用
ANTHROPIC_API_KEY,它以x-api-key请求头发送。 - 凭据会轮换,或者来自密钥库:用
apiKeyHelper,它会同时以两种请求头发送。
如果对方没有说明是哪一种,就先用 ANTHROPIC_AUTH_TOKEN。[2]
地址和凭据可以用 shell 的 export 设置,但只对当前终端会话有效。想让它们在所有地方都生效,就写进设置文件的 env 块,写入 ~/.claude/settings.json 后,每个项目、每个运行位置都会用到。[2]
这里有两个提醒。第一,不要把凭据写进项目的 .claude/settings.json:这个文件会被提交,并随仓库分享给每一个克隆它的人。第二,如果 shell 导出的变量和设置文件里的 env 块设置了同一个变量,以设置文件的值为准。运行 /status 可以看到当前用的是哪个基础地址、哪个凭据来源。[2]
先用 curl 验证连通性
正式打开 Claude Code 之前,先直接测试网关。发一条只生成一个 token 的请求到基础地址的 /v1/messages 路径,并带上凭据请求头。这样一旦失败,问题一定出在网关或网络上,而不是 Claude Code 的配置。[2]
返回 401 说明凭据被拒绝。反过来,即使你写的模型名网关并不认识,只要报错是针对模型名的,也能说明地址和凭据是通的:网关在拒绝模型名之前已经完成了认证。你不需要专门去找网关支持的模型来做这个测试。[2]
验证通过后,在同一个 shell 里启动 claude,发一条消息,再运行 /status。在 Status 页里,Anthropic base URL 一行应该显示你的网关地址,说明请求确实路由到了网关;Auth token 或 API key 一行显示的变量名应该是你设置的那一个,说明生效的是网关凭据,而不是 claude.ai 登录。[2]
常见问题
启动时提示网关凭据和已保存的登录同时生效。 二者只能留一个:想用已保存的登录,就取消那个变量;想用网关凭据,就运行 /logout。[2]
401 错误,提示 token 无效或无法识别。 对照上面的凭据种类表检查你用的变量是否对应。如果网关团队说的是 API key,却放进了 ANTHROPIC_AUTH_TOKEN,请求就会带错请求头。[2]
**apiKeyHelper 失败。** 这个命令只能向标准输出打印凭据本身。在 Claude Code v2.1.227 及以上版本中,如果横幅或日志行和密钥一起输出,helper 会失败。[2]
**400 错误,提到 context_management 等未知字段。** 说明网关背后的上游不接受 Claude Code 发出的预发布字段。设置 CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 可以去掉大多数预发布字段。[2]
下一步
要搭建网关本身,按照管理员推广一节的四个步骤推进;要让每台机器正确连接,就看连接指南里的配置和验证部分。两份资料的细节都以 Claude Code 官方文档为准。[1][2]
来源
- 1Other LLM gatewaysAnthropic Claude Code docs
- 2Connect Claude Code to an LLM gatewayAnthropic Claude Code docs
引用本页: Claude Code 接入 LLM 网关:统一走公司或第三方网关. TellWorld, https://www.tellworld.net/zh/practice/practice-claude-code-llm-gateway. 更新于 2026-11-14