TUN 模式是什么,和「系统代理」有什么本质区别?

很多用户第一次接触 Clash 时,默认开启的往往是「系统代理」:客户端把操作系统的 HTTP/HTTPS 代理指向本机端口,浏览器、部分桌面应用会跟随系统设置走代理。这种方式上手简单,但并不是全局接管。不少程序根本不会读取系统代理,例如部分游戏客户端、命令行工具、UWP 应用、以及某些自带网络栈的软件,它们会直连公网,于是出现「浏览器已经翻墙,终端里 curl 还是国内 IP」的经典现象。

TUN(Network Tunnel)模式则换了一条路:在操作系统里创建一个虚拟网卡(逻辑上的隧道接口),通过修改路由或结合内核转发,把符合条件的 IP 数据包导入 Clash(Mihomo 等内核)处理,再按你的规则分流或转发到代理节点。因为发生在更底层,它通常能覆盖所有走 IP 层的 TCP/UDP 流量,更接近大众口中的「全局代理」。

可以把系统代理理解成「在应用门口贴告示:请走这边」;而 TUN 更像「在小区总闸处接管管道」——只要流量要经过这张虚拟网卡对应的转发路径,就有机会被统一处理。也正因如此,TUN 对权限、驱动和路由的要求更高,配置不当也更容易出现「一开 TUN 全网上不去」的情况,下文会专门讲如何规避。

什么时候你应该优先打开 TUN?

若你仅需要在 Chrome、Edge 等浏览器中访问外网,系统代理往往足够。但遇到下列场景时,强烈建议评估 TUN:

  • 终端与开发工具gitnpmdocker pull、SSH 等默认不走系统代理,TUN 可显著减少为每个工具单独设环境变量的负担。
  • 游戏与对战平台:多数游戏流量为 UDP 且不经系统代理,需要内核层或虚拟网卡方案。
  • 不走代理端口的桌面应用:音乐、网盘、部分国产客户端等。
  • 希望与规则分流强一致:你已经用 GEOIP、DOMAIN-SUFFIX 等做了国内外分流,希望「所有 IP 包」都先经过同一套策略,而不是一半走代理、一半直连。

若你正在做订阅导入与策略组基础配置,可先对照全平台安装与配置教程把基础链路跑通,再开启 TUN,排错会更有条理。

工作原理速览:虚拟网卡、路由与内核

不同操作系统上实现细节不同,但概念相近:Clash Meta(Mihomo)在启用 tun 后,会请求系统创建 TUN 设备,并配合路由表或防火墙规则,把需要代理的子网流量导向本机用户态(或混合栈)中的代理内核。内核再根据 rules 决定直连、走哪个策略组、是否 DNS 解析等。

Windows 上常见依赖是 Wintun 等驱动;macOS 则常涉及系统扩展与「辅助功能」授权。若驱动未正确安装或权限被拒绝,虚拟网卡起不来,就会出现断网或 TUN 开关立即回弹失败。

ℹ️
与 VPN 软件并存:部分商业 VPN 也会创建虚拟网卡并改路由。同时开启两套 TUN 容易导致路由冲突。若必须共用,建议分场景启停,或查阅各自文档中的「兼容模式」说明。

开启前的检查清单

在客户端里一键打开 TUN 之前,建议确认以下几点,可省去大量无效点击:

  • 客户端已使用管理员或等价高权限(Windows 尤其关键),否则驱动安装会静默失败。
  • 配置文件语法有效:至少能正常启动内核、加载订阅与规则,否则 TUN 只是把错误放大到全机。
  • DNS 策略心里有数:TUN 常与 fake-ipredir-host 等 DNS 模式联动;若 DNS 环路或污染未处理好,会表现为「能 ping 不能上网」「只有部分域名可用」。
  • 已备份当前配置:可在修改 tun 段前复制一份 YAML,便于回滚。

配置文件中如何写 tun 段(概念示例)

具体字段会随 Mihomo 版本演进,请以你所用内核的官方文档为准。下面给出常见思路,便于与 GUI 里的选项对照理解(勿盲目整段复制到生产环境)。

# Example only — align keys with your Mihomo / client version
tun:
  enable: true
  stack: mixed          # or system / gvisor, depends on platform & performance
  auto-route: true
  strict-route: false
  dns-hijack:
    - any:53

stack 影响数据包在用户态与内核之间的处理方式:system 往往更省 CPU,但在个别环境下兼容性不同;gvisor 以用户态网络栈实现,隔离性好;mixed 尝试折中。若你不确定,可先在图形界面里使用客户端推荐的默认值,再根据延迟与 CPU 占用微调。

auto-route 为真时,由内核或客户端协助维护路由,省去手动写静态路由的麻烦;若你自行维护复杂路由表,可能需要关闭并手工编排,这属于进阶话题。

Windows:Wintun、管理员权限与 UAC

在 Windows 上,TUN 几乎总是和驱动安装绑定。安装 Clash Verge Rev、FlClash 等基于 Mihomo 的客户端时,若安装包提示需要管理员权限,请务必放行,否则 Wintun 可能未注册成功。日常使用也建议「以管理员身份运行」客户端,否则每次开机后首次打开 TUN 仍可能失败。

典型操作流程是:完成订阅导入 → 选择可用节点与规则模式 → 在设置中开启 TUN → 观察托盘或日志是否出现「TUN 启动成功」类提示。若弹出防火墙询问,需允许「专用网络」访问(按你的安全策略选择)。

⚠️
开启后整机断网?先退出 TUN 或结束客户端进程,确认网络恢复;再检查是否未以管理员运行、驱动是否被安全软件拦截、或规则里误把国内 DNS 也导向了错误出口。

macOS:辅助工具、系统扩展与隐私设置

macOS 对内核扩展与网络权限管控逐年收紧。首次启用 TUN 时,系统可能要求输入登录密码以安装「辅助工具」或批准网络扩展。若你在「系统设置 → 隐私与安全性」中看到被阻止的组件,需要手动点击「仍要允许」后重启客户端。

与 Windows 类似,建议先保证普通「系统代理」模式工作正常,再切换到 TUN。若仅 Safari 正常而部分应用异常,未必是 TUN 本身问题,也可能是该应用自带代理或证书校验;可结合日志中的连接记录逐项排除。

DNS、fake-ip 与「看似连上却打不开网页」

TUN 模式下 DNS 请求往往也会被劫持到本地,由 Clash 统一解析。若 fake-ip 与规则、嗅探(sniffer)配置不匹配,可能出现某些站点 TLS 握手失败、CDN 调度到错误地区等问题。排查时可尝试:暂时切换到更保守的 DNS 模式、在规则中为问题域名写明确策略、或更新订阅提供方的推荐配置片段。

这与「只做系统代理」时的体验差异很大:系统代理时代,部分应用仍用系统 DNS 直连解析;TUN 后所有路径被收束,你必须保证 DNS 链路整体是自洽的。

常见问题速查

Q:提示无权限或 TUN 开关自动关闭

Windows 以管理员重新运行;macOS 检查辅助工具与网络扩展授权;Linux 需具备创建 TUN 设备的能力(如加入相应用户组)。

Q:游戏延迟高或仍不走代理

确认 TUN 已真正生效且规则未把游戏服务器 IP 判为直连;部分反作弊会检测虚拟网卡,需遵守游戏服务条款,本文不提供规避检测建议。

Q:TUN 与系统代理要同时开吗?

多数场景二选一即可。同时开启并非绝对错误,但会增加理解成本;以「TUN 为主、系统代理为辅」通常只在你需要兼容个别仅认系统代理的老软件时才有意义。

写在最后

TUN 模式把 Clash 从「浏览器插件级体验」拉到了「网络栈级体验」:配置成本略高,但一旦跑稳,游戏、终端、脚本与浏览器会共享同一套规则与节点策略,长期维护成本反而更低。与仍在积极维护的 Mihomo 内核及现代 GUI 客户端搭配,你可以在安全更新与协议支持上保持同步,而不必再为「哪个应用又漏代理」反复打补丁。

若你希望从下载安装到订阅导入一步完成,可先访问我们的客户端下载页获取适配系统的安装包,再按本文顺序开启 TUN。相比零散搜集过时教程,一体化工具链能明显减少踩坑时间。→ 立即免费下载 Clash,开启流畅上网新体验