TUN 模式是什么?和系统代理有什么区别
引言
在 ClashX Pro 的高级设置中,你会经常看到 TUN Mode(TUN 模式)和 System Proxy(系统代理)这两个选项。很多用户搜索“tun模式是什么”或“tun模式和系统代理区别”,其实是在问同一个问题:到底应该让 ClashX 在应用层代理,还是直接接管更底层的网络流量?本文从技术原理和实际体验两个维度,为你解析两者的本质区别。
一句话概括:系统代理是告诉支持代理的 App 主动走本地端口,TUN 模式是用虚拟网卡接管几乎所有网络流量。如果你只用浏览器,系统代理通常够用;如果你需要终端、游戏、UDP 或不支持代理设置的 App 也稳定走规则,就应该理解并考虑 TUN 模式。
系统代理(System Proxy):应用层的约定
系统代理是操作系统(macOS)通过设置环境变量或系统配置,告诉应用程序:“如果你要访问外网,请先连接到这个指定的端口(通常是本地的 7890 端口)”。
它的特点:
- 依赖协作:应用程序必须遵循操作系统的建议。有些“调皮”的应用会忽略系统代理设置,直接尝试直连。
- 局限性强:绝大多数系统代理只能处理 TCP 流量(网页浏览等),对于基于 UDP 的应用(语音通话、游戏)往往无能为力。
- 配置繁杂:对于终端(Terminal)用户,往往需要手动 export 环境变量。
TUN 模式:网络层的接管方式
TUN 是 Tunnnel(隧道)的缩写。在 TUN 模式下,ClashX Pro 会在 macOS 中创建一个虚拟网卡。
它的运行机制:
当你的 Mac 发送任何网络数据时,操作系统会认为这是一个正常的网络请求,并将其丢给这个虚拟网卡。ClashX 就在网卡的另一端守着,捕获到这些数据包后,直接根据规则进行转发。
它的优势:
- 真正的“全局”:不需要应用程序配合。只要数据包想出去,就必须经过虚拟网卡。这解决了那些不支持代理设置的顽固 App。
- 完美兼容 UDP:不仅能处理网页,还能接管游戏、视频流、VoIP 语音等所有类型的流量。
- 透明接管:对于终端应用来说,它们不需要单独配置代理环境变量,就能按既定规则完成网络转发。
我该如何选择?
如果你只是简单的网页浏览或看视频,系统代理通常已经足够。
如果你符合以下场景,请务必开启 TUN 模式:
- 重度终端用户:经常使用
git clone、npm install、curl或brew。 - Mac 玩家:需要处理游戏的网络转发,尤其是那些基于 UDP 的联机游戏。
- 特定办公应用:某些公司内部通讯工具不支持代理,只能通过三层拦截实现接管。
- 极致无感体验:不想再遇到“App A 能用,App B 却报错”的尴尬情况。
TUN 模式和系统代理区别速查
| 对比项 | 系统代理 | TUN 模式 |
|---|---|---|
| 工作层级 | 应用层,依赖 App 读取系统代理 | 网络层,通过虚拟网卡接管数据包 |
| 典型流量 | 浏览器、支持 HTTP/SOCKS 的客户端 | 浏览器、终端、游戏、UDP、系统服务 |
| 配置难度 | 低,适合新手先用 | 中等,需要 Helper 权限和正确 DNS 配置 |
| 出问题时 | 多是某个 App 不走代理 | 多是 DNS、虚拟网卡或规则配置异常 |
| 推荐场景 | 日常网页浏览 | 开发、游戏、全局接管、复杂分流 |
如果你准备实际开启,可以继续阅读 ClashX TUN 模式开启教程;如果你已经开启后没网,优先查看 TUN 模式没网排查清单。需要下载或更新客户端时,请前往 ClashX 主站下载页。
总结
TUN 模式是 ClashX Pro 的核心灵魂之一,它将复杂的流量管理变成了“一键式”的透明体验。了解了它的原理,你能更好地配置自己的网络环境。
更多关于 TUN 的详细设置,请参考我们的 TUN 模式开启教程。
这是 TUN 模式系列指南的一部分。查看完整指南:ClashX TUN 模式开启教程。
常见问题
TUN 模式的主要作用是通过虚拟网卡接管所有应用的网络层流量,实现比应用层代理更彻底的全局控制。
传统的系统代理(通常是 HTTP 代理)通常不能处理 UDP 流量,这也是为什么某些游戏需要 TUN 模式的原因。
TUN 模式会在更底层的网络层工作,它会直接捕获数据包,无论应用程序原来的代理设置如何。
开发者经常使用的终端工具、构建工具或 Git 命令,很多不支持读取系统代理,TUN 模式能让他们无感使用。
TUN 模式在技术原理上非常接近 VPN 的虚拟网卡技术,但它是由 ClashX 内部逻辑根据配置文件进行流量分发的。
由于多了一层内核处理,会有极细微的理论延迟增加,但在实际使用中人类几乎感知不到差异。