什么是 TUN 模式?虚拟网卡代理的工作原理

TUN(Tunnel,隧道)是操作系统内核提供的一种虚拟网络设备。当你在 Clash Verge Rev 中开启 TUN 模式后,系统会在本地创建一张虚拟网卡(Mihomo 内核通常将其命名为 Mihomo 或 macOS 上的 utun),同时向操作系统注入路由规则,将所有出站流量通过这张虚拟网卡转发给 Clash 内核处理。

与传统的 HTTP 代理或 SOCKS5 代理不同,TUN 模式工作在网络层(OSI 第三层),它不依赖应用程序是否"遵守"操作系统的代理设置。只要数据包离开本机,就会被虚拟网卡截获,进入 Clash 的规则引擎进行分流——国内 IP 直连,境外 IP 走代理节点。

ⓘ 核心优势
对于那些不支持代理设置的原生应用(如部分游戏客户端、命令行工具、UDP 服务),TUN 模式同样有效,因为流量在网络层面已经被统一劫持,应用层的代理感知与否不再重要。

TUN 模式 vs 系统代理:核心差异对比

在开启 TUN 模式之前,你需要明白它与普通系统代理(HTTP/SOCKS)的本质区别。很多用户开启了系统代理后仍发现部分流量"跑漏",根本原因就在于系统代理的局限性。

对比维度 系统代理(HTTP/SOCKS) TUN 模式
工作层级 应用层(第 7 层) 网络层(第 3 层)
TCP 流量 仅支持遵守代理设置的应用 全部捕获,无一例外
UDP 流量 通常不支持 完整支持(游戏/DNS/实时通信)
原生应用绕过 绕过系统代理的应用流量丢失 无法绕过,所有流量统一处理
配置复杂度 简单,无需额外权限 需要管理员 / root 权限,首次开启需授权

简单来说:如果你只是偶尔访问某个网站,系统代理已经够用;但如果你希望所有流量——包括 DNS 查询、游戏 UDP 包、不走系统代理的 IDE 插件和 Git 客户端——都能被 Clash 统一管理,那就需要 TUN 模式。

开启 TUN 模式前的准备工作

版本确认

TUN 模式由 Mihomo 内核提供支持,Clash Verge Rev 1.7.x 及以上版本已内置完整的 TUN 实现,建议使用最新版本以获得最佳兼容性和性能表现。低版本或旧版 Clash Premium 的 TUN 支持不够稳定,遇到问题时优先升级内核。

系统权限

  • Windows:必须以管理员身份运行 Clash Verge Rev。右键图标选择"以管理员身份运行",或在设置中开启"以管理员身份启动"选项。
  • macOS:首次开启 TUN 模式时,系统会弹出授权弹窗,要求安装系统扩展(Network Extension)。输入账户密码确认即可,操作仅需一次。
  • Linux:需要 CAP_NET_ADMIN 权限,或以 root 身份运行。

备份配置文件

在修改任何系统级网络设置前,强烈建议先在 Clash Verge Rev 的配置管理界面导出并备份当前的 config.yaml。TUN 模式涉及系统路由表变更,一旦配置有误可能导致短暂的网络中断,备份可以让你快速回滚。

如何在 Clash Verge Rev 中开启 TUN 模式

完成准备工作后,按照以下步骤操作:

  1. 打开 Clash Verge Rev,进入"设置"页面——在左侧导航栏点击齿轮图标,或使用快捷键 Ctrl/Cmd + ,
  2. 找到"TUN 模式"开关——在"系统代理"区块下方,通常有单独的"TUN 模式"切换按钮。将其打开。
  3. 确认系统权限弹窗——macOS 会弹出系统扩展安装请求,点击"允许"并输入密码;Windows 如弹出 UAC 提示,点击"是"。
  4. 验证虚拟网卡创建成功——在 Windows 的"网络连接"中应出现名为 Clash Mihomo 的虚拟适配器;macOS 终端运行 ifconfig | grep utun 可以看到新增的 utun 接口。
  5. 检查代理分流是否正常——访问一个常用的境外网站,同时访问国内网站,确认两者均能正常访问,且不互相影响延迟。
⚠ 注意
TUN 模式开启后,关闭系统代理可以减少双重代理的性能损耗。两者同时开启时,部分流量可能经过两次代理处理,造成不必要的延迟。

DNS 劫持与防泄漏配置详解

TUN 模式下,DNS 配置是成败的关键。如果 DNS 查询绕过了 Clash 直接访问 ISP 的 DNS 服务器,则:一方面 ISP 可以记录你的域名查询记录;另一方面,获取到的 IP 可能是未被污染的境外 IP,但因为 GEOIP 规则误判为直连,导致访问失败。

推荐的 DNS 配置块

在你的 config.yaml 中,DNS 配置块建议如下:

dns:
  enable: true
  listen: 0.0.0.0:1053
  ipv6: false              # Disable IPv6 DNS to prevent direct leaks
  enhanced-mode: fake-ip   # Recommended: fake-ip prevents real DNS from leaking
  fake-ip-range: 198.18.0.1/16
  fake-ip-filter:
    - '*.lan'
    - 'localhost.ptlogin2.qq.com'
  default-nameserver:
    - 114.114.114.114       # Bootstrap DNS for resolving nameservers below
    - 8.8.8.8
  nameserver:
    - https://doh.pub/dns-query          # Domestic encrypted DNS
    - https://dns.alidns.com/dns-query
  fallback:
    - https://8.8.8.8/dns-query          # Fallback for overseas domains
    - https://1.1.1.1/dns-query
  fallback-filter:
    geoip: true
    geoip-code: CN
    ipcidr:
      - 240.0.0.0/4

fake-ip 模式 vs redir-host 模式

fake-ip 模式(推荐):Clash 不会真正解析域名,而是为每个请求的域名返回一个虚假的 IP(来自 fake-ip-range)。应用程序拿到这个假 IP 并向其发起连接,Clash 截获后再根据规则决定走代理还是直连,并在代理节点处完成真实 DNS 解析。全程 ISP 看不到任何明文 DNS 查询。

redir-host 模式:Clash 先进行 DNS 解析,获得真实 IP 后再做规则匹配。该模式下若 DNS 查询未能走加密通道,存在泄漏风险,不推荐在 TUN 模式下单独使用。

IPv6 直连问题与路由规则优化

许多用户开启 TUN 模式后,仍然发现部分境外网站访问异常,原因往往出在 IPv6 流量没有被 TUN 接管。现代家庭宽带和移动网络已经大规模部署 IPv6,如果浏览器优先选择 IPv6 地址访问目标站点,而 Clash 的 TUN 路由规则只覆盖了 IPv4,这部分流量就会直接连出,绕过代理。

快速解决方案

  • 在 DNS 配置中禁用 IPv6:将 ipv6: false,阻止 Clash 解析 AAAA 记录,浏览器会自动降级使用 IPv4 地址。
  • 在系统层面禁用 IPv6(更彻底):Windows 可在网卡属性中取消 IPv6 勾选;macOS 可对活跃网卡执行 networksetup -setv6off Wi-Fi
  • 配置 TUN 的 IPv6 路由:如果需要保留 IPv6 能力,可以在 Clash 的 TUN 配置中开启 inet6-address 并确保 IPv6 默认路由也指向虚拟网卡。
💡 建议
对于绝大多数代理使用场景,禁用 IPv6 是最简单且有效的方案。IPv6 的主要优势在于地址空间与 P2P 通信,通过代理访问境外服务时,IPv4 完全够用。

常见问题排查指南

问题 1:开启 TUN 后本地网络(局域网)无法访问

TUN 模式的路由规则有时会意外覆盖局域网段。解决方法:在规则集中明确添加局域网 IP 段直连规则,优先级置于最顶部:

rules:
  - IP-CIDR,192.168.0.0/16,DIRECT
  - IP-CIDR,10.0.0.0/8,DIRECT
  - IP-CIDR,172.16.0.0/12,DIRECT
  # ... other rules follow

问题 2:浏览器提示"ERR_NAME_NOT_RESOLVED"

这通常是 DNS 没有正确接入 Clash 导致的。检查步骤:确认 dns.enable: true;确认 DNS 监听端口没有被防火墙阻断;如使用 fake-ip 模式,确认 enhanced-mode: fake-ip 已生效(可在 Clash Verge Rev 的连接面板看到 fake-ip 地址)。

问题 3:Windows 下 TUN 网卡无法创建

可能是 WinTun 驱动未正确安装。在 Clash Verge Rev 设置中找到"服务安装"选项,先执行"卸载服务",再执行"安装服务",完成后以管理员权限重启 Clash Verge Rev。

问题 4:macOS 升级系统后 TUN 模式失效

系统大版本更新可能重置网络扩展授权。前往"系统设置 → 隐私与安全性",找到 Clash 相关的系统扩展条目,点击"允许"重新授权即可。

问题 5:游戏延迟反而变高

游戏 UDP 流量被 TUN 接管后,若规则集将游戏服务器 IP 误判为"代理",会增加额外延迟。解决方案:使用 GEOIP,CN,DIRECT 规则将国内服务器直连,同时针对游戏平台域名或 IP 段单独添加直连规则。

选择一款真正用得顺手的 Clash 客户端

TUN 模式的强大功能,只有在一款设计合理、持续维护的客户端上才能充分发挥。Clash Verge Rev 是目前社区维护最活跃的桌面客户端之一,但它并不是唯一的选择,也有其自身的局限——比如 iOS 平台上无法使用,Android 端的配置界面对新手不够友好,且一旦停止维护就可能出现兼容性问题。

如果你正在寻找一款能覆盖全平台、维护有保障、适合大多数用户的 Clash 客户端,可以考虑直接使用我们提供的版本。它基于 Mihomo 内核,内置 TUN 模式一键开关,无需手动编辑 YAML 配置,即可完成本文所有操作步骤;可视化的订阅管理让节点更新更直观;遇到 DNS 泄漏问题时,客户端会在界面上直接提示并给出修复建议。

Windows、macOS、Android、iOS、Linux 全平台均有对应版本,且同步更新。你在本文中学到的每一个 TUN 模式技巧,都可以在我们的客户端上无缝实践。

免费下载 Clash 客户端 →