四个概念,一张图
流量从程序到节点,中间有两道关卡:程序愿不愿意走代理,以及客户端决定这条流量走不走节点。
| 概念 | 管什么 | 谁遵守 |
|---|---|---|
| 系统代理 | 操作系统层的代理设置 | 浏览器、多数桌面软件;命令行工具通常不遵守 |
| TUN 模式 | 客户端建虚拟网卡接管全部流量 | 所有程序,无论是否遵守系统代理 |
| 规则分流 | 客户端按域名 / IP 决定直连还是走节点 | 所有经过客户端的流量 |
| 全局模式 | 经过客户端的流量全部走节点 | 同上 |
“浏览器能用、终端不能用”的原因就在第一行:终端里的 Claude Code、Codex、git、curl 不看系统代理设置,流量根本没进客户端。
让命令行工具走代理的两种办法
办法一:TUN 模式(推荐)
在客户端里打开 TUN 模式(Clash Verge:设置 → TUN 模式;sing-box 安卓默认就是;v2rayN:启用 Tun 模式)。虚拟网卡接管所有程序的流量,再按规则分流。命令行工具不需要任何额外设置。
注意:Windows 首次需要安装服务并授权;不要同时开两个客户端的 TUN;少数设备上 TUN 比系统代理略慢。
办法二:环境变量
不开 TUN 时,在终端里把代理地址告诉工具。端口是客户端的 HTTP / 混合端口(Clash Verge 默认 7897,v2rayN 的 HTTP 端口默认 10809,以设置页为准):
# macOS / Linux / WSL
export HTTPS_PROXY=http://127.0.0.1:7897
export HTTP_PROXY=http://127.0.0.1:7897
export NO_PROXY=localhost,127.0.0.1
# Windows PowerShell
$env:HTTPS_PROXY = "http://127.0.0.1:7897"
$env:HTTP_PROXY = "http://127.0.0.1:7897"
两点细节:
- Claude Code 不支持 SOCKS 代理,必须填
http://开头的 HTTP 端口;官方文档只认HTTPS_PROXY/HTTP_PROXY/NO_PROXY三个变量。 - 环境变量只对当前终端窗口有效,IDE 内置终端要单独设。想永久生效可以写进 shell 配置文件(
.zshrc、.bashrc)或 Windows 系统环境变量,但这会让所有命令行程序都走代理,国内镜像源可能变慢——配合NO_PROXY排除国内域名。
验证:
curl -I https://api.anthropic.com/
能返回 HTTP 头就说明终端走通了代理。
规则分流:国内直连、海外走节点
客户端的“规则模式”按一张规则表决定每条连接的去向:命中国内域名或 IP → 直连;命中海外域名 → 走节点;都没命中 → 按最后一条默认规则。机场的 Clash 订阅通常自带规则集,保持规则模式即可。
全局模式把所有流量都送出去,国内网站绕道海外再回来,变慢且浪费流量,还可能让国内平台判定异常登录。只在排查问题时临时用。
给 AI 工具单独分组、固定节点
AI 平台对出口地区敏感:节点自动切换导致地区跳变,会触发“不支持该地区”或安全验证。做法是给 AI 域名建一个专用分组,手动固定一个受支持地区的节点。
以 Clash Verge 为例,在订阅的 扩展脚本 / Merge 配置 里追加(不同版本入口名略有差异,也可以直接编辑配置文件):
proxy-groups:
- name: AI
type: select
proxies:
- 日本 IEPL 01
- 新加坡 IEPL 01
rules:
- DOMAIN-SUFFIX,anthropic.com,AI
- DOMAIN-SUFFIX,claude.ai,AI
- DOMAIN-SUFFIX,claude.com,AI
- DOMAIN-SUFFIX,openai.com,AI
- DOMAIN-SUFFIX,chatgpt.com,AI
- DOMAIN-SUFFIX,google.com,AI
把节点名换成你订阅里的实际名字。之后在代理页的 AI 组里固定选一个节点,不要选自动。很多机场的订阅已经自带类似的“AI / OpenAI”分组,有的话直接用。
sing-box 的做法相同,在配置的 outbounds 里加一个 selector 分组,route.rules 里按 domain_suffix 指向它。
该走代理的域名清单
| 工具 | 域名 |
|---|---|
| Claude / Claude Code | anthropic.com、claude.ai、claude.com、platform.claude.com |
| ChatGPT / Codex | openai.com、chatgpt.com |
| Gemini | google.com、googleapis.com |
| GitHub | github.com、githubusercontent.com |
| 包管理 | registry.npmjs.org、pypi.org、docker.io |
Claude Code 官方文档列出了它需要访问的全部域名,企业网络做白名单时以官方清单为准。
排查顺序
命令行工具连不上时:
- 在同一个终端里
curl -I一个海外地址,不通 → 代理没配上,回到上面两种办法。 - 通了但工具报“不支持该地区” → 固定节点到受支持地区。
- 通了但中途断 → 网络稳定性问题,见 Claude 连接不稳定的排查顺序 与 Codex 持续工作时的网络连接检查。
延伸阅读
- Clash Verge 完整教程:Clash Verge 使用教程
- Windows 另一选择:v2rayN 使用教程
- 长任务场景:Codex 网络专题