终端代理
Claude Code 国内使用:代理怎么设
要点
问:设代理之前要先看什么?
短答:先看 Anthropic 的支持地区和服务条款,确认你的使用场景被允许。
Anthropic 公布了一份支持的国家和地区列表,页面写明没列出的国家和地区不受支持;2026-10-13 查看时,中国大陆和香港不在列表上。在不支持的地区使用,与其服务条款不符,账号可能被停用。接口返回地区不支持的报错时,原文含义见 unsupported_country_region_territory;账号被停用的情况见 Claude 封号。本站不提供规避地区限制的办法,下面只讲在允许使用的前提下,终端流量怎么经过你已有的代理、怎么确认出口。
问:Claude Code 读哪些代理变量?
短答:HTTPS_PROXY、HTTP_PROXY 和 NO_PROXY,大小写都认,不支持 SOCKS。
HTTPS_PROXY[环境变量]Claude Code 访问 Anthropic 服务时用的代理地址。① 小写 https_proxy 也认,按 https_proxy、HTTPS_PROXY、http_proxy、HTTP_PROXY 的先后,用排在前面且设了值的那个;② 地址缺 http:// 前缀时,Claude Code 会在启动时报错并指出是哪个变量。参见:NO_PROXY。
NO_PROXY[环境变量]不走代理的地址,逗号或空格分隔都行,写 * 表示全部直连。① 官方文档说明它连本机回环地址的 WebSocket 本来就不进代理,不用为此专门写;② 公司内网的地址放进来。
env 配置块[settings.json]写在 ~/.claude/settings.json 里的环境变量。① 所有会话启动时都会读到;② 后台会话只能靠它拿到代理设置,shell 里 export 的不一定传得过去。
问:具体怎么设?
短答:临时用就在终端里设变量;长期用写进 settings.json。
export HTTPS_PROXY=http://127.0.0.1:7890
export NO_PROXY=localhost,127.0.0.1
claude
$env:HTTPS_PROXY = "http://127.0.0.1:7890"
$env:NO_PROXY = "localhost,127.0.0.1"
claude
长期写法,编辑 ~/.claude/settings.json(Windows 在 %USERPROFILE%.claude\settings.json),在已有内容里加上 env 一段:
{
"env": {
"HTTPS_PROXY": "http://127.0.0.1:7890",
"NO_PROXY": "localhost,127.0.0.1"
}
}
7890 请改为你客户端里显示的 HTTP 或混合端口。变量只在启动时读一次,改完要退出 Claude Code 重开。
问:怎么确认已经走代理、出口在哪?
短答:用 /status 看代理有没有被读到,用 debug 日志看细节,再在同一终端取一次出口 IP。
- 在 Claude Code 里输入 /status,看 Proxy 一行显示的是不是你填的地址;标 invalid 说明地址写错、已被忽略。
- 需要细节时用 claude –debug 启动,日志写在 ~/.claude/debug/ 下面,以会话编号命名。
- 在同一个终端里执行
curl https://chageejichang.co/api/chukou(Windows PowerShell 5.1 写 curl.exe),返回的 IP、国家、ASN 就是这个终端经代理后的出口;第三方的 ipinfo.io/json 接口作用相同。出口用于 Claude 时该怎么读,见 Claude IP 检测。 - 在代理客户端的连接列表里找 api.anthropic.com 的连接,能看到就说明请求进了代理。
问:哪些域名要和 api.anthropic.com 走同一条路?
短答:官方列了一组 Claude Code 要访问的地址,分流规则里它们应该一起走代理,免得登录和对话从两个出口出去。
| 域名 | 用途 |
|---|---|
| api.anthropic.com | 模型请求、功能开关、遥测 |
| claude.ai、claude.com | claude.ai 账号登录 |
| platform.claude.com | Console 账号登录和令牌刷新 |
| downloads.claude.ai | 原生安装包、自动更新、插件下载 |
| registry.npmjs.org | 用 npm 安装 Claude Code、安装插件依赖 |
| github.com | 克隆插件市场和插件 |
问:Windows、macOS、Linux 有哪些差别?
短答:变量写法、配置文件路径和取出口的命令不同;WSL 里另有本机地址的问题。
| 项 | Windows | macOS | Linux |
|---|---|---|---|
| 当前终端设变量 | $env:HTTPS_PROXY = "…" |
export HTTPS_PROXY=… |
export HTTPS_PROXY=… |
| settings.json 位置 | %USERPROFILE%\.claude\settings.json |
~/.claude/settings.json |
~/.claude/settings.json |
| 取出口 IP | curl.exe | curl | curl |
| 特别注意 | 在 WSL 里运行时,127.0.0.1 指 WSL 自己,要填 Windows 主机地址 | — | — |
问:不用了怎么撤销?
短答:删掉终端变量,再把 settings.json 里 env 下的两项删掉。
unset HTTPS_PROXY NO_PROXY
Remove-Item Env:HTTPS_PROXY, Env:NO_PROXY -ErrorAction SilentlyContinue
settings.json 里删完 env 段后,重启 Claude Code,再用 /status 看 Proxy 一行已经消失。git、Codex 也要走代理时,分别见 git set proxy 和 Codex 代理。