Claude Code 代理设置:终端里怎么走代理、为什么连不上
一句话回答:Claude Code 代理设置:它读取标准的 HTTPS_PROXY / HTTP_PROXY 环境变量,填本机代理客户端的 HTTP 端口(例如 http://127.0.0.1:7890,以你客户端显示的为准),也可以写进 ~/.claude/settings.json 的 env 里;它不支持 SOCKS 代理。设置后在会话里运行 /status 看 Proxy 一行是否生效。
Claude Code 是 Anthropic 的命令行编程工具,在终端里运行。它的网络设置和浏览器不一样:浏览器读系统代理,Claude Code 读环境变量。所以很多人明明开着代理、浏览器能打开 claude.ai,终端里的 Claude Code 却一直连不上。
本页按 Anthropic 官方文档「Enterprise network configuration」(2026-10-26 查阅)整理,只写文档里写明的做法。账号与地区的要求和网页版一样,见 Claude 怎么用。
Claude Code 代理设置:环境变量
Claude Code 读取标准的代理环境变量。在启动 Claude Code 之前,在终端里执行:
export HTTPS_PROXY=http://127.0.0.1:7890
- 地址和端口填你本机代理客户端提供的 HTTP 端口或混合端口,在客户端设置里能看到;7890 只是 Clash 系客户端的常见默认值,以你自己的为准。
- 也可以用
HTTP_PROXY。小写的https_proxy、http_proxy同样有效,Claude Code 按https_proxy、HTTPS_PROXY、http_proxy、HTTP_PROXY的顺序取第一个设置了的。 - 不支持 SOCKS 代理。 官方文档写明这一点,填
socks5://地址不会生效。 - 代理地址要带
http://前缀。缺了协议前缀、Claude Code 解析不了时,会在启动时报错并指出是哪个变量。
Windows 的 PowerShell 写法是 $env:HTTPS_PROXY="http://127.0.0.1:7890",只对当前窗口有效。
不想走代理的地址,用 NO_PROXY 排除,逗号或空格分隔,例如 NO_PROXY="localhost,127.0.0.1"。
写进 settings.json,一劳永逸
每次开终端都 export 很麻烦,而且有一个坑:官方文档说明,后台运行的任务由一个独立进程承载,它只继承第一个启动它的终端的环境变量。你在 A 窗口设了代理、B 窗口没设,后台任务能不能连上就看运气。
官方建议把这些变量写进 ~/.claude/settings.json 的 env 里:
{
"env": {
"HTTPS_PROXY": "http://127.0.0.1:7890",
"NO_PROXY": "localhost,127.0.0.1"
}
}
写在这里,所有会话和后台任务都会读到。注意:环境变量只在 Claude Code 启动时读一次,改完要退出重新启动,正在运行的会话不会自动生效。
怎么确认代理生效了
两个办法,都来自官方文档:
- 会话里运行
/status:看「Proxy」一行,会显示当前使用的代理地址;地址格式不对时会标注无效并被忽略。 - 用
claude --debug启动:调试日志写在~/.claude/debug/目录下,能看到证书和代理相关的加载记录。
需要能访问的域名
如果你用分流规则而不是全局代理,规则里要让这些域名走代理。官方文档列出的主要域名:
| 域名 | 用途 |
|---|---|
api.anthropic.com | 模型请求 |
claude.ai、claude.com | claude.ai 账号登录 |
platform.claude.com | 控制台账号登录、令牌刷新(claude.ai 账号登录也需要) |
downloads.claude.ai | 原生安装程序与自动更新 |
registry.npmjs.org | 用 npm 安装 Claude Code、安装插件依赖 |
完整列表以官方文档为准。最省事的做法是给 Claude Code 用全局模式或 TUN 模式,见下一节。
另一种办法:TUN 模式
代理客户端的 TUN 模式会在系统层创建虚拟网卡,接管所有程序的流量,包括终端里的命令行工具。开了 TUN,Claude Code 不用设任何环境变量就能走代理。适合不想折腾环境变量、或者同时还要让 npm、git 等工具走代理的人。原理和开法见 TUN 模式教程。
两种办法选一种就行。同时开着 TUN 又设了 HTTPS_PROXY 也能工作,但出问题时不好判断是哪一层的原因。
Claude Code 连不上:排查顺序
- 浏览器能不能打开 claude.ai:不能的话先解决节点和地区问题,见 Claude 怎么用。注意要用日本、新加坡、美国、台湾等支持地区的节点,不要用香港。
/status里 Proxy 一行有没有值:没有,说明环境变量没传进去,改用 settings.json。- 端口对不对:在代理客户端里核对 HTTP / 混合端口,客户端有没有开启「允许局域网连接」不影响本机。
- 是不是填了 SOCKS 地址:换成 HTTP 地址。
- 改完有没有重启 Claude Code:环境变量只在启动时读取。
- 节点本身:换一个支持地区的节点再试,晚高峰卡顿时优先选专线节点。
选什么机场
Claude Code 一次会话会有大量来回请求,对延迟和稳定性比网页聊天更敏感。挑机场看三点:官网写明 AI 可用;有日本、新加坡、美国等支持地区的节点;晚高峰稳定。名单见 ChatGPT 机场推荐,用来跑 Claude Code 的节点固定一个,不要开自动切换。
同类的命令行和编辑器工具,代理设置见 Codex 代理设置 和 Cursor 代理设置。
常见问题
Claude Code 支持 SOCKS5 代理吗?
不支持。官方文档写明 Claude Code 不支持 SOCKS 代理,要用 HTTP 代理地址,例如本机代理客户端的 HTTP 或混合端口。把 ALL_PROXY 设成 socks5 地址不会生效。
代理端口填多少?
填你本机代理客户端提供的 HTTP 端口或混合端口,在客户端设置里能看到。Clash 系客户端常见的混合端口是 7890,但以你自己客户端显示的为准,填错端口 Claude Code 会连接失败。
在终端里 export 了 HTTPS_PROXY,为什么后台任务还是连不上?
官方文档说明,后台代理由一个独立的进程承载,它继承的是第一个启动它的终端的环境变量。把代理写进 ~/.claude/settings.json 的 env 里,所有会话包括后台任务都会读到。
改了代理,正在运行的会话会生效吗?
不会。官方文档说明 shell 里导出的变量只在启动时读一次,改完要退出 Claude Code 重新启动。
开了 TUN 模式还要设置 HTTPS_PROXY 吗?
一般不需要。TUN 模式在系统层接管流量,Claude Code 的请求会直接经过代理客户端。如果同时设置了 HTTPS_PROXY,流量会先发到本机代理端口,也能工作,但排查时容易混淆,二选一即可。
ChatGPT 机场推荐:本站推荐的 3 家
从 ChatGPT 机场推荐 榜单里取前 3 家,本站主推的合作品牌排在前面(已标注合作);价格以官网为准。