v2rayN TUN 模式設定教學:用虛擬網卡接管全域流量

了解系統代理與 TUN 模式的差異,掌握虛擬網卡接管未使用代理設定之應用程式的原理、啟用步驟及常見權限問題的處理方式。

本文速覽

瀏覽器可以連線,但遊戲或命令列工具仍直接連線時,可先確認應用程式是否遵循系統代理,再評估是否啟用 TUN。本文以 Windows 桌面版 v2rayN 為例,依序說明權限準備、啟用虛擬網卡、驗證路由及故障復原。先釐清「接管流量」與「所有流量都走代理」的差異,再透過記錄檔和系統命令確認設定,不要只看開關是否已開啟。

釐清系統代理、TUN 與全域路由

系統代理會在作業系統中登記代理伺服器位址,讓支援此設定的應用程式主動連線至本機代理入口。但它不會自動改變所有程式的網路行為:有些命令列工具會讀取環境變數,有些遊戲會直接建立通訊端,另有應用程式使用自己的代理設定。瀏覽器可以連線,只能表示瀏覽器使用的連線方式大致正常。

TUN 會在網路層建立虛擬網卡,再搭配路由將符合條件的 IP 流量送入處理流程。應用程式不必直接支援 HTTP 或 SOCKS 代理,但流量是否會被接管,仍取決於路由、介面繫結、位址類型及排除項目。流量被接管後,仍須依規則決定直連、代理或封鎖。

設定方式作用層級無法據此保證的事項
系統代理讓支援代理設定的應用程式連線至本機代理連接埠無法保證接管遊戲、UDP 或所有命令列請求
TUN 模式透過虛擬網卡與系統路由接收 IP 流量無法保證所有流量最後都會經由遠端節點對外連線
全域代理路由將規則允許範圍內的請求交由代理伺服器連線無法取代 TUN,也無法修復失效的節點
規則分流依網域名稱、IP 等條件選擇不同的連線方式無法保證所有中國大陸或區域網路位址都已涵蓋在規則內

判斷原則:先選流量接管方式,再選連線規則

只需要讓瀏覽器使用代理時,先用系統代理;若要處理不讀取代理設定的應用程式,再試試 TUN。若希望這些應用程式經由節點對外連線,還必須檢查目前的路由策略,不能把「啟用 TUN」直接視為「全域代理」。

準備權限、節點與復原設定

先使用系統代理模式確認所選節點可正常連線,再啟用 TUN。VMess、VLESS 是節點使用的協定,訂閱網址用來提供及更新節點設定;它們本身不會建立虛擬網卡。若節點無法使用,切換流量接管方式通常只會增加排查變數。

v2rayN 是圖形介面的管理用戶端,實際流量處理由它呼叫的核心負責。不同版本的 TUN 實作方式與核心組合可能有所差異,常見實作會用到 sing-box;不要因為「節點使用 Xray」,就認定「TUN 必然由同一個核心獨立處理」。排查時請以啟動記錄中的程序、設定與錯誤訊息為準。

依序啟用 v2rayN TUN 模式

以下以常見的中文桌面介面為例。v2rayN 不同發行版本的標籤位置可能不同;若看到「Tun 模式設定」、「TUN 設定」等名稱,請搭配版本說明確認。找不到特定標籤,不代表需要手動新增網卡。

  1. 確認節點可用

    在主畫面選取現有節點並設為目前使用的伺服器,再透過系統代理瀏覽已知可用的 HTTPS 網站。如果這一步就無法連線,請先檢查節點位址、連接埠、驗證資訊及裝置時間。

  2. 提高執行權限

    從系統匣完全結束 v2rayN,再按右鍵點選程式,選擇「以系統管理員身分執行」,並確認系統授權提示。不要只關閉視窗後重新啟動,以免舊程序仍在以一般權限執行。

  3. 檢查設定參數

    開啟「設定」→「參數設定」,檢查本機監聽設定;若目前版本有相關頁籤,再進入「Tun 模式設定」。首次嘗試時先保留用戶端提供的預設值,不要同時更換協定堆疊、MTU 和 DNS 策略。

  4. 選擇路由

    在主畫面底部的路由選擇區確認目前使用的預設設定。日常使用可先選擇現有的分流規則;需要比對連線出口時,再暫時使用全域代理預設,並記下原本選項以便還原。

  5. 啟用流量接管

    開啟主畫面底部的「啟用 Tun」開關,查看記錄檔是否出現建立網卡、啟動介面或設定路由失敗等錯誤。若要單獨驗證 TUN,可將「系統代理」切換為「清除系統代理」,避免瀏覽器仍經由原本的入口連線而造成誤判。

  6. 檢查應用程式

    先測試瀏覽器,再測試原本不使用系統代理的目標程式。確認記錄檔中的目標位址與實際連線方式;若網路中斷,先關閉「啟用 Tun」,再還原先前的系統代理設定。

「清除系統代理」只是為了減少驗證時的變數,不表示兩項功能永遠不能同時使用。設定穩定後,可依應用程式需求決定是否保留系統代理;但請勿讓核心本身的連線再次導回代理入口,否則可能形成連線迴圈。

透過連接埠、路由與記錄檔確認接管結果

以下三個數值是排查問題時常見的觀察項目,不是要照抄填入的設定。尤其本機代理連接埠,必須以「設定」→「參數設定」中的實際監聽值為準;若你的設定不是範例中的 10808,請改用實際數值。

10808
本機代理範例監聽連接埠
53
傳統 DNS 常用服務連接埠
443
HTTPS 常用目的連接埠

在 PowerShell 中執行下方的唯讀命令,比較啟用 TUN 前後的介面與路由。TUN 可能透過更精確的路由接管流量,不一定會取代原本的預設路由,因此僅確認預設閘道是否變更並不足夠。即使連接埠正在監聽,也只能表示入口已啟動,不能單憑這點證明節點可用。

# 查看網路介面,比較啟用 TUN 前後的變化
Get-NetAdapter -IncludeHidden

# 查看 IPv4 與 IPv6 路由
route print -4
route print -6

# 僅在本機監聽連接埠確定為 10808 時使用
Get-NetTCPConnection -State Listen -LocalPort 10808

# 不讀取使用者的 curl 設定,也不透過明確指定的 HTTP/SOCKS 代理
curl.exe -q --noproxy "*" --connect-timeout 10 -I https://example.com

最後一條命令適合用來觀察未明確使用應用程式層代理的連線。先關閉 TUN 執行一次,再啟用後執行一次,同時查看用戶端記錄檔。收到 HTTP 回應表示連線有所進展,但不能只憑成功回應就斷定流量經過代理:該網站原本可能就能直連,還要核對記錄檔中的連線方式。

處理 DNS、UDP 與區域網路連線問題

TUN 能接收封包,不代表網域名稱解析一定正常。傳統 DNS 常使用 UDP 或 TCP 的 53 連接埠,但瀏覽器也可能使用加密 DNS。若出現「網域無法開啟,但既有連線仍可繼續」的情況,請先檢查 DNS 解析流程,不要立刻更換所有節點。

在「設定」→「參數設定」中檢查目前版本提供的 DNS 相關頁籤,釐清直連解析、代理解析及 TUN 的 DNS 處理設定。網域解析策略必須配合分流規則;若所有 DNS 請求都交給目前無法連線的解析伺服器,直連與代理都可能逾時。

問題現象優先檢查項目處理方式
網域連線失敗DNS 伺服器是否可連線、解析路徑及記錄檔執行 Resolve-DnsName example.com 並查看記錄檔;一次只修改一項 DNS 設定後再試
網頁正常,語音通話失敗UDP 支援、節點伺服器及防火牆規則檢查目標程式的 UDP 連線記錄,確認所用節點及傳輸路徑支援轉送
印表機或檔案共享無法連線區域網路位址是否被誤導向代理確認路由已將實際的區域網路網段設為直連,並檢查本機防火牆
部分目標仍然直連IPv6 路由、應用程式介面繫結及規則排除項目比對 IPv4 與 IPv6 路由表,並查看該目標實際套用的規則

排查啟動失敗並恢復網路

請依照「權限與介面 → 核心啟動 → 節點連線 → DNS 與分流」的順序排查。記錄檔中最早出現的明確錯誤,通常比後續一連串逾時訊息更有參考價值。分享記錄檔前,請遮蔽訂閱網址、節點驗證資訊及其他敏感內容。

啟用 TUN 時提示權限不足,該怎麼處理?

先從系統匣結束用戶端,再選擇「以系統管理員身分執行」重新啟動。若問題仍未解決,請檢查安全軟體或公司政策是否禁止建立虛擬介面或寫入路由;不要為了測試而關閉所有安全防護。

開關已開啟,記錄檔卻顯示核心啟動失敗?

檢查程式目錄是否完整,並查看核心啟動時出現的第一則錯誤。若提示位址或連接埠已被占用,可執行 Get-NetTCPConnection -State Listen 確認相關程序;不要直接結束不熟悉的系統程序。

啟用後所有網頁都逾時,應先檢查什麼?

先關閉 TUN,還原原本的系統代理,再使用同一個節點測試。若原本的連線方式也失敗,請先處理節點問題;只有 TUN 失敗時,再檢查路由衝突與 DNS。保留預設協定堆疊作為基準,每次只變更一項設定。

結束用戶端後還是無法上網,該怎麼辦?

若程式異常結束,可用相同權限重新啟動,先關閉 TUN,再選擇「清除系統代理」並正常結束程式。若網路仍未恢復,請重新啟動電腦,再檢查 Windows 代理設定與網路連線;不要直接執行清除所有路由的命令。

完成驗證後,還原適合日常使用的分流預設,並再次測試區域網路、瀏覽器和目標應用程式。若系統代理已能滿足需求,可以讓 TUN 保持關閉;需要時再啟用。保留一套已驗證的設定,比反覆調整 MTU、DNS、協定堆疊和路由更容易找出問題。

下載 V2Ray 用戶端