ALL-PLATFORM SETUP MANUAL

V2Ray 全平台安裝設定大全

涵蓋 Windows、macOS、Linux 與 Android,從用戶端選擇、安裝、訂閱匯入,到系統代理、TUN、DNS、路由分流與斷點排查。本文供系統查閱;只需完成首次連線時,可先走完較短的快速入門主線

CLIENTS · v2rayN / v2rayNG / v2flyNG PLATFORMS · 4 MODES · SYSTEM PROXY / TUN

01 / PREPARATION

通用準備:先區分用戶端、核心、訂閱與節點

四個物件各自負責不同工作

開始安裝前,先分清楚介面程式、代理核心、訂閱與節點。v2rayN、v2rayNG 與 v2flyNG 負責設定管理與操作入口;Xray、V2Fly 等核心負責協定解析、傳輸建立、路由比對與本機監聽。訂閱是一份可更新的伺服器設定集合,節點則是集合中的單一出站設定。安裝用戶端不會自動產生訂閱,匯入訂閱也不代表已選取可用節點。完整鏈路必須依序具備用戶端、可啟動的核心設定、目前節點與正確的本機代理入口。

桌面平台統一優先使用 v2rayN。Windows 可在桌面版與經典 WPF 版之間選擇,macOS 與 Linux 使用對應架構的 v2rayN 安裝套件。Android 首選使用 Xray 核心的 v2rayNG,需要 V2Fly 核心時再選擇 v2flyNG。三個用戶端的實際安裝入口集中在安裝套件頁面,本手冊不直接提供檔案,也不固定寫死版本號。

下載前確認系統與處理器架構

Windows 常見裝置選擇 x64。macOS 需先確認處理器類型:系統資訊顯示 Apple 晶片時選擇 arm64,顯示 Intel 時選擇 x64。Linux 除架構外還要區分套件體系,Debian、Ubuntu 及其衍生發行版通常選擇 deb,Fedora、Rocky Linux、openSUSE 等通常選擇 rpm。Android 近年的主流裝置一般使用 arm64;無法確認架構或安裝時提示不相容,再改用通用套件。

平台 首選用戶端 安裝前確認 主要接管方式
Windows v2rayN x64、桌面版或 WPF 版 系統代理或 TUN
macOS v2rayN Apple 晶片 arm64 或 Intel x64 系統代理或 TUN
Linux v2rayN x64/arm64、deb/rpm 桌面代理、環境變數或 TUN
Android v2rayNG arm64 或通用套件 系統 VPN 介面

儲存訂閱前檢查來源與欄位

訂閱網址由服務提供者產生,通常包含存取憑證,應視為敏感設定保存。不要把網址貼到公開日誌、截圖或線上解析頁面。匯入前先確認網址未被通訊軟體截斷,開頭與結尾沒有空格,從瀏覽器複製時也沒有混入換行。若提供者同時給出一般訂閱、用戶端專用訂閱與單一節點連結,優先選擇明確標示相容於目前用戶端的訂閱格式;只有訂閱持續更新失敗時,才使用單一節點連結驗證用戶端本身是否正常。

節點設定至少涉及伺服器位址、連接埠、協定身分欄位與傳輸參數。啟用 TLS 或 REALITY 時,還可能包含伺服器名稱、指紋、公鑰、短識別碼或路徑。手動編輯時必須保持這些欄位成組一致,不能只替換位址與連接埠。VMess、VLESS、Trojan 等協定名稱描述的是驗證與工作階段方式,WebSocket、gRPC、TCP 等描述傳輸承載,兩類欄位不能互相取代。

先建立最小可驗證鏈路

首次設定不要同時啟用 TUN、自訂 DNS、複雜路由與多個訂閱。較穩妥的順序是:安裝用戶端、匯入一個訂閱、更新伺服器清單、選擇一個節點、啟動核心,再啟用系統代理測試瀏覽器存取。確認這條最小鏈路正常後,再加入分組、自動更新、TUN 與自訂規則。如此一旦出現問題,就能明確判斷是哪一步引入了變數。

測試時保留用戶端日誌視窗。正常啟動至少應看到本機 SOCKS 或 HTTP 監聽已建立,且沒有連接埠佔用、設定解析失敗或權限拒絕。存取結果只能說明整條鏈路是否可用,不能單獨證明某一層正確。若用戶端顯示已連線但網頁打不開,應繼續核對系統代理是否指向用戶端實際監聽連接埠,而不是反覆切換節點。更完整的斷點定位可參考代理顯示已連線但網頁無法開啟的排查清單

02 / WINDOWS

Windows:v2rayN 安裝、訂閱匯入與系統接管

選擇桌面版或經典 WPF 版

Windows 入口提供 v2rayN 桌面版與經典 WPF 版。桌面版採用跨平台介面,適合希望介面結構接近 macOS、Linux 的使用者;WPF 版沿用傳統 Windows 操作方式,選單位置與既有教學更接近。兩者都負責管理訂閱、節點、核心與路由,不需要同時安裝。切換版本前應先匯出自訂伺服器與規則,並退出正在執行的舊用戶端,避免兩個執行個體爭用同一個本機連接埠。

安裝完成後從開始功能表啟動 v2rayN。首次執行若出現網路存取權限提示,應允許目前實際使用的網路類型。公司或公共網路環境不應無條件開放額外網路範圍;用戶端的本機監聽位址通常維持迴路位址即可,不需要監聽區域網路。攜帶式執行時不要把程式放在系統暫存目錄或會被同步軟體持續鎖定的目錄,設定檔與日誌需要穩定的寫入權限。

匯入訂閱並選擇目前伺服器

開啟訂閱分組管理,新增分組並填寫訂閱網址。分組名稱建議使用服務來源或用途,不要直接使用「分組一」這類難以辨認的名稱。儲存後執行更新訂閱,主清單出現節點才表示解析完成。接著依名稱、地區或協定篩選,選取一台伺服器並設為活動伺服器。只在清單中單擊反白,不一定代表已切換目前出站,應觀察狀態區顯示的目前伺服器名稱。

訂閱更新會重新讀取遠端清單。自行新增的節點應放在獨立分組,避免更新時被訂閱內容覆蓋。多個訂閱並存時,可以為每個分組設定獨立更新週期,但不建議設定過短間隔;啟動後更新一次、需要時手動更新,通常更容易判斷變更來源。節點數量較多時,可參考訂閱分組與伺服器篩選實務整理備註、關鍵字與排序。

從系統代理開始驗證

系統代理適合先驗證瀏覽器與遵循 Windows 代理設定的應用程式。啟動核心後,在系統匣選單中選擇設定系統代理,再存取目標網站。此模式通常會將系統的 HTTP 與 HTTPS 代理指向 v2rayN 的本機監聽連接埠,而核心根據目前路由規則決定直連、代理或阻擋。若只有瀏覽器可用而某個程式不可用,通常是該程式忽略系統代理,不代表節點已失效。

需要檢查連接埠時,可在終端機查看監聽狀態。具體連接埠以用戶端設定頁面為準,不要假設所有安裝都使用相同數值。

netstat -ano | findstr LISTENING
Get-NetTCPConnection -State Listen | Sort-Object LocalPort

如果日誌回報連接埠已被佔用,先在設定中確認 SOCKS、HTTP 與 API 連接埠沒有互相重複,再依程序編號找出佔用程式。不要直接結束無法辨識的系統程序;更安全的處理方式是退出舊版用戶端、關閉重複啟動項目,或將 v2rayN 本機連接埠調整到未佔用範圍,然後重新啟動核心。

TUN 模式與 Windows 特有問題

TUN 透過虛擬網路介面接管更多不讀取系統代理設定的流量。啟用前先退出其他同類網路工具,並確認 v2rayN 已具備建立虛擬介面所需的權限。第一次開啟時系統可能重新識別網路,短暫中斷屬於介面切換過程;如果持續沒有網路,應立即關閉 TUN,確認系統代理模式仍可用,再檢查虛擬介面、DNS 與路由規則,而不是同時重裝用戶端。

Windows 上常見的特有問題包括:安全軟體暫時阻擋核心子程序、休眠恢復後虛擬介面狀態未同步、用戶端異常退出後系統代理殘留,以及企業原則覆寫代理設定。正常退出用戶端時應先關閉系統代理或 TUN。若程式已退出但瀏覽器仍嘗試連線本機代理,可在 Windows 代理設定中關閉手動代理,再重新啟動用戶端。休眠恢復後無法連網時,先重新啟動核心;仍無效再關閉並重新啟用 TUN,通常不需要刪除全部設定。

03 / MACOS

macOS:依晶片安裝 v2rayN,並處理權限與代理殘留

確認晶片並安裝對應套件

開啟系統資訊或「關於這台 Mac」,先確認處理器類型。Apple 晶片裝置選擇 arm64 安裝套件,Intel 裝置選擇 x64 安裝套件。架構選錯時,常見結果是應用程式無法啟動、啟動後立即退出,或依賴相容轉換層執行。正確做法是回到macOS 下載入口重新選擇對應套件,不要藉由反覆修改應用程式權限掩蓋架構問題。

安裝時將 v2rayN 放入「應用程式」資料夾,再從該資料夾啟動。首次執行涉及網路存取、通知或背景項目權限時,只授予用戶端實際需要的項目。若系統提示無法確認應用程式來源,應先確認檔案確實來自本站下載入口,再透過系統「隱私權與安全性」頁面查看遭阻擋的應用程式並執行允許操作。不要從不明轉載頁面補裝所謂相依元件。

匯入訂閱與管理設定目錄

進入訂閱設定,新增分組並貼上完整訂閱網址,儲存後執行更新。更新成功但清單為空時,先檢查目前檢視是否啟用了關鍵字篩選或只顯示某一分組,再查看日誌中的訂閱解析結果。若網址在瀏覽器中能回傳內容,卻在用戶端中持續失敗,需要檢查系統時間、代理迴圈與憑證伺服器名稱,不應直接判定訂閱失效。

手動節點與訂閱節點應分組保存。準備切換安裝套件架構或重新安裝用戶端時,先使用用戶端匯出功能保存自訂節點與路由規則。設定目錄不適合作為多人共享資料夾;同步工具可能在用戶端寫入時產生衝突副本,使 JSON 設定出現重複或截斷。遇到啟動後設定突然回復,應先退出用戶端,再檢查是否有多個設定副本同時被同步。

系統代理的作用範圍

啟用系統代理後,v2rayN 會調整目前網路服務的 Web 代理設定。瀏覽器與遵循系統網路設定的應用程式會連線到本機 HTTP 或 SOCKS 入口,但自行實作網路堆疊的應用程式可能忽略這些設定。切換無線網路、USB 網路或有線網路後,應確認新的網路服務也已套用代理設定,因為 macOS 會依網路服務分別儲存部分參數。

可以使用系統指令查看目前網路服務,再檢查代理狀態。網路服務名稱可能經過本地化,應以第一個指令的輸出為準。

networksetup -listallnetworkservices
scutil --proxy

如果用戶端已退出而網頁無法開啟,先在系統網路設定中關閉目前網路服務的 Web 代理與安全 Web 代理,再重新啟動 v2rayN。不要在用戶端執行時手動把系統代理連接埠改成另一組數值,否則介面顯示與系統實際設定會分離。需要自訂連接埠時,應在用戶端中修改並重新啟動核心,讓系統代理設定隨之更新。

TUN、DNS 與休眠恢復

macOS 的 TUN 模式需要建立虛擬網路介面並調整路由,首次啟用可能要求系統授權。授權完成後先使用預設路由與 DNS 設定測試,不要立即疊加自訂網域規則。若關閉 TUN 後網路仍未恢復,依序檢查虛擬介面是否消失、預設路由是否回到目前實體網路、系統 DNS 是否仍指向已停止的本機連接埠。

合蓋休眠、網路切換與熱點切換會改變介面順序。恢復後若用戶端顯示正在執行但無法存取,先重新整理訂閱沒有實際意義,應先重新啟動核心,使監聽連接埠、路由與 DNS 重新繫結目前網路。只有在系統代理正常、單一節點測試可用的前提下,再重新開啟 TUN。持續出現 TLS 連線錯誤時,還要確認系統時間自動同步,伺服器名稱與節點設定一致;相關判斷方法見TLS 握手與憑證錯誤排查

macOS 防火牆或終端管理策略可能限制背景網路延伸功能。若日誌明確出現權限拒絕,應依裝置管理規則處理,而不是連續重裝。受管理裝置上的代理策略可能在登入時被統一覆寫,此時用戶端設定本身沒有錯誤,但系統代理無法持久生效。可用系統代理查詢結果與用戶端監聽狀態交叉確認,判斷問題位於策略層還是核心層。

04 / LINUX

Linux:軟體套件安裝、桌面代理、環境變數與 TUN

依發行版與架構選擇軟體套件

Linux 版 v2rayN 同時提供 deb 與 rpm 軟體套件,並區分 x64、arm64。先執行架構查詢指令:輸出 x86_64 時選擇 x64,輸出 aarch64arm64 時選擇 arm64。Debian、Ubuntu 及其衍生發行版通常使用 deb;Fedora、Rocky Linux 與採用 RPM 套件管理的發行版使用 rpm。其他發行版不應強行解包安裝,因為桌面入口、相依關係與解除安裝紀錄可能無法正確維護。

uname -m
cat /etc/os-release

下載後在檔案所在目錄執行對應安裝指令。指令中的檔名必須替換為下載頁面顯示的實際檔名。

sudo apt install ./v2rayN-package.deb
sudo dnf install ./v2rayN-package.rpm

apt install ./文件.deb 會同時處理儲存庫中可取得的相依套件,比直接呼叫底層解包指令更適合一般安裝。rpm 系發行版使用 dnf install 也能保留相依性解析。若無法滿足相依性,先重新整理發行版軟體來源並查看缺少的函式庫名稱,不要從不同發行版混裝基礎函式庫。安裝完成後從桌面應用程式選單啟動,從終端機啟動時則應保留輸出,方便擷取圖形環境與權限錯誤。

訂閱匯入與桌面工作階段

v2rayN 的訂閱操作與其他桌面平台一致:建立分組、填寫訂閱網址、更新伺服器、選取活動節點、啟動核心。Linux 上還要注意圖形工作階段環境。以管理員身分啟動圖形用戶端會改變設定目錄的擁有者,之後以一般使用者執行時可能無法寫入設定;因此只在安裝軟體套件與設定 TUN 權限時使用提權指令,不要長期以管理員身分執行 v2rayN。

桌面環境不同,系統代理入口也不同。GNOME、KDE 等通常都有網路代理設定,但是否被每個應用程式讀取,取決於應用程式的網路實作。開啟 v2rayN 系統代理後,應分別測試瀏覽器與終端機程式。瀏覽器正常而命令列工具直連,表示終端機沒有讀取桌面代理,而不是核心出錯。

終端機程式的代理環境變數

只需讓目前終端機工作階段經過本機 HTTP 代理時,可以暫時設定環境變數。連接埠必須與 v2rayN 的 HTTP 入站一致。指令結束後使用 unset 清除,避免套件管理器或內網工具在不知情的情況下繼續存取本機代理。

export http_proxy=http://127.0.0.1:本機HTTP連接埠
export https_proxy=http://127.0.0.1:本機HTTP連接埠
export no_proxy=localhost,127.0.0.1
unset http_proxy https_proxy no_proxy

這裡的「本機HTTP連接埠」是說明文字,執行前必須替換為用戶端設定中顯示的數字。不要把環境變數永久寫入所有使用者的全域設定,除非已明確評估登入、更新、容器與背景工作等行為。SOCKS 代理不能直接作為所有程式的 HTTP 代理使用;程式明確支援 SOCKS 時,應依其參數格式填寫 socks5://127.0.0.1:連接埠

TUN 權限、路由與 DNS

Linux TUN 依賴系統的虛擬網路裝置、路由能力與相應權限。啟用失敗時先確認裝置存在,再從日誌判斷是權限不足、模組無法使用,還是路由新增失敗。不要直接授予整個用戶端不受限制的管理員權限。若發行版透過能力授權或服務元件完成 TUN,應使用用戶端提供的安裝流程,並在更新後檢查權限是否仍然有效。

ls -l /dev/net/tun
ip address
ip route
resolvectl status

開啟 TUN 後無法解析網域,但直接存取已知位址仍有回應,問題通常位於 DNS 路徑;兩者都失敗則優先檢查預設路由、策略路由與防火牆。使用 systemd-resolved 的系統還要確認目前介面實際採用的 DNS,而不是只看 /etc/resolv.conf 的表面內容。NetworkManager 在斷線重連後可能重寫 DNS 與路由,因此網路切換後應重新啟動核心並複查。

Linux 特有的另一類問題是桌面工作階段與背景程序分離。關閉視窗後用戶端可能繼續駐留系統匣,也可能隨桌面環境結束。遠端工作階段退出前應主動停止系統代理或 TUN,避免本機監聽消失後環境變數仍然保留。日誌中出現「address already in use」時,可用 ss -lntup 找出監聽程序,再確認是否存在重複啟動的 v2rayN 或舊核心執行個體。

05 / ANDROID

Android:v2rayNG、v2flyNG 安裝與應用程式流量接管

選擇用戶端與安裝套件架構

Android 首選 v2rayNG,它使用 Xray 核心並支援常見協定與傳輸設定。需要 V2Fly 核心實作時,可選擇 v2flyNG。兩者可以分別安裝,但日常只應讓一個用戶端建立系統 VPN 介面,否則後啟動的應用程式會取代前一個連線。安裝套件提供 arm64 與通用版,近年的主流裝置優先選擇 arm64;出現安裝不相容或無法確認架構時,再使用通用版。

Android 下載入口取得安裝套件後,系統可能要求允許目前瀏覽器或檔案管理器安裝應用程式。完成安裝後應關閉該來源的暫時安裝權限。升級時使用同一用戶端對應的安裝套件覆蓋安裝,可保留現有設定;若系統提示簽章不一致,不要解除安裝後盲目重裝,應先確認下載來源與應用程式名稱,必要時匯出設定後再處理。

匯入訂閱與選擇節點

開啟 v2rayNG,進入訂閱分組設定,新增訂閱網址並儲存,然後從選單執行更新訂閱。更新結束後返回主清單,點選一個節點,使其成為目前設定。清單左側或狀態區的選取標記可用來確認目前節點。若更新提示成功但沒有新節點,檢查是否進入錯誤分組、訂閱是否回傳空內容,以及清單篩選是否隱藏新增項目。

也可以從剪貼簿匯入單一連結,用於驗證某個節點或排除訂閱解析問題。剪貼簿可能同時包含聊天文字與連結,匯入前應只複製完整設定連結。QR 碼適合從另一台裝置轉移單一設定,但 QR 碼本身包含存取參數,不應公開展示。大量節點仍應透過訂閱分組維護,避免逐一更新伺服器參數。

啟動連線與應用程式分流

選擇節點後點擊連線按鈕,系統首次建立 VPN 介面時會顯示授權對話框。確認後,用戶端會在本機建立流量入口,並依據路由設定決定哪些連線進入代理出站。狀態列出現連線標記只代表介面已建立,不代表遠端握手一定成功;應繼續查看用戶端測試結果與日誌。節點測試失敗時,先切換同一訂閱中的另一個節點,判斷是單一節點問題還是所有設定都失敗。

Android 的分應用程式代理可以指定哪些應用程式進入用戶端,適合減少不需要代理的本機流量。設定時必須明確採用「僅代理已選應用程式」還是「繞過已選應用程式」,兩種邏輯相反。修改清單後重新連線,讓系統介面讀取新規則。瀏覽器可存取而目標應用程式不可用時,應優先檢查分應用程式清單、目標應用程式自身的 DNS 行為與背景連網限制。

背景限制、私人 DNS 與行動網路切換

系統的省電策略可能限制 v2rayNG 或 v2flyNG 在背景執行,表現為鎖定螢幕一段時間後連線中斷、切回應用程式才恢復。可在系統電池管理中允許用戶端維持必要的背景活動,並確保數據節省模式沒有阻止其連網。不需要為用戶端開放與網路功能無關的權限。清理背景工具若會強制停止 VPN 應用程式,也應將目前用戶端排除在自動結束清單之外。

啟用系統「私人 DNS」後,網域請求可能繞過用戶端預期的 DNS 路徑,或與節點設定產生解析差異。遇到網域無法存取但位址連線正常時,可暫時恢復自動 DNS 進行對照測試,再決定保留系統設定,還是由用戶端統一處理。不要同時啟用多個自訂 DNS 層,否則日誌只能看到最終失敗,難以確認請求在哪一層被改寫。

無線網路與行動網路切換會改變本機出口。切換後連線看似仍在,但底層工作階段可能已失效,應中斷後重新連線。公共網路需要網頁驗證時,先暫停用戶端並完成網路登入,再恢復連線。若只有某一種網路無法使用,應比較該網路的 DNS、IPv6 與連接埠限制,不要立即刪除訂閱。TLS 錯誤還應檢查系統時間是否自動同步,以及節點中的伺服器名稱是否完整。

06 / SUBSCRIPTION · ROUTING

訂閱、節點與路由分流:跨平台統一管理方法

訂閱更新不是節點切換

訂閱更新負責從指定網址重新取得節點集合,節點切換負責變更目前使用的出站,兩者是獨立操作。更新後原有節點可能被刪除、重新命名或調整參數,因此用戶端仍顯示舊名稱時,應回到伺服器清單重新確認目前選取項目。設定自動更新時,需要保留合理間隔並觀察一次手動更新結果;頻繁請求不會提高節點可用性,反而會讓設定變更難以追蹤。

多訂閱環境建議依來源建立分組,再使用備註表達地區、線路或用途。不要只靠節點原始名稱判斷協定與安全參數,因為名稱只是顯示文字。需要判斷節點設定時,應開啟詳細資料查看協定、位址、連接埠、傳輸、安全層與伺服器名稱。訂閱節點由提供者維護時,除非明確知道差異,不應逐一修改核心欄位;下次更新可能覆蓋本機修改。

建立可回復的設定基準

在加入複雜規則前,先保留一套可正常運作的基礎設定:單一訂閱、一個已驗證節點、預設路由與預設 DNS。每次只修改一類設定,例如先加入網域直連規則,驗證後再加入位址規則。如此發生異常時,可以回復到上一個可用狀態。用戶端提供匯出功能時,應在大幅調整分組與路由前匯出設定,但匯出檔案含有節點存取參數,需按敏感檔案保存。

節點測試只能作為篩選工具。TCP 連通表示伺服器連接埠能建立連線,不能證明驗證、TLS、傳輸路徑與最終出站全部正常。實際判斷仍要結合核心日誌與一次完整存取。測試結果突然全部失敗時,應先檢查本機網路、系統時間、DNS 與訂閱欄位,而不是同時刪除全部節點。

理解路由比對順序

路由規則通常依序比對,第一個命中的規則決定直連、代理或阻擋。範圍較大的規則放在前面,可能覆蓋後面的精確規則。例如先寫一條涵蓋所有網域的代理規則,後面的特定網域直連規則就沒有機會執行。較容易維護的順序是:明確的區域網路與本機目標、需要單獨處理的精確網域、分類規則,最後是預設出站。

下面是核心路由結構的簡化範例,展示欄位層級與比對方式。實際出站標籤必須與用戶端產生的設定一致,不能直接假設名稱。

{
  "routing": {
    "domainStrategy": "AsIs",
    "rules": [
      {
        "type": "field",
        "ip": ["geoip:private"],
        "outboundTag": "direct"
      },
      {
        "type": "field",
        "domain": ["domain:intranet.example"],
        "outboundTag": "direct"
      }
    ]
  }
}

geoip:private 用於比對常見私有位址範圍,避免區域網路裝置被送往遠端。範例網域只用於說明規則格式。用戶端圖形介面可能將這些欄位包裝成預設規則,啟用前仍應確認預設的比對順序與預設出站。位址規則與網域規則並非完全等價:應用程式先解析網域後再連線位址時,核心能看到哪一層資訊,取決於接管模式與 DNS 流程。

分流失效時檢查可見資訊

在系統代理模式下,支援 HTTP 代理的應用程式通常會把網域交給代理入口,網域規則較容易生效;部分應用程式會先在本機解析,再連線位址,此時可能只命中 IP 規則。TUN 模式能夠接管更廣泛的流量,但還需要 DNS 嗅探與路由設定配合。分流結果與預期相反時,先在日誌中確認目標實際命中了哪條規則,再調整順序,不要只憑網站顯示內容推斷出口。

需要讓區域網路印表機、路由器管理頁面或開發服務保持直連時,應保留私有位址直連,並檢查用戶端是否允許本機網路存取。若系統代理只繫結迴路位址,本機應用程式仍可使用,但區域網路其他裝置不能把它當作代理入口。除非明確需要共享,不要開啟區域網路監聽。共享監聽還涉及防火牆、存取控制與網路邊界,不屬於一般單機設定。

07 / PROXY · TUN · DNS

系統代理、TUN 與 DNS:三條鏈路如何配合

系統代理只接管主動使用代理的應用程式

系統代理本質上是把作業系統中的 HTTP、HTTPS 或 SOCKS 代理設定指向用戶端本機監聽連接埠。瀏覽器與遵循系統設定的程式會主動連線該連接埠,用戶端再將請求交給目前節點。它的優點是路徑清楚、權限要求低,出現問題時容易恢復;限制是部分程式不讀取系統代理,UDP 流量與自訂網路堆疊也可能不經過該入口。

排查系統代理時必須同時核對三個值:系統設定中的代理位址、代理連接埠,以及用戶端實際監聽位址。常見錯誤是用戶端變更了本機連接埠,系統仍保留舊值;或用戶端退出後,系統繼續連線已不存在的本機連接埠。正常關閉前先停止系統代理,可以減少殘留。系統代理可用而單一應用程式不可用時,應檢查應用程式自己的代理選項,不要直接改成全域路由。

TUN 接管網路介面與路由

TUN 模式會建立虛擬網路介面,透過系統路由將更多流量送入用戶端。它適合不支援系統代理的應用程式、需要統一分流的桌面環境,以及部分 UDP 情境。由於處於更底層,介面權限、預設路由、DNS、防火牆與其他虛擬網路工具都會影響結果。啟用前應先證明同一節點在系統代理模式下可用,否則同時排查遠端節點與本機介面會增加判斷成本。

開啟 TUN 後,系統通常同時存在實體介面、迴路介面與虛擬介面。預設路由或策略路由決定流量進入哪一條路徑。若啟用後立即全網中斷,優先關閉 TUN 恢復基礎網路,再查看日誌中的介面建立與路由新增結果。不要在斷網狀態下連續修改多個 DNS 與 MTU 參數,因為恢復後無法知道哪項修改真正有效。

DNS 決定網域如何進入路由判斷

DNS 不只是把網域轉換為位址,也會影響網域規則能否準確比對。系統代理模式下,應用程式可能把網域交給本機代理,也可能先自行解析;TUN 模式下,用戶端可以透過接管 DNS 保留網域與連線之間的關聯。若解析請求繞過用戶端,路由層可能只看到目標位址,原本依網域設定的規則就不會按預期執行。

常見 DNS 異常可分為三類:請求沒有到達預期解析器、解析結果正確但連線被錯誤分流、解析器可達但回傳結果不適合目前網路。排查時先用系統工具確認網域是否得到結果,再查看用戶端日誌是否記錄 DNS 請求與路由命中。不要只透過清除瀏覽器快取判斷,因為作業系統、用戶端與瀏覽器可能分別維護快取。

現象 優先檢查 不應先做的操作
系統代理正常,某個應用程式直連 應用程式代理支援與自身設定 立即重新安裝用戶端
開啟 TUN 後全部斷網 虛擬介面、權限、預設路由 同時更換訂閱與 DNS
位址可達,網域不可達 DNS 接管、解析器與快取 反覆切換同一節點
區域網路服務無法存取 私有位址直連規則 開放區域網路代理監聽

全域代理與規則代理的界線

全域代理通常表示可接管的流量統一經過目前代理出站,適合短時間驗證節點:如果全域模式可用而規則模式不可用,問題多半在路由規則、DNS 或比對順序。它不適合作為所有環境的預設答案,因為區域網路、系統更新與本機服務可能需要直連。驗證結束後應恢復經過檢查的規則模式。

規則代理透過網域、位址、連接埠、網路類型或程序條件選擇出口。規則越多,維護成本越高。只保留能說明用途的規則,並為自訂項目寫清楚備註。刪除規則前先確認是否有其他項目依賴其出站標籤。用戶端更新或訂閱更新通常不應覆蓋獨立保存的路由設定,但匯入整套設定時可能取代目前設定,因此匯入前需要先匯出可回復的副本。

若需要確認請求實際經過哪個入口,可先觀察核心存取日誌,再對照應用程式代理設定。日誌中沒有任何連線紀錄,問題位於應用程式到本機入口之間;有入站紀錄但沒有遠端連線,檢查路由與出站設定;已發起遠端連線但握手失敗,則檢查節點參數、系統時間與網路可達性。這種分層判斷比不斷切換模式更快。

08 / TROUBLESHOOTING

常見設定問題:依本機、核心、訂閱與遠端逐層定位

先記錄現象,再縮小故障層級

排查前先記錄四項事實:目前平台與用戶端、使用系統代理還是 TUN、問題是否影響所有節點、日誌中的第一個明確錯誤。不要只記錄「無法使用」,因為啟動失敗、網域解析失敗、遠端握手失敗與單一應用程式不走代理,對應完全不同的處理路徑。每次修改一項設定並重新測試,避免多個變更互相掩蓋。

最短檢查路徑是:確認一般網路可用;確認用戶端程序與核心程序都在執行;確認本機監聽連接埠存在;確認目前節點已選取;確認系統代理或 TUN 已生效;最後檢查遠端握手與路由命中。若所有節點同時失敗,優先檢查本機網路、時間、DNS、訂閱與用戶端設定。只有一個節點失敗,則優先比較該節點與可用節點的位址、連接埠、傳輸與安全參數。

核心啟動後立即退出

核心啟動失敗通常會在日誌開頭給出原因。連接埠佔用表示本機監聽無法繫結;設定解析錯誤表示產生的 JSON 欄位、逗號或型別不符合要求;缺少必填參數常見於手動編輯節點時遺漏安全層欄位;權限拒絕多見於 TUN 介面或受保護目錄。應從第一個錯誤開始處理,後續錯誤可能只是前一項失敗的連鎖結果。

連接埠佔用時退出重複用戶端或修改監聽連接埠。設定錯誤時回復最近一次手動修改,或新建一個最小節點進行對照。不要刪除整段日誌後只保留最後一行,因為設定檔路徑與具體欄位通常出現在前文。可結合從日誌定位核心啟動失敗逐行判斷錯誤類別。

顯示已連線但網頁無法開啟

「已連線」可能只表示用戶端狀態已切換為執行中,不能證明瀏覽器已接入本機代理。先檢查系統代理位址與連接埠,再確認瀏覽器沒有覆寫系統設定。TUN 模式下檢查虛擬介面與預設路由。日誌完全沒有瀏覽器請求時,斷點位於應用程式與本機入口之間;日誌有請求但顯示 DNS 失敗,應檢查解析鏈路;有遠端撥號但逾時,則繼續判斷位址、連接埠與網路可達性。

若全域模式可用而規則模式不可用,恢復預設路由規則或檢查自訂規則順序。若位址可以連線但網域失敗,暫停額外的私人 DNS、瀏覽器安全 DNS 或系統自訂解析進行對照。若只有區域網路目標失效,補充私有位址直連,而不是關閉全部路由。完整逐項清單可查看連線後無法存取網頁的斷點檢查

訂閱更新失敗或更新後為空

先確認訂閱網址完整,沒有空格、換行或過期參數。再檢查目前網路能否存取訂閱服務、系統時間是否正確、用戶端是否錯誤地透過尚未啟動的本機代理更新訂閱。多個分組時確認更新操作作用於正確分組,並關閉清單篩選查看原始結果。回傳內容存在但解析失敗,應查看訂閱格式是否與目前用戶端相容。

更新後節點減少可能是遠端訂閱內容發生變化,不一定是用戶端刪除資料。自訂節點應放在獨立分組,避免與遠端項目混在一起。需要驗證用戶端解析能力時,可以匯入一個明確相容的單一節點設定;單一節點可用而訂閱失敗,問題集中在訂閱取得或格式。單一節點同樣失敗,則回到核心日誌繼續排查。

TLS、伺服器名稱與系統時間

TLS 相關錯誤需要對照具體提示。憑證尚未生效或已過期的提示,首先檢查系統日期、時間與時區;伺服器名稱不相符時,檢查節點中的 serverName 或 SNI 是否與服務設定一致;握手提前關閉也可能來自傳輸路徑、連接埠或伺服器端狀態。不要把「略過憑證驗證」作為一般修復方式,它只會掩蓋身分驗證問題,不能修復錯誤的位址、伺服器名稱或時間。

REALITY 設定還需要公鑰、短識別碼、伺服器名稱與指紋等欄位彼此匹配。複製節點時遺漏任何一項都可能導致握手失敗。由訂閱管理的節點應優先重新更新完整設定,而不是根據其他節點猜測欄位。更多分類說明見TLS 握手、SNI 與時間檢查

恢復到可驗證狀態

多次調整後無法確認問題來源時,應執行受控回復,而不是刪除所有資料。先匯出需要保留的手動節點與規則;關閉 TUN、自訂 DNS 與額外路由;恢復系統代理模式;只啟用一個訂閱與一個節點;重新啟動用戶端並觀察從啟動到第一次請求的完整日誌。最小狀態可用後,再逐項恢復設定,每恢復一項就測試一次。

用戶端更新前也應遵循相同原則:記錄目前工作模式,退出正在執行的核心,保存自訂設定,再安裝對應平台與架構的軟體套件。更新後先驗證基礎鏈路,不要立即修改全部設定。若介面能啟動但舊設定異常,檢查設定遷移日誌與檔案權限;Linux 特別注意設定目錄擁有者,Windows 檢查重複程序,macOS 檢查網路服務代理殘留,Android 檢查系統 VPN 授權與背景限制。

下載用戶端