跳到主要內容

首頁 / 部落格 / 功能詳解

TUN 模式是什麼?什麼情況下才需要打開它

TUN 模式是什麼?什麼情況下才需要打開它

Clash Verge 首頁有個叫 TUN 模式 的開關,很多教學會讓你「直接打開」。但它不是越開越好——理解了原理你才知道什麼時候該開、什麼時候開了反而添亂。

先說系統代理的局限

打開「系統代理」後,Clash Verge 做的事其實很簡單:往 Windows 註冊表(或 macOS 網路偏好設定)裡寫一條「HTTP 代理指向 127.0.0.1:7897」。

問題在於——這只是一個建議,程式可以不理

哪些程式會讀系統代理設定瀏覽器(Chrome、Edge、Firefox 預設跟隨)大部分基於 Electron 的桌面應用Windows 應用商店應用(部分)命令列工具 curl 游戲用戶端 —— 大多直接走 socket,完全無視UDP 流量 —— 系統代理根本不處理
不讀系統代理的程式,你會看到「代理開著但它就是連不上」

典型的「不聽話」清單:

  • 游戲:Steam 下載、戰網、原神登入、大部分 UDP 游戲
  • 命令列curlgitpipdocker pull
  • 部分国產軟體:自帶網路庫,不讀系統設定
  • UDP 流量:系統代理只處理 HTTP/HTTPS/SOCKS,UDP 完全不管

TUN 模式做的是另一件事

TUN 不在軟體層面打招呼,而是創建一塊虛擬網路卡,然後修改系統路由表,把所有流量都往這塊網路卡上引。

兩種接管方式的層次差異系統代理在應用層設定應用程式自願遵守只覆蓋 HTTPSOCKS無需特殊權限TUN 模式在網路層接管程式無從繞過TCP 和 UDP 全覆蓋需要安裝虛擬網路卡與系統服務
TUN 是從底下截胡,程式想繞都繞不開

對程式來說,它以為自己在正常聯網,實际上封包被送進了虛擬網路卡,交給 Mihomo 核心處理,再按規則決定直連還是轉發。

TUN 模式下的資料路徑任意程式游戲、命令列、任何軟體虛擬網路卡 TUN系統路由指向這裡Mihomo 核心按 rules 判斷去向直連或節點最終出口核心自身的流量會被排除,避免死循環
因為在網路層,所以不存在「這個程式不支援代理」的說法

什麼時候該開

該開 / 不該開該開:游戲加速Steam 下載、戰網、需要 UDP 的對戰游戲該開:命令列工具git clone、npm install、docker pull 卡住時該開:某個軟體死活不走代理試過系統代理無效的情況不該開:只是刷網頁系統代理完全夠用,還省事不該開:公司電腦裝了終端管控虛擬網路卡容易和安全軟體衝突不該開:網路本身不穩TUN 下斷線感受會更明顯

一句話原則:預設只開系統代理,遇到具體某個程式不走代理時,再打開 TUN。

開啟前要知道的四件事

1. 需要一次管理員授權

TUN 需要安裝虛擬網路卡驅動(Windows 上是 wintun)和一個系統服務。首次開啟時會彈 UAC,點「是」。裝過一次之後不再重複要求。

Clash Verge 設定裡有個 服務模式,就是干這個的。如果 TUN 開關點了沒反應,先去看服務模式是否安裝成功。

2. DNS 會被接管

TUN 模式下核心會接管 DNS 查詢,通常配合 fake-ip 模式使用。這帶來兩個副作用:

  • 某些依賴本地 DNS 的內網服務可能解析不到,需要在 fake-ip-filter 裡加白名單
  • ping 測試網域時看到的是 198.18.x.x 這類假 IP,這是正常的,不代表出錯

3. 游戲不一定更快

TUN 讓游戲流量能走代理,但能走 ≠ 更快。游戲對延遲和丟包極其敏感,多繞一跳往往更差。真要用它加速,前提是你的節點本身線路品質足夠好(比如有 IEPL/IPLC 專線)。

另外,部分游戲的反作弊系統對虛擬網路卡有反應,開之前建議先查一下你玩的那款游戲的情況。

4. 關掉之後要確認路由復原

正常關閉 TUN 開關,核心會自己撤銷路由改動。但如果是強殺行程,可能留下殘留路由,表現為「關了軟體全網都上不去」。

補救:以管理員身份執行 ipconfig /flushdns,再重新啟動一次 Clash Verge 讓它接管後正常關閉;或者直接重新啟動電腦。

TUN 和系統代理能同時開嗎

能,而且很多人就是這麼用的。兩者不衝突:

  • 認系統代理的程式 → 走系統代理路徑
  • 不認的程式 → 被 TUN 在網路層兜住

不過如果你已經開了 TUN,系統代理其實是冗餘的。有些使用者會關掉系統代理只留 TUN,介面更乾淨,行為也更統一。唯一要注意的是:關掉系統代理後,某些明確設定了「使用系統代理」的軟體可能行為變化。

常見問題

Q:開了 TUN 之後區域網路內的設備訪問不了了? 檢查 rules 裡有沒有內網直連規則,正常設定應該包含:

- IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
- IP-CIDR,10.0.0.0/8,DIRECT,no-resolve
- IP-CIDR,172.16.0.0/12,DIRECT,no-resolve

Q:TUN 開關灰的,點不動? 說明服務模式沒裝好。設定 → 服務模式 → 點「安裝」,授權後再試。

Q:開了 TUN 之後網速變慢? TUN 模式下所有流量都經過核心處理,CPU 開銷比系統代理大一些。老電腦上會有感知。另外確認 stack 設定——mixedgvisor 相容性好,system 效能更高但對系統要求高一些。

小結

TUN 模式解決的是「程式不聽話」的問題,代價是需要更高權限、更多資源、更複雜的 DNS 行為。

先用系統代理,缺什麼再補 TUN——這是最省心的順序。

延伸閱讀:系統代理與 TUN 模式的實測對比連接埠設定詳解