把 Anthropic 官方 CLI 的请求指向你的网关。核心就两个环境变量:ANTHROPIC_BASE_URL 和 ANTHROPIC_AUTH_TOKEN。
$ npm install -g @anthropic-ai/claude-code $ claude --version # 能打印版本号即安装成功
| 变量 | 填什么 | 说明 |
|---|---|---|
ANTHROPIC_BASE_URL | https://your-domain.com | 根地址,不要带 /v1。Claude Code 会自己拼 /v1/messages |
ANTHROPIC_AUTH_TOKEN | sk-xxxx | 你的网关 Key,作为 Authorization: Bearer 发送 |
ANTHROPIC_MODEL | claude-sonnet-4-5 | 可选,指定默认模型(用网关放开的模型名) |
/v1/messages。如果你写成 .../v1,实际请求会变成 .../v1/v1/messages → 404。根地址即可。
# 当前终端会话生效(关掉就没了) $ export ANTHROPIC_BASE_URL="https://your-domain.com" $ export ANTHROPIC_AUTH_TOKEN="sk-xxxxxxxxxxxxxxxx" $ claude # 直接启动,已连你的网关 # 想永久生效 → 追加到 ~/.zshrc 或 ~/.bashrc 后 source $ echo 'export ANTHROPIC_BASE_URL="https://your-domain.com"' >> ~/.zshrc $ echo 'export ANTHROPIC_AUTH_TOKEN="sk-xxxxxxxxxxxxxxxx"' >> ~/.zshrc $ source ~/.zshrc
PS> $env:ANTHROPIC_BASE_URL="https://your-domain.com" PS> $env:ANTHROPIC_AUTH_TOKEN="sk-xxxxxxxxxxxxxxxx" PS> claude # 永久(写入用户环境变量) PS> setx ANTHROPIC_BASE_URL "https://your-domain.com" PS> setx ANTHROPIC_AUTH_TOKEN "sk-xxxxxxxxxxxxxxxx"
把配置写进 ~/.claude/settings.json(Windows:%USERPROFILE%\.claude\settings.json),对所有会话持久生效,无需每次 export。
{
"env": {
"ANTHROPIC_BASE_URL": "https://your-domain.com",
"ANTHROPIC_AUTH_TOKEN": "sk-xxxxxxxxxxxxxxxx",
"ANTHROPIC_MODEL": "claude-sonnet-4-5"
}
}
$ claude ╭──────────────────────────────────────────╮ │ Claude Code │ ╰──────────────────────────────────────────╯ > 你好,报一下你现在用的模型 ... 正常回复即代表已通过 sub2api 网关转发 ✓
/v1/messages:
$ curl https://your-domain.com/v1/messages \ -H "Authorization: Bearer sk-xxxxxxxx" \ -H "anthropic-version: 2023-06-01" \ -H "content-type: application/json" \ -d '{"model":"claude-sonnet-4-5","max_tokens":64, "messages":[{"role":"user","content":"ping"}]}' {"id":"msg_...","type":"message","content":[{"type":"text","text":"pong ..."}]}
| 现象 | 原因 / 处理 |
|---|---|
404 not found | Base URL 带了 /v1。删掉,只留根地址。 |
401 / invalid api key | Key 错或已吊销;确认用的是网关 Key(sk-),不是官方 key。 |
connection refused | 地址/端口不通:检查域名解析、:8080 端口、服务器防火墙/安全组。 |
模型报 not allowed | 该 Key 所在分组没放开这个模型,去后台把模型加入分组白名单。 |
| 仍连到官方 api.anthropic.com | 环境变量没生效:新开终端、确认 echo $ANTHROPIC_BASE_URL 有值。 |