什么是 TUN 模式?虚拟网卡代理的工作原理
TUN(Tunnel,隧道)是操作系统内核提供的一种虚拟网络设备。当你在 Clash Verge Rev 中开启 TUN 模式后,系统会在本地创建一张虚拟网卡(Mihomo 内核通常将其命名为 Mihomo 或 macOS 上的 utun),同时向操作系统注入路由规则,将所有出站流量通过这张虚拟网卡转发给 Clash 内核处理。
与传统的 HTTP 代理或 SOCKS5 代理不同,TUN 模式工作在网络层(OSI 第三层),它不依赖应用程序是否"遵守"操作系统的代理设置。只要数据包离开本机,就会被虚拟网卡截获,进入 Clash 的规则引擎进行分流——国内 IP 直连,境外 IP 走代理节点。
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 模式
完成准备工作后,按照以下步骤操作:
-
打开 Clash Verge Rev,进入"设置"页面——在左侧导航栏点击齿轮图标,或使用快捷键
Ctrl/Cmd + ,。 - 找到"TUN 模式"开关——在"系统代理"区块下方,通常有单独的"TUN 模式"切换按钮。将其打开。
- 确认系统权限弹窗——macOS 会弹出系统扩展安装请求,点击"允许"并输入密码;Windows 如弹出 UAC 提示,点击"是"。
-
验证虚拟网卡创建成功——在 Windows 的"网络连接"中应出现名为
Clash Mihomo的虚拟适配器;macOS 终端运行ifconfig | grep utun可以看到新增的 utun 接口。 - 检查代理分流是否正常——访问一个常用的境外网站,同时访问国内网站,确认两者均能正常访问,且不互相影响延迟。
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 默认路由也指向虚拟网卡。
常见问题排查指南
问题 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 模式技巧,都可以在我们的客户端上无缝实践。