专题

TUN 模式是什么?和系统代理有什么区别

引言

在 ClashX Pro 的高级设置中,你会经常看到 TUN Mode(TUN 模式)和 System Proxy(系统代理)这两个选项。虽然它们都能让你在 Mac 上实现代理上网,但背后的实现机制截然不同。本文将从技术原理和实际体验两个维度,为你解析两者的本质区别。

系统代理(System Proxy):应用层的约定

系统代理是操作系统(macOS)通过设置环境变量或系统配置,告诉应用程序:“如果你要访问外网,请先连接到这个指定的端口(通常是本地的 7890 端口)”。

它的特点:

  • 依赖协作:应用程序必须遵循操作系统的建议。有些“调皮”的应用会忽略系统代理设置,直接尝试直连。
  • 局限性强:绝大多数系统代理只能处理 TCP 流量(网页浏览等),对于基于 UDP 的应用(语音通话、游戏)往往无能为力。
  • 配置繁杂:对于终端(Terminal)用户,往往需要手动 export 环境变量。

TUN 模式:网络层的霸道

TUN 是 Tunnnel(隧道)的缩写。在 TUN 模式下,ClashX Pro 会在 macOS 中创建一个虚拟网卡

它的运行机制:

当你的 Mac 发送任何网络数据时,操作系统会认为这是一个正常的网络请求,并将其丢给这个虚拟网卡。ClashX 就在网卡的另一端守着,捕获到这些数据包后,直接根据规则进行转发。

它的优势:

  • 真正的“全局”:不需要应用程序配合。只要数据包想出去,就必须经过虚拟网卡。这解决了那些不支持代理设置的顽固 App。
  • 完美兼容 UDP:不仅能处理网页,还能接管游戏、视频流、VoIP 语音等所有类型的流量。
  • 透明代理:对于终端应用来说,它们根本不知道自己正在使用代理,就像连上了一台拥有魔法的网线。

我该如何选择?

如果你只是简单的网页浏览或看视频,系统代理通常已经足够。

如果你符合以下场景,请务必开启 TUN 模式

  1. 重度终端用户:经常使用 git clonenpm installcurlbrew
  2. Mac 玩家:需要处理游戏的网络转发,尤其是那些基于 UDP 的联机游戏。
  3. 特定办公应用:某些公司内部通讯工具不支持代理,只能通过三层拦截实现接管。
  4. 极致无感体验:不想再遇到“App A 能用,App B 却报错”的尴尬情况。

总结

TUN 模式是 ClashX Pro 的核心灵魂之一,它将复杂的流量管理变成了“一键式”的透明体验。了解了它的原理,你能更好地配置自己的网络环境。

更多关于 TUN 的详细设置,请参考我们的 TUN 模式开启教程

准备好开始了吗?

前往 clashx.tech 获取 ClashX 最新版本,开始使用。

常见问题

TUN 模式的主要作用是什么?

TUN 模式的主要作用是通过虚拟网卡接管所有应用的网络层流量,实现比应用层代理更彻底的全局控制。

普通代理(系统代理)能处理 UDP 吗?

传统的系统代理(通常是 HTTP 代理)通常不能处理 UDP 流量,这也是为什么某些游戏需要 TUN 模式的原因。

开启 TUN 模式后,原来的代理设置还有效吗?

TUN 模式会在更底层的网络层工作,它会直接捕获数据包,无论应用程序原来的代理设置如何。

为什么说 TUN 模式更适合开发者?

开发者经常使用的终端工具、构建工具或 Git 命令,很多不支持读取系统代理,TUN 模式能让他们无感使用。

TUN 模式和 VPN 有什么关系?

TUN 模式在技术原理上非常接近 VPN 的虚拟网卡技术,但它是由 ClashX 内部逻辑根据配置文件进行流量分发的。

使用 TUN 模式会有网络延迟吗?

由于多了一层内核处理,会有极细微的理论延迟增加,但在实际使用中人类几乎感知不到差异。