本文以 Windows 桌面版 v2rayN 為例。先透過系統代理確認節點可用,再以管理員身分啟用 TUN,最後分別確認路由、DNS 與應用程式連線。適合瀏覽器可上網,但命令列工具或其他程式未使用代理的情況;TUN 接管流量後,連線最後直連或走代理仍由路由規則決定。
系統代理與 TUN:接管流量的位置不同
系統代理會將本機代理位址提供給遵循系統設定的程式。應用程式主動將請求送至代理監聽連接埠,再由用戶端轉送。若程式使用自己的網路堆疊、獨立代理設定,或直接建立 UDP 連線,就可能略過這項設定。因此,瀏覽器能開啟網頁,不代表其他程式也經由代理連線。
TUN 會在網路層提供虛擬介面。系統路由會將符合條件的 IP 封包送至該介面,由 TUN 後端處理,再轉送至直連或代理出口。應用程式通常不必支援 HTTP 或 SOCKS 代理,但這不代表所有網路協定與位址都能完整轉送。
這裡要區分兩種「全域」:TUN 的接管範圍與路由的代理範圍並非同一個開關。啟用 TUN 後,區域網路、私人位址或規則指定的目標仍可直連。若要讓所有可接管的公網連線都走代理,還得確認目前的路由模式與預設出口,不能只看 TUN 開關是否已啟用。
啟用前:記下連接埠、節點與路由基準
先在 v2rayN 選取已匯入的節點並設為目前伺服器,使用系統代理實際瀏覽一次網頁。只有延遲測試結果並不足夠:測試成功只能表示該測試路徑可用,不代表 DNS、TLS 與實際流量都正常。若此階段就失敗,請先檢查節點位址、認證資訊、傳輸參數與伺服器狀態。
10808 僅為下文的測試值。先開啟「設定」→「參數設定」,找到本機監聽連接埠相關項目,再以實際值取代命令中的連接埠。不同版本可能提供混合監聽,或分別列出 SOCKS 與 HTTP 連接埠;確認該連接埠支援 HTTP 代理後,才能使用下方的 HTTP 代理測試命令。
- 記下目前使用的節點、路由模式與系統代理狀態,必要時備份用戶端設定。
- 關閉其他正在接管預設路由或 DNS 的 VPN、網路加速器與代理程式,基準測試時只保留一個接管程式。
- 確認目前的發行套件包含所需核心元件。若記錄顯示缺少可執行檔,請先補齊元件,不要反覆切換 TUN。
- 公司設備請先確認網路與端點安全政策允許建立虛擬介面;不要為了繞過管理政策而關閉安全軟體。
Windows 啟用步驟:管理員權限與 TUN 參數
以下說明適用於具有「啟用 TUN」開關的 v2rayN 介面。桌面版、WPF 版或不同版本的按鈕位置可能不一樣;主畫面通常有 TUN 開關,相關參數則集中在「設定」→「參數設定」的 TUN 頁面。若目前介面沒有這些選項,請先確認用戶端版本與發行套件類型,不要在 Windows 網路設定中手動建立同名網卡。
- 完全結束程式後再提升權限。從系統匣選單結束 v2rayN,確認原有執行個體已關閉,再按右鍵選擇「以系統管理員身分執行」。如果只重新開啟視窗、系統匣中的程序仍在執行,可能還是使用舊執行個體的權限。
- 確認目前使用的節點。查看主畫面顯示的伺服器與路由模式。先沿用已確認可用的節點,第一次啟用 TUN 時不要同時更換訂閱、傳輸方式與 DNS。
- 檢查 TUN 參數。第一次使用時,先保留用戶端提供的預設堆疊、MTU 與路由設定。使用自訂設定時,請確認自動路由未關閉,否則即使建立了虛擬介面,也未必能接管目標連線。
- 清除系統代理。透過用戶端的系統代理選單清除設定,建立只驗證 TUN 的環境。兩者並非絕對不能同時使用,但一起啟用會讓瀏覽器測試無法確認 TUN 是否生效。
- 啟用 TUN 並查看記錄。在主畫面開啟「啟用 TUN」,確認是否出現權限不足、介面建立失敗、核心結束或設定解析錯誤。若發生錯誤,先關閉開關,再處理第一筆明確的錯誤訊息。
路由與 DNS:保留區域網路連線,避免出口迴圈
TUN 必須處理一個基本問題:應用程式流量要進入隧道,但代理核心連往伺服器的流量不能再被自己無限送回隧道。一般情況下,用戶端與後端會透過路由排除、介面繫結等機制處理。多個接管程式同時執行、手動新增預設路由或自訂設定不完整,都可能破壞這項配置。
首次測試基準
- 接管方式
- 只啟用 TUN,清除系統代理
- 目前使用的節點
- 沿用已透過實際連線確認可用的節點
- TUN 堆疊與 MTU
- 保留目前版本的預設值
- DNS 設定
- 沿用用戶端目前可用的設定,不要同時更換解析器
先減少變數,再依據記錄找出接管、解析或出口問題。
基準測試通過後再調整
- 區域網路目標
- 視需求讓 192.168.0.0/16 等私人網段直連
- 代理伺服器
- 確認連線未被重複送回 TUN
- 公網目標
- 依目前路由規則選擇出口
- DNS 路徑
- 確認解析器可連線,且使用預期的出口
這些是檢查項目,不是可直接匯入的設定鍵;實際欄位取決於後端版本。
區域網路規則只列出 192.168.0.0/16 並不完整,還要依實際網路檢查 10.0.0.0/8、172.16.0.0/12 等位址,以及 IPv6 區域網路範圍。印表機、檔案分享與閘道管理頁面應依需求設定為直連,不能只看「略過區域網路」之類的名稱,就認定所有範圍都已涵蓋。
DNS 也需要驗證。一般 UDP/TCP 53 查詢與應用程式內建的加密 DNS 並非相同路徑;瀏覽器使用獨立解析器時,結果可能與系統不同。若啟用了 FakeIP,合成位址也不代表解析一定有誤,應確認後端是否仍能將該位址對應回網域名稱。清除快取無法修復無法連線的解析器。
確認流量是否被接管:別只重新整理瀏覽器
測試時,請關閉瀏覽器中手動設定的代理,並確認系統代理已清除。為避免既有連線沿用原路徑,請關閉目標應用程式後再重新開啟。下列命令可用來區分明確指定代理的連線與一般系統網路連線;測試網域僅用於重複執行 HTTPS 請求,不能用來判斷特定網站是否符合代理規則。
# 在 Windows PowerShell 中執行
# 僅在確認 10808 支援 HTTP 代理時使用第一條
curl.exe -I --connect-timeout 10 --proxy http://127.0.0.1:10808 https://example.com
# 禁止 curl 使用明確指定的代理,改由系統路由處理
curl.exe -I --connect-timeout 10 --noproxy "*" https://example.com
# 查詢目前介面與 IPv4、IPv6 路由
Get-NetAdapter
Get-NetRoute -AddressFamily IPv4
Get-NetRoute -AddressFamily IPv6
# 單獨查看系統 DNS 查詢結果
Resolve-DnsName example.com
- 先比較啟用前後的結果。關閉 TUN 後執行一次未使用明確代理的請求,再啟用 TUN 重試;同時查看用戶端是否記錄到該應用程式的新連線。單次成功不足以證明連線路徑有所改變。
- 確認規則選擇的出口。測試目標可能原本就由規則指定為直連。若要驗證代理路徑,請選擇已明確設定為走代理的目標,並查看連線記錄或相應層級的路由記錄。
- 分別測試 IPv4 與 IPv6。必要時在請求中分別加入
-4、-6。若其中一種成功、另一種失敗,應檢查該位址族的流量接管與出口能力,不要直接判定節點失效。 - 單獨測試目標應用程式。網頁與命令列測試通過後,再測試實際發生問題的程式。UDP 是否可用取決於 TUN 後端、節點協定與伺服器,不能以 HTTPS 測試結果判定。
不要只檢查是否有一條指向虛擬介面的 0.0.0.0/0 路由。自動路由可能採用更具體的分段路由;請一併查看目的位址、前綴長度與介面,確認實際路由選擇。只有在需要時才暫時提高記錄詳細程度;分享前請移除節點位址、認證資訊及包含私人瀏覽記錄的內容。
常見故障排除:依序檢查權限、接管、解析與出口
啟用 TUN 就報錯,開關又自動關閉?
先從系統匣完全結束程式,再以系統管理員身分執行。查看記錄中最先出現的介面、權限或核心啟動錯誤。若是元件缺漏或設定欄位不相容,應修復對應的發行套件或還原自訂 TUN 設定;系統管理員權限無法解決設定解析錯誤。
系統代理可用,啟用 TUN 後卻完全無法上網?
關閉其他 VPN 與網路加速器,只保留一個接管程式。先關閉 TUN,確認基準狀態恢復正常,再查看啟用後的路由變化與伺服器連線記錄。若代理伺服器連線也被重複接管,應檢查自訂路由排除項目,而不是不斷更換節點。
連線已建立,但網域名稱一直解析失敗?
使用 Resolve-DnsName example.com 單獨檢查系統解析,再查看用戶端 DNS 記錄與解析器出口。確認設定已修正後,才執行 ipconfig /flushdns 清除舊快取。瀏覽器使用的獨立 DNS 也需要另外檢查。
啟用後無法使用印表機或公司內網?
記下內網目標的實際位址,檢查私人網段直連規則與網卡路由。公司專用網域也可能仰賴內部 DNS;交由公用解析器通常無法取得正確結果。調整前請先儲存原設定,不要將整個公司位址範圍盲目加入代理。
網頁正常,但遊戲或語音仍無法連線?
先確認該程式沒有自行繫結至其他介面,再檢查 UDP 連線記錄與節點是否支援 UDP。若小封包持續正常、大封包連線容易停滯,再進一步檢查 MTU 或路徑 MTU;沒有明確跡象時,不應一開始就修改 MTU。
關閉與復原:先停止接管,再結束用戶端
不再使用 TUN 時,請先在 v2rayN 關閉「啟用 TUN」,確認一般網路連線恢復後再結束用戶端。若要改用系統代理,請先確認本機代理監聽正常,再透過用戶端重新設定系統代理。如此可清楚區分虛擬網卡路徑與應用程式代理路徑,避免系統代理留下指向已結束程序的位址。
- 正常關閉 TUN,並查看記錄確認後端已停止且路由已清除。
- 清除不再使用的系統代理設定,重新開啟目標應用程式測試。
- 異常結束後仍無法上網時,先重新啟動用戶端並正常切換一次 TUN,或重新啟動系統,再檢查是否有殘留路由。
- 不要直接刪除不熟悉的虛擬網卡、批次清空路由表或重設所有網路介面;這些操作可能連其他工作用的網路設定也一併破壞。
TUN 解決的是應用程式流量如何進入用戶端。節點是否可用、網域名稱如何解析,以及規則會套用哪個出口,仍是彼此獨立的問題。依照「系統代理基準測試、單獨驗證 TUN、重新測試目標應用程式」的順序記錄結果,通常比同時修改多項設定更容易找出故障原因。規則與 DNS 的詳細說明請參閱進階設定,術語說明則可參考術語表。