用戶端顯示「已連線」或「服務已啟動」,通常只代表本機代理核心正在執行、監聽連接埠已建立,不代表瀏覽器請求已經通過代理,也不代表遠端節點能完成連線。排查時應沿著請求實際經過的鏈路逐層向外確認,而不是反覆更新訂閱或連續切換節點。
這份清單適合處理 v2rayN、v2rayNG 與 v2flyNG 已啟動,但網頁逾時、空白或顯示無法連線的情況。依序確認流量是否進入本機連接埠、節點是否可達、網域是否能解析、路由是否誤分流,以及系統時間是否正確,就能將問題定位到明確層級。
先釐清「用戶端已連線」代表什麼
V2Ray、Xray 與 V2Fly 核心通常會按需建立遠端連線。啟動用戶端時,本機的 HTTP、SOCKS 或 VPN 介面會先進入工作狀態;只有瀏覽器真正發出請求後,核心才會執行 DNS、路由比對、協定封裝與遠端撥號。因此,介面上的執行狀態不能取代一次完整的網頁請求測試。
可以先確認故障範圍:完全關閉代理後,一般網站是否能開啟;開啟代理後,是所有網站都失敗,還是只有代理規則涵蓋的網站失敗;使用網域失敗時,直接造訪已知網址是否仍然失敗。三個答案分別指向本機網路、代理鏈路,以及 DNS 或路由層。
第一步:確認系統代理確實指向用戶端
在 Windows 上使用 v2rayN 時,核心執行與系統代理是兩個獨立狀態。若只啟動服務卻未設定系統代理,瀏覽器仍會直接連線。可在 v2rayN 主畫面選擇「系統代理」→「自動設定系統代理」,再進入 Windows「設定」→「網路和 Internet」→「代理」,確認代理伺服器指向 127.0.0.1,且連接埠與 v2rayN 目前的 HTTP 連接埠一致。
- 開啟 v2rayN「設定」→「參數設定」,記下本機 SOCKS 與 HTTP 監聽連接埠。
- 確認連接埠沒有被手動改成其他數字;常見組合為 SOCKS
10808、HTTP10809。 - 檢查瀏覽器是否另外設定了代理擴充功能或固定代理位址,避免覆蓋系統代理。
- 暫時退出其他會修改系統代理的網路工具,然後重新執行一次「自動設定系統代理」。
- 關閉並重新開啟瀏覽器,讓舊連線池與舊代理設定失效。
若想繞過系統代理設定來驗證本機連接埠,可以在終端機直接讓請求通過 HTTP 代理。若以下測試能回傳 HTTP 回應標頭,表示瀏覽器到本機代理這一段基本正常;若立即顯示無法連線至 127.0.0.1,應優先檢查核心是否已退出、連接埠是否填錯,或監聽位址是否被修改。
curl --proxy http://127.0.0.1:10809 --head https://v2help.com/
錯誤:Failed to connect to 127.0.0.1 port 10809
原因與解法:本機 HTTP 連接埠未監聽,或實際連接埠不是 10809。返回「設定」→「參數設定」核對連接埠,儲存後重新啟動核心。
錯誤:address already in use
原因與解法:另一個程序已佔用監聽連接埠。退出使用同一連接埠的程式,或將 HTTP 與 SOCKS 連接埠改成尚未使用的連接埠,再同步更新系統代理。
Android 上的運作邏輯不同。v2rayNG 與 v2flyNG 必須取得系統 VpnService 授權,才能接管應用程式流量。首次連線若略過授權,或系統在背景回收 VPN,可能出現用戶端頁面仍保留節點資訊,但實際流量未進入核心的情況。重新點選連線,確認狀態列出現 VPN 標誌,並檢查「設定」→「分應用程式代理」是否誤將正在測試的瀏覽器排除。
第二步:驗證節點可達性與訂閱參數
系統代理正確後,下一層就是節點本身。延遲測試只能證明某種探測收到回應,不能證明 VMess、VLESS 或傳輸層握手完整成功。較可靠的方式是選取單一節點,發出一次真實網頁請求,同時觀察用戶端執行記錄是否出現撥號、TLS、WebSocket 或驗證錯誤。
| 觀察結果 | 較可能的問題層級 | 下一項檢查 |
|---|---|---|
| 多個節點都在約 10 秒後逾時 | 本機網路、DNS 或公共路由 | 更換網路並檢查網域解析 |
| 只有一個節點逾時 | 節點位址、連接埠或服務狀態 | 更新訂閱並核對節點參數 |
| TCP 已連線但立即遭拒絕 | 使用者識別碼、傳輸路徑或協定不相符 | 與訂閱來源重新同步設定 |
| 首頁可開啟,圖片與指令碼持續失敗 | 線路丟包、MTU 或分流不一致 | 比較全域模式與另一個網路 |
訂閱更新成功只代表用戶端下載到一份設定,不代表其中每個節點都可用。不要手動猜測使用者識別碼、連接埠、TLS 伺服器名稱或 WebSocket 路徑;這些欄位必須與伺服器端一致。若訂閱剛更新後所有節點都失效,應先確認目前選取的群組確實引用了新節點,再重新啟動核心,避免仍在使用舊的啟用設定。
錯誤:dial tcp: i/o timeout
原因與解法:指定位址與連接埠在逾時前未建立連線。先換用同一訂閱中的另一個節點比較,再切換本機網路,以區分單一節點故障與目前線路無法連線。
錯誤:connection refused
原因與解法:遠端位址可達,但目標連接埠未接受連線。更新訂閱並核對連接埠;若只有此節點出現問題,就不要繼續修改本機代理。
錯誤:invalid user
原因與解法:VMess 或 VLESS 的使用者識別碼與伺服器端不一致,或舊設定已失效。重新更新訂閱並重新選取節點,不要自行改寫使用者識別碼。
錯誤:failed to dial WebSocket
原因與解法:WebSocket 路徑、主機名稱、TLS 參數或中間網路不相符。對照訂閱原始參數,重點檢查傳輸方式與路徑是否被手動修改。
結論:以單一變數比較取代連續切換節點
在同一網路下保留用戶端設定,只切換一個已知可用的節點;接著保留節點,只切換到另一個網路。兩次比較即可區分「節點故障」與「本機線路故障」。
第三步:檢查 DNS 是否在代理前就已失敗
瀏覽器以網域存取網站時,必須先取得位址。若節點伺服器本身使用網域,用戶端也要先解析節點位址;這一步失敗時,代理協定甚至沒有機會開始握手。典型表現是記錄中出現 lookup、no such host 或 failed to find an available destination,而存取本機快取中的舊頁面可能暫時正常。
nslookup v2help.com
nslookup v2help.com 1.1.1.1
第一項使用系統目前的 DNS,第二項指定一部 DNS 伺服器進行比較。若第一項持續逾時,而第二項能在 1 至 2 秒內回傳位址,應先修復系統 DNS;若兩項都失敗,則繼續檢查目前網路是否允許 DNS 查詢。測試完成後再回到用戶端,重新啟動核心並再次發出請求,避免舊的失敗快取影響判斷。
- Windows 可在「設定」→「網路和 Internet」→目前的網路連線中檢查 DNS 設定。
- 修改 DNS 後執行
ipconfig /flushdns,再完全退出並重新開啟瀏覽器。 - v2rayN 7.x 使用自訂 DNS 時,確認填入的是可解析的伺服器位址,設定語法沒有多餘逗號或失效項目。
- 路由規則需要依網域比對時,不要在解析前強制將所有網域改寫成不符合規則預期的位址。
- 若只有節點網域解析失敗,而一般網域正常,應檢查訂閱中的節點位址是否完整,以及其中是否混入空格。
錯誤:failed to lookup ip for domain
原因與解法:核心無法從目前的 DNS 取得節點或目標網域位址。恢復系統 DNS 自動取得,或改用可用的 DNS 設定後重新啟動核心。
錯誤:no such host
原因與解法:網域不存在、拼寫錯誤,或 DNS 回傳不存在的結果。核對訂閱中的伺服器位址,不要將傳輸層主機名稱與節點位址互相替換。
錯誤:failed to find an available destination
原因與解法:出站目標沒有取得可用位址,常見原因是解析失敗或位址族不相符。先恢復預設 DNS,再分別測試 IPv4 與目前網路提供的位址。
第四步:排除路由分流將請求送往錯誤出口
路由分流決定請求要走代理、直連還是封鎖。節點完全可用,但規則將目標網域送往直連出口時,網頁仍可能逾時;反過來,區域網路位址若被送入代理,也可能造成路由器管理頁或本機服務無法開啟。最有效的診斷方式不是立即重寫規則,而是暫時切換到全域代理進行比較。
- 儲存目前的路由設定,記下正在使用的規則集名稱。
- 在 v2rayN 中暫時選擇全域代理對應的路由模式,並重新啟動核心。
- 關閉瀏覽器現有分頁,重新造訪剛才失敗的相同位址。
- 若全域模式恢復正常,問題就在網域規則、位址規則或出站標籤。
- 恢復原本的路由設定,逐條檢查比對順序,不要長期使用全域模式掩蓋錯誤規則。
V2Ray 與 Xray 的路由通常依設定順序進行比對,範圍較寬的規則若放在前面,可能會提前攔截後面的精確規則。例如,涵蓋範圍過大的直連網域規則,會讓原本應走代理的請求直接送出;過早出現的封鎖規則,則會讓請求在本機遭到拒絕。若記錄中能看到目標網域及其出站標籤,應以實際比對結果為準。
v2rayNG 與 v2flyNG 還需要額外檢查分應用程式代理。若只允許選定的應用程式通過 VPN,而瀏覽器未被選取,用戶端可以保持連線,瀏覽器卻始終直連。進入「設定」→「分應用程式代理」,確認目前模式是「繞過已選取的應用程式」還是「僅代理已選取的應用程式」;這兩種模式的勾選含義相反。
結論:全域可用就回頭檢查規則比對
同一節點在全域模式能開啟網頁,恢復分流後卻立即失敗,表示節點與本機連接埠已通過驗證;下一步只需檢查網域規則、位址範圍、分應用程式清單與出站標籤。
第五步:校準系統時間並檢查 TLS 與協定參數
系統時間錯誤會影響 TLS 憑證有效期判定,也會干擾依賴時間範圍的驗證流程。VMess 對用戶端與伺服器端的時間差較敏感;若電腦休眠後時間漂移,或虛擬環境暫停後恢復,可能出現本機連接埠正常、遠端卻持續拒絕的現象。VLESS 搭配 TLS 時,同樣需要正確時間來驗證憑證。
- Windows 進入「設定」→「時間與語言」→「日期與時間」,開啟自動設定時間與自動設定時區。
- 點選「立即同步」,確認日期、時區與分鐘數都正確。
- Android 進入系統「設定」→「系統」→「日期與時間」,啟用網路提供的時間。
- 校準時間後,重新啟動 v2rayN、v2rayNG 或 v2flyNG 的核心,不要只重新整理瀏覽器頁面。
- 若記錄仍顯示 TLS 失敗,核對訂閱中的伺服器名稱、傳輸安全類型與連接埠,避免手動混用其他節點的參數。
錯誤:certificate has expired or is not yet valid
原因與解法:本機時間錯誤,或遠端憑證不在有效期限內。先同步系統時間;若時間正確且只有一個節點發生錯誤,應停止使用該節點並更新訂閱。
錯誤:tls: handshake failure
原因與解法:TLS 伺服器名稱、協定協商或遠端設定不相符。還原訂閱提供的 TLS 參數,確認沒有複製其他節點的伺服器名稱。
錯誤:rejected proxy connection
原因與解法:連線在代理鏈路中遭到拒絕,可能是驗證參數失效,或目標被目前的出站封鎖。更新訂閱後,以同組的另一個節點進行比較,並查看拒絕發生在哪個出站。
也應確認用戶端使用的核心與節點能力相符。v2rayN 可依設定呼叫相應核心;v2rayNG 使用 Xray 核心,v2flyNG 使用 V2Fly 核心。一般 VMess 與 VLESS 設定不代表所有擴充傳輸特性都能在不同核心之間直接互換。若匯入後欄位缺失,或記錄明確提示不支援,應選擇與設定能力相符的用戶端,而不是任意刪除未知欄位。
依序執行的最終排查清單
完成前述檢查後,可以依照以下順序重新走一遍。每一步只需回答「通過」或「未通過」;遇到第一項未通過,就先處理該層,不要繼續疊加修改。這樣既能縮短定位時間,也方便在恢復後撤銷臨時設定。
- 基礎網路:關閉代理後,目前的網路能正常存取一般網頁。
- 核心狀態:用戶端執行記錄沒有顯示連接埠佔用、設定解析失敗或程序退出。
- 本機入口:系統代理指向
127.0.0.1與實際 HTTP 連接埠,或 Android VPN 已取得授權。 - 請求入站:重新整理網頁時,存取記錄能看到新的目標網域或連線記錄。
- 節點可達:至少一個節點能完成真實網頁請求,而不只是延遲探測。
- DNS 正常:系統查詢能在約 1 至 2 秒內回傳結果,記錄中沒有持續出現 lookup 錯誤。
- 路由正確:全域模式與分流模式的比較結果明確,目標命中了預期的出站。
- 時間準確:系統日期、時區與分鐘數已同步,TLS 記錄不再提示有效期限問題。
- 應用程式範圍:瀏覽器未被分應用程式代理排除,也沒有使用過期的獨立代理設定。
- 設定一致:協定、連接埠、使用者識別碼、TLS 伺服器名稱與傳輸路徑均來自同一筆訂閱記錄。
延遲測試有數值,為什麼網頁仍然逾時?
延遲探測不一定會完成協定握手與目標存取。選取節點後開啟執行記錄,再造訪一個網頁,重點查看是否出現 i/o timeout、TLS 或驗證錯誤。
只有瀏覽器無法開啟,其他應用程式都能上網怎麼辦?
先關閉瀏覽器自己的代理設定與擴充功能,確認它會跟隨系統代理;接著完全退出瀏覽器再重新開啟,排除舊連線池對測試的影響。
更新訂閱後仍然使用舊節點嗎?
檢查目前的啟用群組與選取的節點,重新選取更新後的項目,再重新啟動核心。重新整理訂閱清單並不保證正在執行的舊連線會立即切換。
全域模式能用,分流模式不能用,該怎麼修復?
恢復分流後查看目標網域命中的出站標籤,優先檢查排在前面的寬泛直連規則、封鎖規則,以及 Android 分應用程式代理清單。
重新啟動電腦後又無法開啟,需要重新設定嗎?
先確認用戶端是否已啟動、系統代理是否仍指向目前的連接埠,以及連接埠是否被其他程式佔用。設定檔沒有報錯時,不必重新匯入所有訂閱。
如果清單執行到「請求入站」就中斷,問題集中在瀏覽器、系統代理或 VPN 授權;請求進入核心後出現撥號錯誤,則重點處理節點、網路與 DNS;只有分流模式失敗,就直接回頭檢查規則比對。先將故障限定在單一層級,再修改設定,比一次重新安裝用戶端更容易得到可重現的結果。