V2Ray 節點逾時怎麼排查:系統時間、連接埠與 TLS 交握檢查順序

依序檢查本機與遠端:確認系統時間、連接埠占用、傳輸方式及 TLS 參數,找出 V2Ray 節點逾時或無法連線的原因。

本文重點

適用於 v2rayN 節點測試逾時、瀏覽器無法開啟網頁,以及 v2rayNG 顯示已連線卻無法上網的情況。先確認測試流量確實經過用戶端,再檢查系統時間、本機監聽、伺服器連接埠及交握參數。每次只修改一項,並以相同目標重新測試,避免將系統代理問題誤判為節點故障。

1. 先判斷逾時發生在哪一層

介面顯示「逾時」只是結果,不是原因。一次連線可能依序經過應用程式代理設定、本機入站、DNS 解析、遠端連線及協定交握。前一層尚未完成,即使 TLS 參數正確也無法解決問題。先記下失敗時間、節點使用的協定、伺服器連接埠,以及當時使用的是系統代理還是 TUN 模式。

應用程式代理入口 本機入站監聽 遠端位址解析 伺服器連線 協定與交握

v2rayN 是桌面用戶端,實際連線由所選核心執行;v2rayNG 使用 Xray 核心,v2flyNG 使用 v2fly 核心。協定名稱、用戶端名稱與核心名稱是不同層級的概念。排查時應記下實際使用的核心及版本,而不只是寫「V2Ray 不能用」。

2. 校正系統時間,再重新測試交握

系統日期、時間或時區設定異常,可能影響憑證有效期判斷,也可能影響 VMess 的時間相關驗證。VLESS 不採用 VMess 類似的時間驗證,但啟用 TLS 時仍須驗證伺服器憑證。即使節點改用 VLESS,也不要略過系統時間檢查。

  1. 確認日期與時間

    在 Windows 11 開啟「設定」→「時間與語言」→「日期與時間」,確認年月日及目前時間,並開啟「自動設定時間」。時區應與所在地區一致;不要只憑工作列顯示的時數判斷系統時間是否正確。

  2. 執行同步

    在同一頁面點選「立即同步」。若同步失敗,請檢查目前網路是否允許連線至時間服務。電腦從睡眠喚醒、虛擬機還原快照或主機板電池異常後,也應再次確認時間。

  3. 查看同步狀態

    開啟 PowerShell,執行下方查詢指令,查看時間來源及上次成功同步的時間。需要重新同步時,請以系統管理員身分執行第二條指令;若服務尚未啟動或沒有可用的時間資料,先依提示處理。

  4. 重新發出連線請求

    校正時間後,停止再重新啟動用戶端連線,使用原本的節點及測試目標重新測試。Android 可在系統設定中搜尋「日期與時間」並開啟自動設定;各裝置的設定位置可能不同。

w32tm /query /status
w32tm /resync

3. 確認本機連接埠確實在監聽

開啟系統代理不代表核心已成功啟動。如果系統代理指向沒有程式監聽的連接埠,瀏覽器通常會立即顯示連線失敗;若連接埠已被其他程序占用,用戶端也可能無法建立入站連線。先在 v2rayN「設定」→「參數設定」確認本機監聽連接埠及入站類型。選單名稱可能因版本而異,請以目前介面上的設定項目為準。

127.0.0.1
本機迴路位址,不是遠端節點
10808
以下為本機連接埠範例,請以設定值為準
443
常見的 TLS 服務連接埠,並非固定要求

以下以本機連接埠 10808 為例。第一條指令查看監聽程序的識別碼,第二條查看對應程序。若用戶端設定的是其他連接埠,請一併修改指令中的數字;若沒有任何輸出,通常表示找不到該連接埠的 TCP 監聽。

Get-NetTCPConnection -State Listen -LocalPort 10808 -ErrorAction SilentlyContinue |
  Select-Object LocalAddress, LocalPort, OwningProcess

Get-NetTCPConnection -State Listen -LocalPort 10808 -ErrorAction SilentlyContinue |
  ForEach-Object { Get-Process -Id $_.OwningProcess }

錯誤:Only one usage of each socket address (protocol/network address/port) is normally permitted.

原因:在 Windows 上,本機連接埠常被其他程序或重複啟動的用戶端占用。

處理方式:先確認記錄中的繫結位址與連接埠,再關閉確認不需要的重複程序,或更換本機監聽連接埠,並同步更新應用程式的代理設定。

判斷方式:先確認監聽狀態,再調整系統代理

若本機連接埠沒有監聽,先查看核心啟動記錄;若連接埠正在監聽且程序正確,再確認應用程式使用的是 HTTP、SOCKS 還是混合入站。不要將 HTTP 代理指向只接受 SOCKS 的連接埠。

4. 分別測試 DNS 與伺服器連接埠

確認本機監聽正常後,再檢查節點的伺服器位址。伺服器位址用來建立連線,TLS 的 SNI 則指定交握時使用的伺服器名稱,兩者可以不同。請從節點編輯視窗取得伺服器位址,不要拿訂閱網址或 WebSocket 路徑來測試。

以下指令請在 Windows PowerShell 中執行。依提示輸入伺服器主機名稱或 IP,以及節點設定中的遠端連接埠。輸入內容僅供本機診斷使用;請勿將包含個人節點資訊的完整輸出貼到公開頁面。

$server = Read-Host "輸入節點的伺服器主機名稱或 IP"
$port = [int](Read-Host "輸入節點的遠端連接埠")

Resolve-DnsName -Name $server
Test-NetConnection -ComputerName $server -Port $port -InformationLevel Detailed

5. 依序核對 TLS、傳輸與驗證設定

遠端 TCP 連接埠可連線,但仍無法透過代理上網時,請開始核對交握參數。不要因為「都是 443 連接埠」就認定設定相同:同一連接埠可以提供不同服務,反向代理也可能依名稱、路徑或服務名稱轉送流量。

檢查層級設定欄位常見誤解與處理方式
TLS安全類型、SNI、憑證名稱SNI 應依伺服器設定填寫;憑證涵蓋的名稱不一定與伺服器 IP 相同,不能任意互換。
傳輸方式TCP、WebSocket、gRPC用戶端與伺服器的設定必須相符;切換傳輸方式並不是通用的逾時修復方法。
WebSocketHost、路徑路徑開頭的斜線、大小寫及副檔名都可能影響反向代理路由;Host 不應直接視為 SNI。
gRPCserviceName、ALPN服務名稱必須與伺服器設定一致;使用 TLS 上的 HTTP/2 時,伺服器必須正確協商 h2。
協定驗證UUID、密碼、flow依照實際協定確認身分欄位;VLESS 的 flow 必須在用戶端與伺服器端設定一致。
REALITY公鑰、shortId、serverNameREALITY 使用獨立的交握參數,不能只當作一般 TLS 憑證問題處理。

若節點來自訂閱,請先儲存目前設定,再更新對應訂閱並比較變更內容。手動修改的節點可能在下次更新時被覆寫,請記下修改項目。不要在同一次測試中同時變更 SNI、傳輸方式和伺服器位址;否則即使問題消失,也無法判斷真正原因。

錯誤:x509: certificate has expired or is not yet valid

原因:本機時間錯誤,或伺服器憑證已過期或尚未生效。

處理方式:先校正本機時間,再請伺服器管理者確認憑證有效期及部署狀況。

錯誤:remote error: tls: handshake failure

原因:對端拒絕 TLS 交握,可能與 SNI、協定協商或伺服器設定有關;僅憑這則記錄無法判定唯一原因。

處理方式:逐項比對 TLS 設定欄位,並參考相同時間的伺服器記錄,確認拒絕原因。

錯誤:websocket: bad handshake

原因:未收到預期的 WebSocket 升級回應,常見原因是路徑、Host 或反向代理轉送設定不符。

處理方式:核對節點的 WebSocket 欄位,再確認伺服器是否將升級請求轉送至正確的入站。

6. 使用固定請求驗證代理連線

核對參數後,使用固定目標發出請求。以下指令適用於已確認 10808 接受 SOCKS 連線的本機入站;若使用其他連接埠,請依實際設定替換。socks5-hostname 會將目標主機名稱交由代理解析,避免本機解析目標網站時發生的問題影響這次測試。

curl.exe --proxy socks5-hostname://127.0.0.1:10808 --connect-timeout 10 --max-time 20 --head https://example.com/

這裡的 10 秒與 20 秒是診斷指令設定的連線時限及總時限,不是節點效能標準。收到正常的 HTTP 回應標頭,表示這次請求已透過本機 SOCKS 入站完成連線;即使回傳的狀態碼不是成功,也不一定代表代理失敗,請一併查看回應內容。若請求失敗,請立即查看同一時間的核心記錄。

使用 TUN 或複雜路由時,請一併確認測試請求實際走的是哪條出站。明確指定本機代理可以排除應用程式是否讀取系統代理的差異,但不會自動略過用戶端內部的分流規則。如需了解規則優先順序,請參閱路由分流說明。

7. 交叉測試後,再判斷是否為遠端故障

確認本機監聽、系統時間、遠端位址及交握設定都無誤後,最後進行小範圍交叉測試。保持相同裝置與節點,改用另一個可使用的網路;再保持相同網路,測試另一個已知可用的節點。每次只改變一個條件,測試結果才有參考價值。

錯誤:i/o timeout

原因:某次讀寫未能在指定時間內完成,可能發生於連線、交握或傳輸階段,必須比對前後記錄才能判斷位置。

處理方式:先確認記錄中的目標位址指向遠端節點還是最終網站,再針對對應層級進行連接埠測試或交叉驗證。

錯誤:connection refused

原因:目標連接埠沒有程序監聽,或連線遭到主動拒絕;這與長時間沒有回應的逾時不同。

處理方式:先確認遭拒絕的是本機入站還是遠端連接埠,再分別檢查核心啟動狀態,或伺服器監聽與防火牆設定。

判斷方式:將問題縮小至可重現的層級

同一節點改用其他網路後恢復,應優先檢查原本的網路路徑;同一網路只有一個節點失敗,則應優先核對該節點設定及遠端狀態。這兩種結果都只是排查線索,仍須參考記錄確認,不宜直接歸因於限速或封鎖。

仍無法找出原因時,可依照疑難排解入口繼續檢查。先釐清「哪一層、發生什麼錯誤、如何重現」這三項資訊,比反覆更新訂閱、切換核心或重新安裝用戶端更有助於解決問題。

v2rayN 下載中心