- 内容
- 先看地区限制、做法一:设置代理环境变量、做法二:打开 TUN 模式、其他命令行工具
- 预计阅读
- 约 3 分钟
Clash 客户端打开“系统代理”后,浏览器会走代理,但在终端里运行的 Claude Code 往往还是直连。原因是系统代理是给读取系统设置的程序用的,命令行工具一般不读它,而是看 HTTPS_PROXY 这类环境变量。
下面两种做法任选其一。Claude Code 的代理说明以官方文档 Enterprise network configuration(在新窗口打开) 为准。
先看地区限制
Anthropic 的 支持地区列表(在新窗口打开) 适用于 Claude 的应用、API 等全部产品,列表里没有的国家和地区都不受支持。2026-10-29 查看时,列表里有台湾,没有中国大陆、香港和澳门。服务是怎么判断你所在地区的,见 AI 服务怎么判断地区。
本文只讲网络需要经过代理时怎么设置,不涉及地区限制以外的问题。
做法一:设置代理环境变量
官方文档写明,Claude Code 认 HTTPS_PROXY、HTTP_PROXY、NO_PROXY 这些标准环境变量(小写也可以),但不支持 SOCKS 代理。所以代理地址要写成 http:// 开头,指向 Clash 的 HTTP 或混合端口(mihomo 的 mixed-port 同时支持 HTTP 和 SOCKS)。
1. 找到端口
- Clash Verge Rev:默认混合端口是
7897(官方源码里的默认值),改过的话以设置页里的端口为准。 - ClashX Meta:菜单栏图标里有“复制终端代理命令”,复制出来就是带端口的完整命令。
- 其他客户端:在设置里找“端口”或“混合端口”。
下面的例子都用 7897,换成你自己的端口。
2. 在启动 Claude Code 的终端里设置
macOS、Linux(bash / zsh):
export HTTPS_PROXY=http://127.0.0.1:7897
claude
Windows PowerShell:
$env:HTTPS_PROXY = "http://127.0.0.1:7897"
claude
Windows 命令提示符(cmd):
set HTTPS_PROXY=http://127.0.0.1:7897
claude
这样设置只对当前这个终端窗口有效。官方文档提醒:环境变量只在 Claude Code 启动时读取一次,已经在运行的会话要退出重开才会生效。
3. 想一直生效:写进 settings.json
官方文档说明,页面上的环境变量都可以写进 Claude Code 的设置文件 ~/.claude/settings.json 的 env 里:
{
"env": {
"HTTPS_PROXY": "http://127.0.0.1:7897"
}
}
如果文件里已经有别的设置,把 env 这一项合并进去,不要整个覆盖。官方还特别说明,后台运行的会话(--bg、claude agents 等)要用这种方式设置,只在终端里 export 可能传不到它们。
4. 确认生效
在 Claude Code 里输入 /status,Proxy 一行会显示正在使用的代理地址;地址写错、无法解析时会标为无效并被忽略。
做法二:打开 TUN 模式
TUN 模式会在系统里创建一块虚拟网卡,所有程序的流量都会先经过 Clash,包括不认环境变量的命令行工具。打开后 Claude Code 不用再设置环境变量。
各客户端里的名称不同,例如 Clash Verge Rev 叫“虚拟网卡模式”,Clash Party 叫“虚拟网卡”。TUN 是什么、和系统代理有什么区别,见 TUN 模式。
两种做法怎么选:只想让 Claude Code 走代理,用环境变量,影响范围小;终端里很多工具都要走代理,或者环境变量不起作用,用 TUN 模式。
其他命令行工具
Git、npm、pip 等工具各有自己的代理设置,见 让终端和开发工具走代理。ChatGPT、Claude 等桌面应用的代理设置见 AI 应用怎么设置代理。设置了还是不走代理,按 终端、命令行不走 Clash 代理 排查。
本页内容依据各项目的官方文档和源码整理 · 有错误?提交反馈