这篇解决什么问题

Claude Code 有两套认证:订阅登录(Pro/Max,浏览器 OAuth 授权)和 API Key 计费(按 token 付费)。装好工具只是第一步,实际用起来最常见的三个需求是:

  1. 不走订阅登录,直接填自己的 API Key;
  2. 不直连官方端点,走中转或企业网关(国内访问、公司统一出口、用兼容 Anthropic 协议的其他模型,都算这类);
  3. 配置要在多台机器、多个项目之间可复用,而不是每次开终端都手动 export。

这三个需求分别对应三组配置方式,这篇全部走一遍。读完你能拿到:一个能明确说出”当前用的是哪个 Key、打到哪个端点”的 Claude Code 环境,以及四个配置高频坑的排查方法。

环境与版本

项目要求说明
Claude Code已安装并能启动 claude安装步骤见相关阅读的全平台安装篇【待补:实测所用版本号】
Node.js18 及以上,建议 LTS(当前主力 Node.js 22.0 系列)环境变量写在 shell 层,与 Node 版本无关
KeyAnthropic Console 创建,sk-ant- 开头;或中转服务发放的 Key两种来源,对应下文方式一/方式二
端点官方 api.anthropic.com,或你的中转地址走中转必须支持 Anthropic Messages API 格式
内存机器 8 GB 起步即可配置本身无额外开销

三种配置方式总览

场景用到的变量/文件生效范围
直连官方 API 计费ANTHROPIC_API_KEY当前终端会话
中转/网关ANTHROPIC_BASE_URL + ANTHROPIC_AUTH_TOKEN当前终端会话
长期固定~/.claude/settings.jsonenv该机器所有会话

ANTHROPIC_BASE_URLANTHROPIC_AUTH_TOKEN 是 Claude Code 官方支持的环境变量,用途就是把请求端点换掉、把凭证换掉——中转、网关、反代都靠这两个变量工作。ANTHROPIC_AUTH_TOKEN 会以 Bearer Token 的形式放进请求头,大多数网关认的就是它。

方式一:直接用 Anthropic API Key

先在 Anthropic Console 创建 Key(【待补:页面流程截图】),然后在终端里:

export ANTHROPIC_API_KEY="sk-ant-你的Key"
claude

PowerShell 的等价写法:

$env:ANTHROPIC_API_KEY = "sk-ant-你的Key"
claude

想只对当前项目生效,把变量写进项目根目录的启动脚本,或直接用方式三的 settings 文件。注意用 API Key 跑的是按量计费,会话越长、上下文越大,消耗越快,成本心里要有数。

方式二:走中转或网关

两个变量缺一不可:

export ANTHROPIC_BASE_URL="https://你的中转域名"
export ANTHROPIC_AUTH_TOKEN="中转发放的Key"
claude

如果中转背后不是 Anthropic 官方模型(比如 DeepSeek 等兼容方案),一般还要指定模型名,让请求落到中转支持的模型上:

export ANTHROPIC_MODEL="中转支持的模型名"

中转的关键前提:它必须兼容 Anthropic Messages API 的请求格式。主流网关类项目(One API 系列等)都提供 Anthropic 格式的接口地址,配置时认准”Anthropic 兼容端点”,别拿 OpenAI 格式的地址硬填。如果你要接的是 DeepSeek,具体步骤直接看接入 DeepSeek 那篇,这篇不重复。

方式三:写进 settings.json 长期生效

每次开终端都 export 一遍显然不现实。Claude Code 的用户级配置文件在 ~/.claude/settings.json(Windows 原生环境是 C:\Users你\.claude\settings.json),里面的 env 段会在每次启动时注入:

{
  "env": {
    "ANTHROPIC_BASE_URL": "https://你的中转域名",
    "ANTHROPIC_AUTH_TOKEN": "你的Key"
  }
}

配置文件有三层:~/.claude/settings.json(用户级)、项目里的 .claude/settings.json(随仓库共享)、.claude/settings.local.json(项目内个人用,官方默认不进 git)。放 Key 的原则:共享层永远不放密钥,Key 只写用户级或 .local 层。改完重开 claude 生效。

验证:确认 Key 和端点真的生效了

配置完别猜,直接查。REPL 里输 /status,会显示当前认证方式与端点信息【待补:实际输出内容】。再跑一次最小调用确认链路:

claude -p "回答一个字:好"

有回复说明 Key、端点、模型名三件事全对。想看请求实际打到了哪里,给终端加 ANTHROPIC_LOG=debug 一类的调试开关后重跑(【待补:实测可用的调试开关与输出样例】),日志里的请求域名一目了然。

常见坑

坑 1:环境变量设了,但实际还在用订阅登录

现象:设了 ANTHROPIC_API_KEY/status 里显示的却还是之前的登录账号【待补:实际输出原文】。原因:之前 /login 过,登录态存在本地配置里,和新设的环境变量并存。解法:REPL 里 /logout 清掉登录态,重开 claude 再看 /status,确认显示的是 API Key 方式。多账号混用的机器,养成”配完必查 /status”的习惯。

坑 2:Base URL 路径拼接错误,404 或连接失败

Claude Code 会在 ANTHROPIC_BASE_URL 的基础上拼接 API 路径,所以填网关地址时通常填域名根(不带 API 路径后缀);但个别中转要求带上自己的路径前缀。两种写法报错形态不一样【待补:拼错路径时的实际报错原文】。排查顺序:先去中转商文档确认”给 Claude Code 用时填哪个”,再逐字比对协议(https)、域名、路径三段。公司内网网关还要确认代理放行。

坑 3:中转通了,但一对话就报模型不存在

现象:/status 正常,一发消息就报错【待补:模型名不匹配时的报错原文】。原因:请求头里的默认模型名,中转背后没有这个模型。解法:把 ANTHROPIC_MODEL 设成中转明确支持的模型名,同时把小模型变量 ANTHROPIC_SMALL_FAST_MODEL 也对齐(Claude Code 后台任务会用小模型,只改主模型会在部分场景继续报错)。

坑 4:Key 写进了 git 仓库

把带 Key 的 export 语句写进项目里的 .bashrc.env 或共享层 settings.json,然后整个仓库推到远端——Key 就泄露了,扫描机器人抓到公开仓库里的 Key 是分钟级的事。解法:Key 只进 ~/.claude/settings.json.claude/settings.local.json;已经推出去的 Key 立即去发放方后台作废重发,删文件没有用(git 历史还在)。

最终效果

配置闭环后应该是这个状态:/status 显示的认证方式和端点与你预期一致;claude -p 最小调用有回复;换一个终端重开,配置依然生效(方式三);仓库里搜不到任何明文 Key。

Claude Code 中通过中转端点成功调用的效果

【待补:claude -p 调用成功的输出截图】

走中转想压成本的,看代理成本测算和网关选型那两篇;安装环节的问题回到全平台安装篇。

相关阅读