Claude Code 环境变量配错,额度扣光

Claude Code 明明配了代理的 BASE_URL,额度却还在往官方账号上扣,多数是残留的旧 Token 或环境变量没生效。本文给出排查步骤和检查清单。

Claude Code 环境变量配错,额度扣光

常见的环境变量配置错误有哪些?

第一种,ANTHROPIC_AUTH_TOKEN 残留。这个变量是 Anthropic 官方的 OAuth 长期令牌,优先级高于 ANTHROPIC_BASE_URLANTHROPIC_API_KEY 的组合,只要它存在且指向官方,Claude Code 会直接连官方服务器,完全忽略你配置的代理[1]。很多人是之前用过官方账号登录,切换到代理后忘了清掉这个变量,代理配置形同虚设,扣费全打到了官方账号上。

第二种,ANTHROPIC_BASE_URL 格式不对。Claude Code 要的是主机根地址,不需要 /v1 后缀,也不能带末尾斜杠,格式错了会直接报错或者请求打到错误的路径上[2][3]。

第三种,变量设在了错误的 shell 会话里。在当前终端 export 了变量,但 Claude Code 是在另一个终端窗口或新开的标签页里启动的,读不到刚设置的值。新建标签页不算重启终端,必须完整关闭窗口再打开[2]。

第四种,环境变量和 ~/.claude/settings.json 里的 env 字段同时配置,两边写的值不一样。这种情况下 shell 环境变量的优先级更高,最终生效的是 shell 里的值,容易让人误以为改了 settings.json 就会生效[3]。

额度异常消耗了,怎么一步步排查?

第一步,执行 env | grep ANTHROPIC,看当前 shell 里实际生效的所有 Anthropic 相关变量,重点检查是否有意料之外的 ANTHROPIC_AUTH_TOKEN[1]。

第二步,如果发现了不该存在的 ANTHROPIC_AUTH_TOKEN,用 unset ANTHROPIC_AUTH_TOKEN 清掉,或者从 .zshrc/.bashrc 里删掉对应的 export 行,source 一次 rc 文件不会清除已经在当前 session 生效的旧变量,必须手动 unset 或者开一个全新终端[1]。

第三步,故意把 ANTHROPIC_BASE_URL 改成一个明显不存在的地址(比如加个 does-not-exist.invalid),再跑一次请求:如果报错信息里出现了这个不存在的域名,说明 BASE_URL 确实生效了,之前的问题出在代理地址本身;如果报错信息仍然指向 api.anthropic.com,说明 BASE_URL 根本没生效,要回头查前面几种配置错误[3]。

第四步,运行 /status 或者用 claude --debug 启动,直接看当前实际使用的 Base URL 和认证方式,比自己猜测更准确[1][3]。

正确配置需要过哪几项检查?

统一用一种配置方式,不要环境变量和 settings.json 同时写,混乱时全部清空重新配置一遍,比在两处各改一点更容易出问题[3]。

ANTHROPIC_BASE_URL 只填主机根地址,不加 /v1,不带末尾斜杠[2][3]。

修改完配置后,完整关闭当前终端窗口,重新打开一个全新窗口再测试,不要用新建标签页代替[2]。

启动前用 env | grep ANTHROPIC 确认没有多余的、指向官方的 ANTHROPIC_AUTH_TOKEN 残留[1]。

配置凭证时还要注意什么?

代理的凭证(API Key)不要直接写进对话或提示词里,写进 shell 配置文件或 settings.jsonenv 字段就够了,没必要在和 Claude Code 的交互内容里出现明文密钥。

改完配置的第一次调用,建议先跑一个不涉及正式工作的小任务,确认扣费确实落在代理账户而不是官方账号上,再切回日常工作流。这一步能在真正开始高强度使用之前,就发现配置是不是生效,避免额度在没注意的情况下被悄悄扣光。

常见问题

为什么明明改了配置,重启终端后还是不生效?

大概率是新建了标签页而不是彻底关闭窗口。终端标签页共享同一个进程环境,不会重新加载 rc 文件里的变量,需要完整关闭整个终端应用再重新打开。

settings.json 和环境变量该用哪个?

建议只用一种,优先选环境变量,因为它的优先级更高、行为更可预期;如果团队里统一用 settings.json 管理,就把 shell rc 文件里的相关变量全部清空,避免两边冲突。

清空了所有变量,Claude Code 还是连官方,怎么办?

检查 ~/.claude.json 里是否残留了 OAuth 登录状态,这个文件的优先级同样高于 settings.json,如果之前用账号登录过,这里可能还留着官方的登录凭证。

参考资料

  1. .github/guides/claude-code-setup.md
  2. Claude Code BASE_URL 不生效全场景排障
  3. Claude Code 专项问题 | CCTQ-Doc