什麼是 TUN 模式?虛擬網卡代理的工作原理

TUN(Tunnel,隧道)是作業系統核心提供的一種虛擬網路裝置。當你在 Clash Verge Rev 中開啟 TUN 模式後,系統會在本地建立一張虛擬網卡(Mihomo 核心通常將其命名為 Mihomo 或 macOS 上的 utun),同時向作業系統注入路由規則,將所有出站流量透過這張虛擬網卡轉送給 Clash 核心處理。

與傳統的 HTTP 代理或 SOCKS5 代理不同,TUN 模式工作在網路層(OSI 第三層),它不依賴應用程式是否「遵守」作業系統的代理設定。只要資料封包離開本機,就會被虛擬網卡攔截,進入 Clash 的規則引擎進行分流——本地 IP 直連,境外 IP 走代理節點。

ⓘ 核心優勢
對於那些不支援代理設定的原生應用程式(如部分遊戲客戶端、命令列工具、UDP 服務),TUN 模式同樣有效,因為流量在網路層面已被統一劫持,應用層的代理感知與否不再重要。

TUN 模式 vs 系統代理:核心差異對比

在開啟 TUN 模式之前,你需要了解它與普通系統代理(HTTP/SOCKS)的本質區別。很多使用者開啟了系統代理後仍發現部分流量「跑漏」,根本原因就在於系統代理的局限性。

對比維度 系統代理(HTTP/SOCKS) TUN 模式
工作層級 應用層(第 7 層) 網路層(第 3 層)
TCP 流量 僅支援遵守代理設定的應用 全部捕獲,無一例外
UDP 流量 通常不支援 完整支援(遊戲/DNS/即時通訊)
原生應用繞過 繞過系統代理的應用流量丟失 無法繞過,所有流量統一處理
配置複雜度 簡單,無需額外權限 需要管理員 / root 權限,首次開啟需授權

簡單來說:如果你只是偶爾訪問某個網站,系統代理已經足夠;但如果你希望所有流量——包括 DNS 查詢、遊戲 UDP 封包、不走系統代理的 IDE 外掛和 Git 客戶端——都能被 Clash 統一管理,那就需要 TUN 模式。

開啟 TUN 模式前的準備工作

版本確認

TUN 模式由 Mihomo 核心提供支援,Clash Verge Rev 1.7.x 及以上版本已內建完整的 TUN 實作,建議使用最新版本以獲得最佳相容性和效能表現。低版本或舊版 Clash Premium 的 TUN 支援不夠穩定,遇到問題時優先升級核心。

系統權限

  • Windows:必須以管理員身分執行 Clash Verge Rev。右鍵圖示選擇「以系統管理員身分執行」,或在設定中開啟「以管理員身分啟動」選項。
  • macOS:首次開啟 TUN 模式時,系統會彈出授權視窗,要求安裝系統延伸功能(Network Extension)。輸入帳號密碼確認即可,操作僅需一次。
  • Linux:需要 CAP_NET_ADMIN 權限,或以 root 身分執行。

備份配置檔案

在修改任何系統級網路設定前,強烈建議先在 Clash Verge Rev 的配置管理介面匯出並備份目前的 config.yaml。TUN 模式涉及系統路由表變更,一旦配置有誤可能導致短暫的網路中斷,備份可以讓你快速回滾。

如何在 Clash Verge Rev 中開啟 TUN 模式

完成準備工作後,按照以下步驟操作:

  1. 開啟 Clash Verge Rev,進入「設定」頁面——在左側導覽列點擊齒輪圖示,或使用快捷鍵 Ctrl/Cmd + ,
  2. 找到「TUN 模式」開關——在「系統代理」區塊下方,通常有單獨的「TUN 模式」切換按鈕。將其開啟。
  3. 確認系統權限彈窗——macOS 會彈出系統延伸功能安裝請求,點擊「允許」並輸入密碼;Windows 如彈出 UAC 提示,點擊「是」。
  4. 驗證虛擬網卡建立成功——在 Windows 的「網路連線」中應出現名為 Clash Mihomo 的虛擬介面卡;macOS 終端機執行 ifconfig | grep utun 可以看到新增的 utun 介面。
  5. 檢查代理分流是否正常——訪問一個常用的境外網站,同時訪問本地網站,確認兩者均能正常訪問,且不互相影響延遲。
⚠ 注意
TUN 模式開啟後,關閉系統代理可以減少雙重代理的效能損耗。兩者同時開啟時,部分流量可能經過兩次代理處理,造成不必要的延遲。

DNS 劫持與防洩漏配置詳解

TUN 模式下,DNS 配置是成敗的關鍵。如果 DNS 查詢繞過了 Clash 直接訪問 ISP 的 DNS 伺服器,則:一方面 ISP 可以記錄你的域名查詢記錄;另一方面,取得的 IP 可能是未被污染的境外 IP,但因為 GEOIP 規則誤判為直連,導致訪問失敗。

推薦的 DNS 配置區塊

在你的 config.yaml 中,DNS 配置區塊建議如下:

dns:
  enable: true
  listen: 0.0.0.0:1053
  ipv6: false              # Disable IPv6 DNS to prevent direct leaks
  enhanced-mode: fake-ip   # Recommended: fake-ip prevents real DNS from leaking
  fake-ip-range: 198.18.0.1/16
  fake-ip-filter:
    - '*.lan'
    - 'localhost.ptlogin2.qq.com'
  default-nameserver:
    - 114.114.114.114       # Bootstrap DNS for resolving nameservers below
    - 8.8.8.8
  nameserver:
    - https://doh.pub/dns-query          # Domestic encrypted DNS
    - https://dns.alidns.com/dns-query
  fallback:
    - https://8.8.8.8/dns-query          # Fallback for overseas domains
    - https://1.1.1.1/dns-query
  fallback-filter:
    geoip: true
    geoip-code: CN
    ipcidr:
      - 240.0.0.0/4

fake-ip 模式 vs redir-host 模式

fake-ip 模式(推薦):Clash 不會真正解析域名,而是為每個請求的域名返回一個虛假的 IP(來自 fake-ip-range)。應用程式拿到這個假 IP 並向其發起連線,Clash 攔截後再根據規則決定走代理還是直連,並在代理節點處完成真實 DNS 解析。全程 ISP 看不到任何明文 DNS 查詢。

redir-host 模式:Clash 先進行 DNS 解析,獲得真實 IP 後再做規則比對。該模式下若 DNS 查詢未能走加密通道,存在洩漏風險,不推薦在 TUN 模式下單獨使用。

IPv6 直連問題與路由規則最佳化

許多使用者開啟 TUN 模式後,仍然發現部分境外網站訪問異常,原因往往出在 IPv6 流量沒有被 TUN 接管。現代家用寬頻和行動網路已經大規模部署 IPv6,如果瀏覽器優先選擇 IPv6 位址訪問目標站點,而 Clash 的 TUN 路由規則只涵蓋了 IPv4,這部分流量就會直接連出,繞過代理。

快速解決方案

  • 在 DNS 配置中停用 IPv6:將 ipv6: false,阻止 Clash 解析 AAAA 記錄,瀏覽器會自動降級使用 IPv4 位址。
  • 在系統層面停用 IPv6(更徹底):Windows 可在網卡屬性中取消 IPv6 勾選;macOS 可對活躍網卡執行 networksetup -setv6off Wi-Fi
  • 配置 TUN 的 IPv6 路由:如果需要保留 IPv6 能力,可以在 Clash 的 TUN 配置中開啟 inet6-address 並確保 IPv6 預設路由也指向虛擬網卡。
💡 建議
對於絕大多數代理使用場景,停用 IPv6 是最簡單且有效的方案。IPv6 的主要優勢在於位址空間與 P2P 通訊,透過代理訪問境外服務時,IPv4 完全足夠。

常見問題排查指南

問題 1:開啟 TUN 後本地網路(區域網路)無法訪問

TUN 模式的路由規則有時會意外覆蓋區域網段。解決方法:在規則集中明確添加區域網 IP 段直連規則,優先級置於最頂部:

rules:
  - IP-CIDR,192.168.0.0/16,DIRECT
  - IP-CIDR,10.0.0.0/8,DIRECT
  - IP-CIDR,172.16.0.0/12,DIRECT
  # ... other rules follow

問題 2:瀏覽器提示「ERR_NAME_NOT_RESOLVED」

這通常是 DNS 沒有正確接入 Clash 導致的。檢查步驟:確認 dns.enable: true;確認 DNS 監聽埠沒有被防火牆阻斷;如使用 fake-ip 模式,確認 enhanced-mode: fake-ip 已生效(可在 Clash Verge Rev 的連線面板看到 fake-ip 位址)。

問題 3:Windows 下 TUN 網卡無法建立

可能是 WinTun 驅動未正確安裝。在 Clash Verge Rev 設定中找到「服務安裝」選項,先執行「解除安裝服務」,再執行「安裝服務」,完成後以管理員權限重新啟動 Clash Verge Rev。

問題 4:macOS 升級系統後 TUN 模式失效

系統大版本更新可能重置網路延伸功能授權。前往「系統設定 → 隱私權與安全性」,找到 Clash 相關的系統延伸功能條目,點擊「允許」重新授權即可。

問題 5:遊戲延遲反而變高

遊戲 UDP 流量被 TUN 接管後,若規則集將遊戲伺服器 IP 誤判為「代理」,會增加額外延遲。解決方案:使用 GEOIP,CN,DIRECT 規則將本地伺服器直連,同時針對遊戲平台域名或 IP 段單獨添加直連規則。

選擇一款真正用得順手的 Clash 客戶端

TUN 模式的強大功能,只有在一款設計合理、持續維護的客戶端上才能充分發揮。Clash Verge Rev 是目前社群維護最活躍的桌面客戶端之一,但它並不是唯一的選擇,也有其自身的局限——比如 iOS 平台上無法使用,Android 端的配置介面對新手不夠友好,且一旦停止維護就可能出現相容性問題。

如果你正在尋找一款能涵蓋全平台、維護有保障、適合大多數使用者的 Clash 客戶端,可以考慮直接使用我們提供的版本。它基於 Mihomo 核心,內建 TUN 模式一鍵開關,無需手動編輯 YAML 配置,即可完成本文所有操作步驟;視覺化的訂閱管理讓節點更新更直觀;遇到 DNS 洩漏問題時,客戶端會在介面上直接提示並給出修復建議。

Windows、macOS、Android、iOS、Linux 全平台均有對應版本,且同步更新。你在本文中學到的每一個 TUN 模式技巧,都可以在我們的客戶端上無縫實踐。

免費下載 Clash 客戶端 →