TUN 模式啟用方法詳解:虛擬網卡接管所有流量的原理與設定步驟

說明 TUN 模式與系統代理的根本差異:虛擬網卡如何接管未遵循代理設定的程式流量,並提供 v2rayN 與 v2rayNG 啟用 TUN 的完整步驟及常見問題。

本文速覽

適合已能使用 VMess、VLESS 或訂閱節點正常連線,但仍遇到部分程式未經代理的使用者。本文從流量接管層級開始,依序說明 v2rayN 7.x 與 v2rayNG 1.10.x 的啟用路徑、路由設定、DNS 處理、驗證方法,以及關閉後的復原步驟。

TUN 模式與系統代理的連線差異

系統代理與 TUN 模式處理的是不同層級的問題。系統代理通常只是在作業系統中寫入 HTTP 或 SOCKS 代理位址,例如 v2rayN 常見的本機 HTTP 連接埠 10809。瀏覽器、下載工具或聊天程式只有主動讀取這項設定,流量才會進入用戶端。忽略系統代理的程式、固定直連的啟動器,以及部分命令列工具,仍可能直接連線網路。

TUN 模式會建立一張虛擬網卡並調整系統路由,讓目標 IP 流量先進入虛擬介面。用戶端讀取封包後,再交由 Xray 或 v2fly 核心執行網域嗅探、DNS 解析與路由分流。應用程式不必理解 HTTP 代理,也不必另外填寫 127.0.0.1 與連接埠,因此更適合需要統一接管多個程序的情境。

應用程式發起請求 TUN 網卡擷取 還原目標網域 規則比對分流 代理或直連

「接管所有流量」不代表「所有連線都必須經過代理節點」。TUN 負責把封包交給用戶端,最後選擇代理、直連或阻擋,仍由路由規則決定。例如區域網路位址、印表機位址和中國大陸網站可以維持直連,只有符合代理規則的請求才會進入 VMess 或 VLESS 出站。接管範圍與出站策略是兩個獨立概念。

  • 系統代理:設定簡單,適合明確支援 HTTP 或 SOCKS 代理的桌面程式。
  • TUN 模式:可涵蓋不讀取系統代理的程序,並統一處理 TCP、UDP 與 DNS 請求。
  • 全域代理:是一種路由決策,表示已接管的外部流量優先使用代理出站。
  • 規則分流:依據網域、IP、連接埠或程序等條件選擇不同出站。

在 Windows 上啟用 v2rayN TUN 模式

以下步驟以 v2rayN 7.x 為基準。不同小版本的按鈕位置可能在主視窗頂端或系統匣選單中有所變化,但核心設定仍包括 TUN、路由與 DNS。首次建立虛擬網卡需要系統管理員權限;未提升權限時,介面可能顯示已切換,但記錄會出現建立介面或寫入路由失敗。

  1. 開啟 v2rayN,先更新訂閱並選擇已測試可用的節點。
  2. 進入「設定」→「參數設定」→「TUN 模式」,確認啟用 TUN 所使用的核心與堆疊選項。
  3. 儲存設定,完全結束用戶端,再透過系統的「以系統管理員身分執行」重新啟動。
  4. 在主視窗或系統匣選單開啟「TUN 模式」。等待狀態列顯示執行中,並查看記錄是否完成虛擬介面與路由初始化。
  5. 將路由模式設為規則分流,先保留區域網路直連,再測試瀏覽器和原本無法讀取系統代理的程式。

v2rayN 基本參數

版本基準
7.x
SOCKS 連接埠
10808
HTTP 連接埠
10809
權限
以系統管理員身分執行
路由方式
規則分流

本機代理連接埠用於一般系統代理;TUN 的封包由虛擬介面接管,不應將兩者視為同一個監聽入口。

TUN 建議起始設定

區域網路
直連
DNS
隨 TUN 處理
IPv4
優先驗證
UDP
依節點能力
系統代理
避免重複切換

先用最少變數確認連線路徑,再逐項加入自訂 DNS、程序規則與更細緻的網域分組。

啟動後先查看記錄,不要只看按鈕顏色。正常流程應包含建立 TUN 介面、套用路由規則,以及核心成功啟動。若記錄停在連接埠監聽階段,請檢查 10808、10809 是否被其他 v2rayN 執行個體佔用;若停在介面建立階段,則優先檢查系統管理員權限與殘留的虛擬網卡。

測試 TUN 時可以暫時關閉系統代理,以確認請求確實由虛擬網卡接管。若關閉系統代理後,瀏覽器仍能依規則連線,區域網路裝置也能直連,表示 TUN 與路由規則基本運作正常。測試結束後不要頻繁同時切換兩種接管方式,否則排查時很難判斷流量究竟從哪個入口進入。

7.x
v2rayN 設定基準
10808
常見 SOCKS 連接埠
10809
常見 HTTP 連接埠
1 張
新增虛擬網卡

判斷標準:關閉系統代理後再驗證

只在系統代理開啟時測試,無法證明 TUN 已接管流量。關閉系統代理、保留 TUN,再分別測試瀏覽器、命令列程式和區域網路位址,結果更容易定位問題。

在 Android 上設定 v2rayNG 的 VPN 接管

v2rayNG 在 Android 上透過系統 VPN 服務建立虛擬網路介面,運作層級與桌面端 TUN 接近。使用者點選連線後,系統會顯示 VPN 授權確認;授權通過後,符合接管範圍的應用程式流量會進入 v2rayNG,再由 Xray 核心依據節點設定與路由規則處理。

以 v2rayNG 1.10.x 為設定基準,先匯入訂閱並完成節點延遲測試。進入「設定」→「VPN 設定」,檢查 VPN 模式、應用程式代理範圍、繞過區域網路與本機 DNS 相關選項。返回主介面選擇節點後點選連線,首次執行時接受系統 VPN 連線要求。

  1. 在「訂閱設定」中儲存完整訂閱位址,執行更新並選擇可用節點。
  2. 進入「設定」→「VPN 設定」,保持 VPN 接管功能開啟。
  3. 需要接管整部裝置時,不要啟用僅代理指定應用程式;需要縮小範圍時,再建立應用程式清單。
  4. 開啟繞過區域網路,避免存取路由器管理頁面或區域網路服務時繞遠路。
  5. 返回主介面連線,確認狀態列出現系統 VPN 標誌,再執行 DNS 與網頁存取測試。

v2rayNG 全裝置接管

版本基準
1.10.x
執行核心
Xray
接管方式
系統 VPN
應用程式範圍
所有應用程式
區域網路
建議繞過

適合先驗證整體連線路徑,確認穩定後再縮小應用程式範圍。

依應用程式分配

入口
VPN 設定
模式
應用程式代理
選擇方式
指定或排除
DNS
跟隨核心
UDP
節點需支援

務必確認清單方向:指定應用程式與排除應用程式的結果正好相反。

如果使用 v2flyNG,接管方式同樣依賴系統 VPN 服務,但執行核心是 v2fly。訂閱中的 VMess、VLESS 與傳輸參數必須同時受到用戶端與核心支援;TUN 或 VPN 接管只會改變流量入口,不會自動改寫伺服器位址、UUID、傳輸層或 TLS 參數。

DNS、路由與 UDP 的設定重點

TUN 已成功建立但網域無法開啟,常見原因不一定是節點中斷,而是 DNS 請求仍從另一條路徑送出。應用程式先取得錯誤位址,後續連線即使進入代理也會失敗。設定時應讓網域解析與實際流量遵循相同的分流邏輯,避免系統 DNS、用戶端 DNS 與瀏覽器獨立 DNS 同時競爭。

在 v2rayN 中,進入「設定」→「參數設定」檢查 DNS 與路由設定。若使用網域規則,應保留網域資訊供核心比對;若過早只取得 IP,部分以網域為基礎的分流規則可能無法命中。啟用嗅探可以從部分 TCP 或 HTTP 流量中還原目標網域,但不能取代對所有 DNS 問題的修正。

檢查項目 正常表現 異常表現 處理方向
DNS 請求 由核心依規則解析 解析逾時或回傳無法連線的位址 統一用戶端 DNS 路徑
區域網路位址 直接存取閘道與裝置 路由器管理頁面無法開啟 加入私有位址直連規則
UDP 流量 節點與出站皆支援 語音或即時連線失敗 檢查節點的 UDP 能力
網域規則 記錄顯示預期出站 所有請求都套用預設規則 檢查順序與嗅探結果

路由規則依序比對時,應將明確條件放在預設規則之前。常見的起始順序是:私有 IP 直連、區域網路網域直連、明確需要代理的網域走代理,最後由預設規則承接未命中的請求。規則越多,越需要透過記錄確認實際命中的項目,而不是憑網頁能否開啟來推斷。

UDP 能否使用取決於應用程式、用戶端、執行核心、協定設定與伺服器能力。TUN 可以擷取 UDP 封包,但不代表選用的 VMess 或 VLESS 節點一定能完整轉送。若網頁正常、即時語音或遊戲連線異常,應單獨檢查 UDP 記錄,並使用另一個已知支援 UDP 的節點交叉測試。

設定順序:先統一 DNS,再擴充分流

首次啟用 TUN 時只保留區域網路直連與一條預設代理規則。確認 DNS、TCP 與 UDP 的基本連線路徑後,再加入網域群組、程序條件與自訂出站,能大幅減少變數。

常見故障與復原步驟

排查 TUN 故障應從「虛擬網卡是否建立」開始,再檢查路由、DNS、核心與節點。直接更換訂閱往往會跳過真正的問題。尤其用戶端異常結束後,殘留路由可能讓系統看起來完全無法連線,此時應先關閉 TUN 並完全結束用戶端。

啟用 TUN 後立即斷網怎麼辦?

先關閉 TUN 並結束 v2rayN,再重新啟用網路介面卡。接著以系統管理員身分啟動用戶端,查看記錄是否在建立介面或寫入路由時失敗;不要在斷網狀態下連續重複啟動。

瀏覽器可以使用,但某個程式仍然直連怎麼辦?

關閉系統代理,只保留 TUN 後重試,並檢查該程式是否使用獨立網路服務、固定網卡或特殊 UDP 通道。Android 端還要進入「設定」→「VPN 設定」,確認應用程式沒有被排除。

連線成功但所有網域都逾時怎麼辦?

先直接測試一個確定可連線的 IP,再檢查用戶端 DNS 記錄。關閉瀏覽器單獨設定的 DNS,統一由核心處理解析,並確認 53 連接埠的請求沒有被其他網路工具攔截。

區域網路印表機和路由器頁面無法開啟怎麼辦?

在路由設定中讓私有位址範圍與區域網路網域直連,並啟用繞過區域網路。修改後重新連線 TUN,再分別測試閘道位址與裝置位址。

關閉用戶端後網路沒有恢復怎麼辦?

確認程序已完全結束,停用後重新啟用實體網路介面卡,然後檢查系統代理是否仍指向 127.0.0.1:10809。必要時重新啟動系統,讓殘留的虛擬介面與暫存路由完成清理。

連接埠被佔用主要會影響本機 HTTP、SOCKS 或控制介面。Windows 可先在終端機查看 10808 與 10809 的監聽程序,再決定關閉舊執行個體或修改連接埠。修改連接埠後,還要同步更新系統代理設定;否則系統仍會將請求送往舊連接埠,看起來就像 TUN 或節點失效。

netstat -ano | findstr :10808
netstat -ano | findstr :10809
tasklist | findstr <PID>

執行關閉操作時,應先在用戶端內關閉 TUN,再結束程式,不要直接終止核心程序。正常關閉會撤銷暫存路由並釋放虛擬介面。若需要在 TUN 與系統代理之間切換,也應先完成一次關閉與網路驗證,再啟用另一種模式。

  1. 關閉 TUN 或 Android 系統 VPN 連線。
  2. 完全結束 v2rayN、v2rayNG 或 v2flyNG。
  3. 確認系統代理沒有殘留 127.0.0.1:10809。
  4. 測試直連網路、區域網路閘道與 DNS 解析。
  5. 重新啟動用戶端,只啟用一種接管方式進行複測。

驗證 TUN 是否真正接管流量

驗證不能只看「已連線」狀態。完整測試應涵蓋一個支援系統代理的程式、一個不讀取系統代理的程式、一個區域網路位址,以及一項 UDP 功能。四類結果可分別反映虛擬網卡接管、規則分流、區域網路繞過和 UDP 轉送是否正常。

  • 關閉系統代理,只保留 TUN,確認一般網頁仍可存取。
  • 執行原本不使用系統代理的程式,觀察核心記錄是否出現對應目標。
  • 存取路由器閘道或區域網路裝置,確認請求命中直連規則。
  • 執行 DNS 檢測,確認解析請求與代理流量採用預期路徑。
  • 測試即時語音或其他 UDP 情境,確認沒有持續逾時。

記錄是最終判斷依據。v2rayN 可從主介面的執行記錄查看入站、目標位址與出站標籤;v2rayNG 可在記錄頁面觀察連線建立與路由結果。若完全沒有出現目標請求,問題在接管範圍或系統路由;若請求出現但出站錯誤,問題在規則;若出站正確仍連線失敗,再檢查節點與目標網路。

TUN 適合解決「應用程式不遵循代理設定」這類入口問題。設定穩定後,應保留一份清楚的基準資料:用戶端版本、訂閱更新時間、目前節點、路由模式、DNS 設定與本機連接埠。後續故障一次只修改一個變數,並記錄修改前後的結果,比反覆重新安裝更容易定位問題。

下載用戶端