两种模式的本质区别

Clash 有两种主要的流量接管方式:系統代理TUN 模式。两者的核心区别在于"在哪个层次拦截流量"。

系統代理工作在應用程式层,依赖操作系統提供的代理設定接口,只有主动"尊重"該設定的程式才会走代理;TUN 模式工作在網路层,在操作系統網路栈的更底层创建虚拟网卡,拦截几乎所有流出的資料包,对應用程式程式完全透明。這个根本差异决定了它们各自的能力边界。

理解這一点后,選擇哪种模式就变得清晰了:轻度使用选系統代理,需要全量接管选 TUN 模式。

系統代理是什么?

系統代理(System Proxy)是操作系統内建的一套代理設定机制。Windows 透過註冊表项和「設定 → 網路 → 代理」管理,macOS 透過「系統設定 → 網路 → 代理」管理。當 Clash 開啟系統代理后,它会自動將這些設定修改为指向本地监听連接埠(預設 HTTP 代理連接埠 7890、SOCKS5 代理連接埠 7891)。

應用程式程式在发起網路请求时,如果它读取并遵循系統代理設定,请求就会先发往 Clash,由 Clash 依据規則决定直连還是转发至远端節點。

系統代理能接管哪些流量?

  • 主流浏览器(Chrome、Firefox、Safari、Edge、Arc 等),它们預設跟随系統代理設定。
  • 大部分支援代理的桌面應用程式,如 Telegram、Slack、VS Code 的扩展下載、npm/pip 等包管理器(設定后)。
  • 命令行工具,在终端中設定 http_proxy=http://127.0.0.1:7890 后即可让 curl、wget 等走代理。

系統代理的局限性

  • UDP 流量:HTTP/SOCKS5 代理协议本质上是 TCP 的,无法直接代理 UDP 資料包,导致部分游戏、DNS 请求、视频通话等走不了代理。
  • Windows UWP 應用程式:微软商店應用程式執行在独立的網路沙盒中,无法读取系統代理設定,因此 Edge 的 UWP 模式、Xbox 應用程式等預設绕开代理。
  • 不兼容代理的程式:部分應用程式出于设计或安全原因,忽略系統代理設定,直接建立連線。
  • ICMP 协议:ping 命令使用 ICMP 协议,与 TCP/UDP 無關,系統代理对其无效。

TUN 模式是什么?

TUN(TUNnel)是 Linux、macOS 和 Windows 内核均支援的虚拟網路设备接口。Clash 開啟 TUN 模式后,会在系統中创建一块名为 Meta(或 utun)的虚拟网卡,并修改路由表,將預設网关指向該虚拟网卡。

此后,系統所有出站流量都会经过這块虚拟网卡進入 Clash,由 Clash 的規則引擎决定每个資料包的去向——直连、代理或拒绝。由于拦截发生在網路栈的底层,應用程式程式完全感知不到這个过程,就像在使用普通網路一样。

Mihomo 内核实现的 TUN 模式还内置了 DNS 劫持功能,可以將系統的 DNS 请求也转发给 Clash 内置的 DNS 服務器处理,有效防止 DNS 泄漏(即 DNS 查询绕过代理直接发给運营商 DNS 服務器的問題)。

TUN 模式需要管理員(Administrator / root)權限才能创建虚拟网卡并修改路由表。Clash Verge Rev 会在首次開啟时自動请求系統授权,點擊允许即可。

詳細对比

特性 系統代理 TUN 模式
TCP 流量 ✓ 支援 ✓ 支援
UDP 流量 ✗ 不支援 ✓ 支援
ICMP (ping) ✗ 不支援 ✓ 支援
游戏流量 ✗ 通常不支援 ✓ 支援
Windows UWP 應用程式 ✗ 不支援 ✓ 支援
DNS 泄漏防护 部分 完整
需要管理員權限 不需要 需要
系統資源占用 较低 略高
設定复杂度 一键開啟 需授权,稍复杂

如何選擇?

推薦使用系統代理的场景

  • 日常网页浏览、社交應用程式、开发工具、下載包管理器依赖等以 TCP 为主的场景。
  • 不希望给代理工具授予管理員權限,注重安全边界的使用者。
  • 对性能敏感,希望减少網路栈额外开销的场景。
  • 初学者,希望操作簡單快速上手的使用者。

推薦使用 TUN 模式的场景

  • 需要代理在线游戏流量,特别是使用大量 UDP 包的 FPS、MOBA 类游戏。
  • 需要让 Windows 應用程式商店(UWP)應用程式走代理,例如 Xbox、Microsoft Store 等。
  • 希望命令行工具、Docker 容器等不支援代理設定的程式也能走規則分流。
  • 对 DNS 隐私有较高要求,希望彻底避免 DNS 泄漏的使用者。
两种模式并不互斥,可以同时開啟。Clash Verge Rev 在啟用 TUN 模式的同时,通常也会保持系統代理開啟,以最大限度兼容各类應用程式。

如何開啟 TUN 模式?

在 Clash Verge Rev 中開啟 TUN 模式的步驟如下:

  1. 點擊左側選單中的「設定」圖示,進入設定頁面。
  2. 找到「TUN 模式」选项区域,點擊开关將其開啟。
  3. 系統弹出 UAC(Windows)或密碼验证(macOS/Linux)请求,確認授权。
  4. 开关变为蓝色高亮,状态顯示为「已啟用」,即表示 TUN 模式成功執行。
  5. 此时可在「連線」頁面看到包含 UDP 的連線记录,說明 TUN 正在接管全量流量。

常见問題

開啟 TUN 后網路反而断了?這通常是因为虚拟网卡路由优先级設定問題,或防病毒軟體拦截了 Clash 的驱动安裝。尝试以管理員身份重新啟動 Clash,或临时關閉防病毒軟體后再開啟 TUN。

TUN 模式下某些應用程式仍然无法走代理?部分應用程式会將流量直接绑定到物理网卡接口而非預設路由,TUN 对這类流量同样无效。可以查看 Clash 的「連線」頁面,確認请求是否有经过处理。

如需進一步了解代理模式(規則/全局/直连)的区别,以及訂閱設定方法,请查阅幫助中心使用教學