Claude Code 是 Anthropic 官方的命令行编程代理。国内开发者最常卡在两步:网络到 api.anthropic.com 不稳定,以及账号与支付门槛。这篇讲怎么用支持 Anthropic 协议的中转网关把它跑起来。
Claude Code 不是普通的聊天客户端,它调用的是 Anthropic 的三类接口:
POST /v1/messages —— 主对话接口,必须支持 SSE 流式POST /v1/messages/count_tokens —— 发送前估算上下文长度,决定要不要压缩历史所以一个中转网关要能跑 Claude Code,光有「OpenAI 兼容」不够,必须同时支持 Anthropic 协议和 count_tokens 端点。很多中转站只做 OpenAI 协议,接上 Claude Code 就会报 404 或直接卡住。
Claude Code 读取两个环境变量,改掉它们即可,不需要改任何代码:
export ANTHROPIC_BASE_URL=https://api.forsienna.art
export ANTHROPIC_AUTH_TOKEN=sk-你的密钥
Windows PowerShell:
$env:ANTHROPIC_BASE_URL="https://api.forsienna.art"
$env:ANTHROPIC_AUTH_TOKEN="sk-你的密钥"
建议写进 shell 配置文件(~/.zshrc 或 ~/.bashrc),避免每次开终端都要重设。
ANTHROPIC_BASE_URL 只填域名,不要带 /v1。客户端会自己拼 /v1/messages。别一上来就开 Claude Code,先用 curl 确认网关的协议层没问题:
curl https://api.forsienna.art/v1/messages \
-H "x-api-key: sk-你的密钥" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{"model":"combo:recommended-free","max_tokens":64,
"messages":[{"role":"user","content":"只回复两个字:收到"}]}'
再验证 count_tokens:
curl https://api.forsienna.art/v1/messages/count_tokens \
-H "x-api-key: sk-你的密钥" -H "Content-Type: application/json" \
-d '{"messages":[{"role":"user","content":"你好"}]}'
返回 {"input_tokens": N} 就说明这条路通了。
Claude Code 默认请求 claude-sonnet-* 之类的模型名。中转站如果没上架这些模型,需要你手动指定成站内已有的名字。免费体验区可以用:
combo:recommended-free —— 自动在多个可用模型间降级,最稳kilo-auto/free —— 单模型,适合先跑通付费模型接入后,把名字换成对应的 Claude 模型即可,客户端配置不用动。
| 现象 | 原因 | 处理 |
|---|---|---|
401 invalid x-api-key | 密钥错或没带 | 检查 ANTHROPIC_AUTH_TOKEN 是否以 sk- 开头 |
404 /v1/messages | 网关不支持 Anthropic 协议 | 换支持 /v1/messages 的中转 |
404 count_tokens | 网关没实现计数接口 | Claude Code 会在发请求前卡住,需换网关或让服务端补上 |
429 | 上游限流或免费额度用尽 | 换模型或降低并发 |
| 一直停在 “Working…” | 流式被截断 | 确认网关 SSE 没被反向代理缓冲 |
.env 并加进 .gitignore。