tun模式
传统代理(System Proxy)的痛点
Clash 的 TUN 模式是其最强大的进阶功能之一,主要用于实现真正的系统级全局流量接管。通常情况下,当你开启 Clash 的“系统代理”时,Clash 会在操作系统中设置一个 HTTP/HTTPS 或 SOCKS5 的代理地址。
- 听话的软件: 绝大多数浏览器(如 Chrome, Edge)会自动读取操作系统的代理设置,乖乖把流量交给 Clash。
- 不听话的软件: 很多应用程序完全无视系统代理设置。例如终端命令行(Git, npm, SSH)、各种网络游戏、部分开发工具(IDE)以及 Windows 的 UWP 应用。它们的流量会直接绕过 Clash 发往真实网络,导致无法连接或暴露真实 IP。
TUN 模式是如何工作的?
TUN 是 Network TUNnel(网络隧道)的缩写,它工作在 OSI 模型的网络层(Layer 3),也就是更为底层的系统级别。
当你开启 TUN 模式时,Clash 实际上执行了以下操作:
- 创建虚拟网卡: Clash 会在你的电脑上虚拟出一张网卡(类似于插了一根隐形的网线)。
- 修改路由表: 它会接管操作系统的“默认路由表”,将所有发往互联网的流量(即
0.0.0.0/0)强制引导至这张虚拟网卡。 - 底层拦截: 无论是浏览器、命令行还是游戏客户端,只要程序想联网,数据包就必须经过这层底层的虚拟网卡。此时,数据包被全面“截获”并送入 Clash 的核心引擎。
- 规则分流: Clash 拿到这些底层数据包后,再根据你配置的规则(Rule)进行判断,决定是直连(Direct)还是走代理节点(Proxy)。
TUN 模式的优缺点对比
优点:
- 真正的全局代理: 所有软件(包括游戏、终端、甚至本机的虚拟机)的流量都能被自动接管,无需再为各个软件单独配置代理。
- 完美支持 UDP: 传统代理对 UDP 协议支持不佳,而 TUN 工作在网络层,能完美处理 UDP 数据包,非常适合玩外服游戏或进行语音/视频通话。
- 解决 DNS 污染: 配合 Clash 的 Fake-IP(伪装 IP)机制,可以在最底层拦截 DNS 请求,彻底解决 DNS 泄漏和污染问题,网页秒开率更高。
缺点:
- 权限要求高: 因为涉及创建虚拟网卡和修改系统底层路由,开启 TUN 模式通常需要管理员权限(Administrator / Root)。
- 兼容性冲突: 如果你的电脑上同时运行了其他虚拟网卡软件(如其他 VPN 客户端、Docker 的某些网络模式、VMware 等),可能会发生路由表冲突,导致断网。
- 轻微性能损耗: 由于要在网络层进行数据包的抓取、拆解和重新封包,对 CPU 的消耗会略微增加,但在现代电脑上通常可以忽略不计。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Hyacinth!