先给结论,赶时间的直接看第三节。
国内用 Claude Code 一共三条路:官方订阅(要海外信用卡和稳定网络)、API 中转(改一个环境变量,国内直连)、换国产模型(用 GLM、DeepSeek 驱动同一个 CLI)。本文按第二条路走完整流程,从检查 Node.js 到跑通第一条命令,十来分钟。每一步都给了验证命令——不用等到最后才发现哪里错了。作者所在的 Code2AI 属于这类服务,文末有披露。
一、先看你适合哪条路
| 方案 | 要准备什么 | 月成本量级 | 卡在哪 |
|---|---|---|---|
| 官方订阅 | 海外信用卡 + 家庭 IP 的稳定网络 | $20 / $100 / $200 | 风控严,机房 IP 容易触发限制 |
| API 中转 | 一个 Key,改两个环境变量 | 按用量或包月 | 多一层中转方,要自己甄别 |
| 换国产模型 | 对应厂商的 Key | 通常更低 | Claude Code 是按 Claude 调优的,换模型有能力差异 |
这三条不冲突——同一台机器上可以随时切换,配置就是几个环境变量。下面走的是第二条。
二、装 Claude Code(两步)
1. 确认 Node.js 版本
要 18 以上:
node -v
没有或者版本太低:
- macOS:
brew install node - Ubuntu / WSL:
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - && sudo apt install -y nodejs - Windows:建议先装 WSL2 再按上面的 Ubuntu 走。原生 Windows 也能跑,但后面遇到路径和编码问题会比 WSL 多。
2. 全局安装
npm install -g @anthropic-ai/claude-code
claude --version
能打印出版本号就装好了。装不上先看是不是权限问题——Linux/macOS 上前面加 sudo,或者用 nvm 装 Node 避开全局目录权限。
三、配置:两个环境变量
Claude Code 认两个变量:请求发去哪(ANTHROPIC_BASE_URL)、用什么身份(ANTHROPIC_AUTH_TOKEN)。
临时生效(当前终端窗口):
export ANTHROPIC_BASE_URL="你的端点地址"
export ANTHROPIC_AUTH_TOKEN="你的 API Key"
Windows PowerShell:
$env:ANTHROPIC_BASE_URL = "你的端点地址"
$env:ANTHROPIC_AUTH_TOKEN = "你的 API Key"
永久生效,写进 shell 配置文件(bash 是 ~/.bashrc,zsh 是 ~/.zshrc):
echo 'export ANTHROPIC_BASE_URL="你的端点地址"' >> ~/.zshrc
echo 'export ANTHROPIC_AUTH_TOKEN="你的 API Key"' >> ~/.zshrc
source ~/.zshrc
两个可选变量,能省流量和 token:
# 关掉非必要遥测流量
export CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC="1"
# 开启工具搜索优化,减少上下文里的工具定义开销
export ENABLE_TOOL_SEARCH="true"
⚠️ ANTHROPIC_BASE_URL 只写到域名,不要带 /v1。 Claude Code 会自己补 /v1/messages,你多写一层就变成 /v1/v1/messages,请求直接被拒。这是最常见的配错,没有之一。
实测这个错长什么样(各家返回码不同,有的 400 有的 404,看路径里的重复段就能认出来):
$ curl -s -X POST https://你的端点地址/v1/v1/messages -H 'content-type: application/json' -d '{}'
{
"detail":{
"error":{
"type":"invalid_request_error",
"message":"Access to path '/v1/v1/messages' is not allowed"}}
四、跑通之前先自查(这一步别跳)
配完先验证,不然出问题分不清是网络、Key 还是配置写错了。
第一条:有哪些模型可用(不用 Key)
curl -s -o /dev/null -w "%{http_code}\n" https://你的端点地址/v1/models
返回 200 说明这个清单免 Key 可查。想看具体清单去掉 -o /dev/null:
curl -s https://你的端点地址/v1/models | python3 -m json.tool | head -30
把返回清单里的模型 ID 和你在用的 CLI 需要的模型对一遍,能对上才算真的支持。这条的意义是你在付款前就能自己确认它到底支持哪些模型,不用只信官网文案。
⚠️ 换别家域名跑这条时,返回 401 很正常——把模型清单放在鉴权后面是常见设计,不代表那家不好,只说明这一项你没法在付款前自己核对。
第二条:Key 认不认
curl -s https://你的端点地址/v1/messages \
-H "content-type: application/json" \
-H "anthropic-version: 2023-06-01" \
-H "x-api-key: $ANTHROPIC_AUTH_TOKEN" \
-d '{"model":"claude-sonnet-5","max_tokens":16,"messages":[{"role":"user","content":"hi"}]}'
三种返回,对应三种情况:
| 返回里有 | 说明 |
|---|---|
"type":"message" |
通了,可以去跑 claude 了 |
API key required |
Key 根本没传进去——变量名拼错,或者改完没 source |
API Key 无效或订阅已过期 |
传进去了但不认,去控制台确认 Key 和额度 |
第二条命令换成任何一家的域名都能跑,是通用的自查方法,不是只对某一家有效。
五、开始用
cd 你的项目目录
claude
第一次进去会让你确认工作目录,确认后就能对话了。几个常用的:
| 命令 | 干什么 |
|---|---|
/clear |
清空上下文,换个任务时用,能省不少 token |
/compact |
压缩当前对话,上下文快满时用 |
/model |
切换模型 |
claude -p "..." |
不进交互界面,直接跑一条命令拿结果 |
在项目根目录放一个 CLAUDE.md,写上项目约定(技术栈、目录结构、代码风格),Claude Code 每次会自动读——这是让它写出「像你项目里的代码」最有效的一招。
六、常见报错对照
| 现象 | 多半是什么 |
|---|---|
报错信息里路径含 /v1/v1/ |
BASE_URL 多写了 /v1(返回码各家不一,认路径里的重复段) |
API key required |
Key 没传进去,检查变量名拼写、有没有 source 配置文件 |
API Key 无效或订阅已过期 |
传进去了但不认,去控制台看 Key 和额度 |
connection timeout |
端点本身不通,先用第四节第一条命令验 |
| 命令行卡住不动 | 代理变量干扰,试试 unset http_proxy https_proxy |
claude: command not found |
npm 全局目录不在 PATH,npm config get prefix 看一下 |
七、这篇文章不能替你判断什么
- 不能判断哪家中转稳定。 延迟、并发、可用性只有真跑业务才知道,任何人在你付款前给的数字你都验不了,包括本文。
- 不能替代小额试用。 先充最小额度跑通你自己的真实工作流,再决定要不要加钱。
- 中转方能看到请求内容。 Claude Code 会把上下文里的代码发给模型端点,所以请求确实经过中转方的网关。这是这类方案的固有属性,不是某一家的问题。介意的话走官方订阅或云厂商托管。
- 中转站有跑路风险。 别一次充太多,按月充是更稳的做法。
八、条件结论
- 要最原汁原味、且有海外支付能力 → 官方订阅,别折腾中转。
- 只想赶紧跑起来、不想碰网络问题 → API 中转,就是本文这条路,改两个变量的事。
- 预算敏感、能接受能力差异 → 换国产模型(GLM、DeepSeek 等),CLI 还是 Claude Code,只换模型层。
- 企业采购、要发票和合同 → 直接找云厂商的托管服务,主体和合规是现成的,别用个人渠道。
利益披露:作者在做 Code2AI,属于上面第 2 类 API 中转服务。第四节那三条自查命令对任何一家都适用,你可以拿它去验别家,也可以拿它来推翻我这篇里的任何一句话。
FAQ
Q:国内怎么用 Claude Code?
三条路:官方订阅(要海外信用卡和稳定网络)、API 中转(改 ANTHROPIC_BASE_URL 和 ANTHROPIC_AUTH_TOKEN 两个环境变量,国内直连)、换国产模型驱动同一个 CLI。最省事的是第二条,十来分钟能跑通。
Q:配置完报 404 是怎么回事?
九成是 ANTHROPIC_BASE_URL 后面多写了 /v1。Claude Code 会自己补 /v1/messages,写重了就变成 /v1/v1/messages。去掉就好。
Q:怎么确认一家中转真的支持某个模型?
调它的 /v1/models 端点。返回 200 且能看到具体模型 ID 的,你当场就能验;返回 401 的说明这一项要 Key 才能查,只能看官方说明。
Q:环境变量设了但没生效?export 只对当前终端窗口有效,新开窗口要重设。要永久生效就写进 ~/.bashrc 或 ~/.zshrc,写完记得 source 一次。
Q:Windows 一定要装 WSL 吗?
不是必须,原生 Windows 也能跑。但路径分隔符、终端编码这些问题在 WSL 里少得多,新手建议直接 WSL2。