進階設定 · 全域接管

Clash TUN 模式開啟教學:全域流量接管原理與設定方法

TUN 模式是 mihomo(Clash Meta)核心提供的全域接管方案:用戶端在系統裡建立一張虛擬網卡,把整機流量在網路層導入核心,再依規則分流。它不走應用層的系統代理,因此終端機指令、遊戲、不遵守系統代理設定的應用程式,一樣能被接管。本文依原理、對比、事前準備、各平台步驟、驗證方法、常見問題六個部分講清楚。

2026-07-24 發布 進階設定 約 9 分鐘讀完

TUN 模式是什麼:虛擬網卡與第三層接管

TUN 是作業系統提供的虛擬網路裝置,運作於網路層(第三層),進出的都是標準 IP 封包。開啟 TUN 模式後,用戶端會依序做三件事:

  1. 向系統註冊一張虛擬網卡。Windows 上多顯示為 Mihomo 或帶有 utun 字樣的介面卡,macOS 與 Linux 上則會新增一個 utun 裝置。
  2. 改寫路由表,把預設路由指向這張網卡,整機發出的 IP 封包會先落到核心手上。
  3. 核心(mihomo)在網卡上讀取封包,解析目標網域與連接埠,依設定裡的規則判斷要直連還是交給節點,最後再從實體網卡送出。

關鍵在於層級。系統代理是應用層協定,應用程式必須主動讀取並遵守系統設定才會生效;TUN 則在網路層截取封包,應用程式根本不知道代理的存在,自然無所謂遵守與否。這正是 TUN 能接管終端機指令、遊戲流量、UWP 應用程式的原因。

代價是權限:建立虛擬網卡、改寫路由表都需要系統管理員(Windows / macOS)或 root(Linux)權限,所以首次開啟時系統會跳出授權提示,屬於正常現象。

TUN 模式與系統代理的差異

對比項目系統代理TUN 模式
運作層級應用層(HTTP / SOCKS)網路層(IP 封包)
生效前提應用程式主動讀取系統代理設定不需應用程式配合,整機接管
涵蓋範圍瀏覽器及遵守設定的應用程式全部 TCP / UDP 流量
UDP 支援基本不支援支援(視節點而定)
權限要求一般使用者即可系統管理員 / root
常見盲區終端機、遊戲、UWP 應用程式與其他 VPN 類軟體搶路由

兩條經驗:日常瀏覽網頁,系統代理已經足夠,開銷最小;若需要終端機走代理、替遊戲加速、或某個應用程式死活不讀系統代理時,就開 TUN。兩者可以同時開啟,不會衝突——TUN 接管後,系統代理那條路基本上會閒置。但排查問題時建議只留一個,變數太多不好定位。

開啟前的準備:核心、權限與設定

核心必須是 mihomo

TUN 由核心實作。原版 Clash 已停止維護,TUN 支援不完整;要使用穩定的 TUN 模式,用戶端核心需為 mihomo(Clash Meta)。本站收錄的 Clash Verge Rev、Clash Nyanpasu、FlClash、Clash Plus 等皆為 mihomo 核心。

設定層面,mihomo 的 TUN 區段寫法如下。圖形化用戶端一般只需切換開關,這些欄位會由用戶端自動填寫,了解含義即可:

tun:
  enable: true
  stack: mixed
  auto-route: true
  auto-detect-interface: true
  dns-hijack:
    - any:53
  • stack:協定堆疊實作。system 走系統協定堆疊,相容性最好;gvisor 是使用者態協定堆疊,UDP 與遊戲場景更穩定;mixed 讓 TCP 走 system、UDP 走 gvisor,日常推薐使用。
  • auto-route:自動寫入路由表,接管整機流量。關閉的話網卡建立了但流量不會進來,等於沒開。
  • auto-detect-interface:自動偵測實體出口網卡,多網卡機器建議保持開啟。
  • dns-hijack:劫持發往 53 連接埠的 DNS 查詢,交由核心內建 DNS 處理,防止 DNS 洩漏導致分流判斷出錯。

DNS 建議搭配 fake-ip 模式,TUN 下分流最乾淨:

dns:
  enable: true
  enhanced-mode: fake-ip

各平台開啟 TUN 的步驟

Windows(以 Clash Verge Rev 為例)

  1. 打開設定頁,先安裝「服務模式」。它是一個常駐小幫手,裝好後 TUN 模式不需要每次都以系統管理員身分啟動用戶端。
  2. 回到設定頁,開啟「TUN 模式」開關。
  3. 系統跳出防火牆提示時選擇允許;網路連線清單裡會多出一張虛擬網卡。
  4. 不裝服務模式也能用,但每次啟動用戶端都要按右鍵選擇「以系統管理員身分執行」。

macOS

  1. 在 Clash Verge Rev 或 ClashX Meta 的設定裡開啟 TUN(部分用戶端稱為增強模式)。
  2. 首次開啟會要求輸入開機密碼,用於安裝特權輔助程式,輸入一次即可。
  3. 在終端機執行 ifconfig,能看到新增的 utun 裝置即代表開啟成功。

Linux

  1. 圖形化用戶端直接切換 TUN 開關即可;若以命令列執行 mihomo,則需 root 權限,或為執行檔授予 cap_net_admin 能力。
  2. 桌面環境若安裝了多個 VPN 工具,注意路由表只能有一個贏家,多餘的請先停用。

Android 與 iOS

  1. Android 上的 Clash 用戶端(Clash for Android、FlClash、Clash Plus)基於系統 VpnService 運作,本質上就是 TUN,沒有獨立開關。點擊啟動,系統會跳出「連線要求」,確認後狀態列會出現鑰匙圖示,即已完成全域接管。
  2. 建議把用戶端加入電池最佳化白名單,避免背景被系統清除導致斷線。
  3. iOS 同理:用戶端透過系統網路擴充功能(Packet Tunnel)接管流量,首次啟動時授權新增 VPN 設定即可。

驗證 TUN 接管是否生效

三步驟確認:

  1. 看網卡。Windows 執行 ipconfig,能找到名稱含 Mihomo 或 utun 的介面卡;macOS 與 Linux 用 ifconfigip addr 查看 utun 裝置。
  2. 用不讀系統代理的工具測出口。在終端機執行:
curl ip.sb

curl 預設不讀系統代理設定。開啟 TUN 前執行一次,會回傳本機真實 IP;開啟後再執行,則回傳節點出口 IP,說明流量已被虛擬網卡接管。這是區分「系統代理生效」與「TUN 生效」最乾脆的辦法。

  1. 看連線頁面。用戶端的連線(Connections)面板裡應能看到 curl 對應處理程序產生的連線記錄,規則鏈欄位會顯示它命中了哪條規則。

如果 curl 回傳的還是本機 IP,優先檢查 auto-route 是否開啟、路由表是否被其他 VPN 軟體改寫。

常見問題與注意事項

與其他 VPN 類軟體衝突

企業 VPN、網路遊戲加速器、WSL2 虛擬交換器都會改寫路由表。多個軟體同時搶預設路由,結果是全部都不通。同一時間只保留一個接管者。

網頁能開,終端機沒走代理

多半是 auto-route 未生效,或路由表被其他軟體改寫。先關閉其他 VPN 類工具,再重新開啟 TUN;多網卡機器請確認 auto-detect-interface 處於開啟狀態。

DNS 異常:代理連通但網域解析出錯

檢查 dns-hijack 是否設定、enhanced-mode 是否為 fake-ip;系統 DNS 被寫死成不可達位址時也會出現同樣症狀。

遊戲 UDP 不通

TUN 只是管道,UDP 能不能轉發取決於節點本身是否支援 UDP。節點支援卻仍不通,把 stack 從 system 換成 gvisor 或 mixed 再試試看。

最後一點:TUN 讓整機流量多經過一次協定堆疊,會有輕微的效能與電量開銷。不需要全域接管的場景,關掉 TUN、只留系統代理,更省電。

下載 Clash 用戶端

支援 TUN 模式的 mihomo 系用戶端,Windows、macOS、Linux、Android 各平台皆已上架,免費開源,依平台選擇下載。

下載Clash