这篇解决什么问题
Claude Code 有两套认证:订阅登录(Pro/Max,浏览器 OAuth 授权)和 API Key 计费(按 token 付费)。装好工具只是第一步,实际用起来最常见的三个需求是:
- 不走订阅登录,直接填自己的 API Key;
- 不直连官方端点,走中转或企业网关(国内访问、公司统一出口、用兼容 Anthropic 协议的其他模型,都算这类);
- 配置要在多台机器、多个项目之间可复用,而不是每次开终端都手动 export。
这三个需求分别对应三组配置方式,这篇全部走一遍。读完你能拿到:一个能明确说出”当前用的是哪个 Key、打到哪个端点”的 Claude Code 环境,以及四个配置高频坑的排查方法。
环境与版本
| 项目 | 要求 | 说明 |
|---|---|---|
| Claude Code | 已安装并能启动 claude | 安装步骤见相关阅读的全平台安装篇【待补:实测所用版本号】 |
| Node.js | 18 及以上,建议 LTS(当前主力 Node.js 22.0 系列) | 环境变量写在 shell 层,与 Node 版本无关 |
| Key | Anthropic Console 创建,sk-ant- 开头;或中转服务发放的 Key | 两种来源,对应下文方式一/方式二 |
| 端点 | 官方 api.anthropic.com,或你的中转地址 | 走中转必须支持 Anthropic Messages API 格式 |
| 内存 | 机器 8 GB 起步即可 | 配置本身无额外开销 |
三种配置方式总览
| 场景 | 用到的变量/文件 | 生效范围 |
|---|---|---|
| 直连官方 API 计费 | ANTHROPIC_API_KEY | 当前终端会话 |
| 中转/网关 | ANTHROPIC_BASE_URL + ANTHROPIC_AUTH_TOKEN | 当前终端会话 |
| 长期固定 | ~/.claude/settings.json 的 env 段 | 该机器所有会话 |
ANTHROPIC_BASE_URL 和 ANTHROPIC_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 -p 调用成功的输出截图】
走中转想压成本的,看代理成本测算和网关选型那两篇;安装环节的问题回到全平台安装篇。