Skip to content

规则模式、全局模式与 TUN 模式详解 ​

代理客户端的"模式"设置是影响使用体验最关键的配置之一,但很多用户对这三种模式的区别一知半解。本文从原理出发,深入讲解规则模式、全局模式和 TUN 模式的工作机制、适用场景、切换方法以及安全注意事项。


三种模式对比总览 ​

维度规则模式(Rule)全局模式(Global)TUN 模式(TUN)
工作层次应用层(L7)应用层(L7)网络层(L3)
流量覆盖按规则选择性代理所有代理感知的流量系统全部流量
国内网站直连(速度快)走代理(速度可能变慢)根据规则决定
境外网站走代理走代理根据规则决定
广告拦截支持(Reject 规则)不拦截配合规则支持
命令行工具通常不覆盖通常不覆盖覆盖(全部流量)
游戏 UDP部分支持部分支持完整支持
权限需求普通用户权限普通用户权限需要管理员权限
系统影响最小较小较大
推荐场景日常使用测试 / 特殊需求游戏加速 / 开发调试

规则模式(Rule Mode) ​

工作原理 ​

规则模式是绝大多数用户的默认推荐模式。客户端在接收到网络请求时,会逐条匹配预设的规则列表,根据匹配结果将流量分发到不同的出口:

用户请求 → 规则引擎
    ├── 匹配规则 1:DOMAIN-SUFFIX,google.com → PROXY
    ├── 匹配规则 2:DOMAIN-SUFFIX,baidu.com → DIRECT
    ├── 匹配规则 3:IP-CIDR,192.168.0.0/16 → DIRECT
    ├── 匹配规则 4:GEOIP,CN → DIRECT
    └── 最终规则:MATCH → PROXY(未匹配时的默认处理)

规则的类型 ​

规则类型示例说明
DOMAINDOMAIN,google.com,PROXY精确匹配域名
DOMAIN-SUFFIXDOMAIN-SUFFIX,netflix.com,PROXY匹配域名及所有子域名
DOMAIN-KEYWORDDOMAIN-KEYWORD,youtube,PROXY包含关键词的域名
IP-CIDRIP-CIDR,8.8.8.8/32,PROXY匹配 IP 地址段
GEOIPGEOIP,CN,DIRECT按国家/地区 IP 数据库匹配
RULE-SETRULE-SET,gfw,PROXY引用外部规则集(如 GFW 列表)
MATCHMATCH,PROXY最终兜底规则

规则模式的优势 ​

  1. 速度最优:国内流量直连,不消耗代理带宽,访问国内网站和代理前一样快
  2. 流量节省:只有需要的流量走代理,节省机场套餐流量
  3. 广告拦截:通过 Reject 策略拦截广告域名
  4. 透明感知:用户无需手动切换,国内外网站均能自动处理

什么时候规则模式可能失效? ​

  • 规则文件过期,未包含新增的境外域名
  • 某些 App 使用了非标准域名或直接使用 IP 连接
  • 企业内网地址没有加入直连规则导致内网无法访问

全局模式(Global Mode) ​

工作原理 ​

全局模式下,所有经过代理客户端的流量都会被发送到选定的代理节点,不再进行规则匹配。

用户请求 → 代理节点 → 目标服务器
(无论是 baidu.com 还是 google.com)

适用场景 ​

适合使用全局模式的情况:

  1. 调试代理连接:测试节点是否真的可用,排除规则干扰
  2. 访问特殊境内资源:极少数情况下,某些服务需要境外 IP 访问才能正常(如境外公司的国内服务器)
  3. 临时需求:偶尔需要让全部流量走某个特定地区的 IP
  4. 规则失效时的应急:规则文件损坏或不更新时,临时切换全局模式保证可用性

全局模式的缺点 ​

  • 国内网站(百度、淘宝、B 站)流量经过代理节点绕一圈,速度可能变慢
  • 大量消耗机场套餐流量(特别是看 B 站等国内视频平台)
  • 部分国内 App 可能因为 IP 地区变化出现功能异常(如地图、外卖定位)
  • 不适合长期使用

TUN 模式(TUN Mode) ​

TUN 模式的本质 ​

TUN(Network Tunnel,网络隧道)是操作系统层面的一种虚拟网络接口技术。客户端创建一个虚拟网卡,操作系统将所有网络流量路由到这个虚拟网卡,再由客户端决定如何处理。

与系统代理的根本区别 ​

系统代理(HTTP/SOCKS 代理)的工作方式:

浏览器/支持代理设置的 App → 读取系统代理设置 → 走代理
命令行工具(curl、git)→ 默认不读系统代理 → 不走代理
游戏客户端 → 通常不读系统代理 → 不走代理

TUN 模式的工作方式:

所有 App、所有进程
    ↓(操作系统层面拦截)
虚拟网卡(TUN0)
    ↓
Clash Meta / sing-box 内核
    ↓(规则判断)
代理节点 or 直连

TUN 模式在网络栈的更底层工作,不依赖应用程序是否支持代理设置。

何时应该使用 TUN 模式? ​

场景使用 TUN 的必要性
游戏加速(需要 UDP 代理)强烈推荐
git / npm / pip 等命令行工具走代理推荐
Docker 容器网络走代理推荐
企业 VPN 同时使用谨慎(可能冲突)
普通网页浏览不必要
看 Netflix / YouTube不必要(系统代理已足够)

TUN 模式的安全风险 ​

⚠️ 在开启 TUN 模式之前,请仔细了解以下风险:

风险 1:权限提升攻击面增大

TUN 模式需要管理员权限,这意味着代理客户端进程具有更高的系统权限。如果客户端软件本身存在漏洞,攻击面比普通模式更大。

缓解措施:只使用官方 GitHub 发布的客户端,不下载第三方修改版。


风险 2:DNS 请求可能绕过规则

TUN 模式下,某些操作系统的 DNS 解析机制可能与 TUN 规则引擎产生冲突,导致 DNS 请求泄露(即 DNS 查询不走代理,直接发往运营商 DNS)。

缓解措施:开启客户端的 DNS 防泄漏设置(详见后文)。


风险 3:局域网访问可能受影响

TUN 模式可能截获局域网流量,导致:

  • 无法访问局域网内的打印机、NAS
  • 局域网游戏联机出现问题
  • Chromecast / AirPlay 等本地设备发现失败

缓解措施:在 TUN 配置中将局域网 IP 段(192.168.0.0/16、10.0.0.0/8)设为直连:

yaml
# Clash Meta 配置示例
tun:
  enable: true
  stack: mixed
  dns-hijack:
    - any:53
  auto-route: true
  auto-detect-interface: true
  exclude-package:
    # 排除特定应用(Linux)

风险 4:客户端崩溃导致断网

TUN 模式修改了系统路由表,若客户端意外崩溃,路由表可能处于异常状态,导致无法上网。

缓解措施:

  • 不要在重要工作时间段首次测试 TUN 模式
  • 遇到断网时,重启客户端或重启系统即可恢复

DNS 防泄漏配置建议 ​

什么是 DNS 泄漏? ​

DNS 泄漏指的是:你虽然在使用代理,但 DNS 查询(域名解析)仍然经过你的 ISP(运营商)的 DNS 服务器,从而暴露你正在访问的域名信息。

泄漏示意:

你 → 代理(连接已加密) → 目标网站  ← 隐私保护 ✅
你 → ISP 的 DNS 服务器(明文:我要访问 google.com) ← 已泄漏 ❌

如何检测 DNS 泄漏? ​

访问以下网站检测:

  • https://dnsleaktest.com
  • https://ipleak.net

如果测试结果显示的 DNS 服务器是你的 ISP(如中国联通、中国移动),说明存在 DNS 泄漏。

Clash Meta / Clash Verge Rev 防泄漏配置 ​

在 Clash Meta 配置中,添加以下 DNS 设置:

yaml
dns:
  enable: true
  listen: 0.0.0.0:1053
  ipv6: false
  
  # 使用加密 DNS,防止泄漏
  default-nameserver:
    - 223.5.5.5  # 阿里 DNS(用于解析 DNS 服务器本身)
    - 119.29.29.29  # 腾讯 DNS
  
  # 境外域名使用境外 DNS(走代理解析)
  nameserver:
    - https://1.1.1.1/dns-query  # Cloudflare DoH
    - https://8.8.8.8/dns-query  # Google DoH
  
  # 国内域名使用国内 DNS(直连解析,速度快)
  nameserver-policy:
    "geosite:cn":
      - 223.5.5.5
      - 119.29.29.29
  
  # 增强模式:防止 DNS 污染
  enhanced-mode: fake-ip
  fake-ip-range: 198.18.0.1/16
  
  # fake-ip 过滤(局域网地址不使用 fake-ip)
  fake-ip-filter:
    - "*.lan"
    - "*.local"
    - "+.local.example.com"

Shadowrocket DNS 防泄漏配置 ​

  1. 打开 Shadowrocket → 底部「设置」
  2. 找到「DNS」选项
  3. 将主 DNS 修改为:1.1.1.1 或 8.8.8.8
  4. 开启「DNS over HTTPS」(DoH)
  5. DoH 地址填写:https://1.1.1.1/dns-query

不同 DNS 方案对比 ​

DNS 方案隐私保护速度配置难度
运营商默认 DNS❌ 无✅ 快✅ 无需配置
公共 DNS(8.8.8.8)⚠️ 一般✅ 较快✅ 简单
DoH(DNS over HTTPS)✅ 好⚠️ 稍慢⚠️ 中等
DoT(DNS over TLS)✅ 好⚠️ 稍慢⚠️ 中等
fake-ip 模式✅ 好✅ 快⚠️ 需理解原理

推荐方案:对于普通用户,使用 DoH + Cloudflare(1.1.1.1/dns-query)是最简单可靠的配置。


模式选择决策指南 ​

我应该用哪种模式?
│
├── 日常浏览网页、看视频
│   └── ✅ 规则模式(Rule)
│
├── 测试节点是否可用 / 调试问题
│   └── ✅ 全局模式(Global),测试完切回规则模式
│
├── 需要让命令行工具 / 游戏走代理
│   └── ✅ TUN 模式(开启后通常与规则模式配合使用)
│
├── 需要完全关闭代理
│   └── ✅ 直连模式(Direct)或直接关闭客户端
│
└── 不确定用哪个?
    └── ✅ 规则模式,永远是最安全的默认选项

相关教程: