客户端使用 教程

规则分流与 TUN 模式:让 AI 工具和命令行走代理、国内网站直连

系统代理、规则分流、全局模式、TUN 模式分别是什么,为什么浏览器能用而 Claude Code、Codex 这类命令行工具连不上,以及怎么让 AI 工具固定走一个节点、国内服务直连。本文讲清流量走向的原理,给出 Clash 系与 sing-box 的具体做法。

作者 发布于 约 3 分钟读完

示例封面:规则分流与 TUN 模式

四个概念,一张图

流量从程序到节点,中间有两道关卡:程序愿不愿意走代理,以及客户端决定这条流量走不走节点。

概念 管什么 谁遵守
系统代理 操作系统层的代理设置 浏览器、多数桌面软件;命令行工具通常不遵守
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 官方文档列出了它需要访问的全部域名,企业网络做白名单时以官方清单为准。

排查顺序

命令行工具连不上时:

  1. 在同一个终端里 curl -I 一个海外地址,不通 → 代理没配上,回到上面两种办法。
  2. 通了但工具报“不支持该地区” → 固定节点到受支持地区。
  3. 通了但中途断 → 网络稳定性问题,见 Claude 连接不稳定的排查顺序 与 Codex 持续工作时的网络连接检查。

延伸阅读

常见问题

Windows 电脑怎么用机场?
装一个客户端:Clash Verge(推荐,Meta 内核)、v2rayN 或 sing-box。导入订阅后开启"系统代理",浏览器与多数软件就会走代理;命令行工具(如 Claude Code、Codex)需要额外设置 HTTPS_PROXY 环境变量,或者开启客户端的 TUN 模式接管全部流量。
Mac 电脑怎么用机场?
Clash Verge、ClashX Meta、sing-box、Surge(付费)都可以。导入订阅后开启系统代理即可;终端工具同样需要设置 HTTPS_PROXY 或使用 TUN 模式。Surge 是 Mac 上功能最强但价格最高的选择,普通用户 Clash Verge 就够。
机场适合程序员吗?
非常适合:GitHub、npm、Docker Hub、各类文档站和 AI 编程工具都依赖稳定出境线路。程序员的特殊需求是命令行代理(设置 HTTPS_PROXY 或 TUN 模式)和长连接稳定(Claude Code、Codex 跑长任务)。本站的 Codex 网络专题专门讲这部分。

编辑背景

本文由 机场翻翻墙编辑部 编写,最后核对于 。评测与推荐的流程见 编辑与评测方法。