適用於 v2rayN 桌面版,以及 v2rayNG、v2flyNG Android 版的連線逾時排查。先確認測試失敗發生在哪個環節,再檢查時間、本機監聽與請求入口,接著核對伺服器位址、TLS 和傳輸參數,最後確認伺服器監聽與防火牆。每個步驟都保留日誌及重測結果,避免同時修改多項設定而失去判斷依據。
1. 分辨測試逾時與實際連線失敗
清單顯示「逾時」,不代表節點所有功能都無法使用。TCP 連線測試只確認能否建立 TCP 連線;透過代理請求測試網址,還會涉及協定驗證、TLS、網域名稱解析及目標網站回應。先記下使用哪種測試,不要把不同測試的結果視為同一項指標。
- 只有清單測試失敗:選取該節點,用瀏覽器開啟確認可正常連線的網站,同時查看用戶端日誌。若實際瀏覽成功,優先檢查測試網址及測試請求的路由。
- 測試成功但瀏覽器失敗:先確認瀏覽器是否將請求交給本機代理,以及瀏覽器擴充功能是否另有獨立代理設定。
- 所有節點都同時失敗:優先確認核心是否已啟動、系統時間是否正確,以及目前網路是否需要登入網頁認證,不要逐一修改節點參數。
- 只有單一節點失敗:保留正常節點作為對照,集中檢查故障節點的位址、連接埠、傳輸設定及伺服器狀態。
開始前記下用戶端版本、使用的核心、作業系統、測試時間及一段失敗日誌。v2rayN 介面會隨版本更新;下文的桌面選單名稱以 Windows 傳統介面為例,其他介面請尋找名稱相同的設定項目,不必照抄位置。
2. 先檢查系統時間與基本網路
系統時間明顯錯誤會影響 TLS 憑證有效期限的判斷,也可能導致 VMess 的時間相關驗證失敗。VLESS 不能直接套用 VMess 的時間判斷方式,但若外層使用 TLS,系統時間仍須正確。只修改顯示的時區,無法修正實際時間錯誤。
-
同步系統時間
Windows 開啟「設定」→「時間與語言」→「日期與時間」,啟用「自動設定時間」並選擇「立即同步」。Android 可在系統設定中搜尋「日期與時間」,開啟自動設定時間;不同系統的選單名稱可能略有差異。
-
確認網路連線狀態
暫時中斷代理連線,確認目前網路是否需要登入網頁認證。若遇到公共網路的認證頁面,先完成登入再啟動用戶端;基本網路尚未連線時,不要反覆更新節點。
-
單次對照測試
保持節點與設定不變,只切換一次網路後重新測試。若同一節點在另一個網路可用,優先檢查原網路的 DNS、出口政策或存取限制,不能因此直接判定伺服器故障。
Windows 也可以在終端機查詢時間同步狀態。以下指令只會查看狀態,不會修改節點設定;若顯示時間服務未執行,請回到系統時間設定,檢查服務與同步狀態。
w32tm /query /status
3. 檢查本機監聽與應用程式入口
伺服器尚未收到連線前,本機核心可能就已啟動失敗。v2rayN 傳統介面通常可從「設定」→「參數設定」檢查本機監聽設定,並在主畫面確認系統代理狀態。請以實際介面與啟動日誌為準:部分版本採用混合監聽,不要假設每個版本都各自提供 SOCKS 與 HTTP 連接埠。
以上兩個連接埠僅供指令範例使用,不代表任何用戶端版本的預設值。執行前先從自己的設定確認協定類型與連接埠。假設本機 SOCKS 監聽位址確實為 127.0.0.1:10808,可先在 Windows 查詢監聽狀態,再明確指定代理傳送請求:
Get-NetTCPConnection -LocalPort 10808 -State Listen
curl.exe -I --connect-timeout 10 --max-time 20 --proxy socks5h://127.0.0.1:10808 https://example.com/
第一個指令在 PowerShell 中執行;若找不到監聽項目,應先檢查核心啟動日誌與本機連接埠,而非排查遠端憑證。第二個指令中的 example.com 是範例目標,實際排查時可換成已確認可用的 HTTPS 網站。socks5h 表示將目標網域交由代理端解析;10 秒與 20 秒是這次指令明確設定的逾時上限,不是測速結果。
判斷:明確指定代理後可連線,先修復應用程式入口
若指令收到 HTTP 回應,但瀏覽器仍無法開啟相同目標,優先檢查系統代理、瀏覽器獨立代理與路由規則。HTTP 403 等狀態也表示已收到回應,不應與連線逾時混為一談。
- v2rayN:系統代理只會影響遵循該設定的應用程式。明確指定代理的指令會繞過系統代理入口,但不會略過核心中的路由規則。
- v2rayNG、v2flyNG:確認已授予 Android VPN 連線權限,且沒有其他 VPN 連線取代目前連線;若啟用分應用程式代理,請確認目標應用程式已納入代理範圍。
- 只有鎖定螢幕後才失敗:檢查 Android 的背景執行與電池限制,並觀察鎖定螢幕前後是否仍有連線日誌;不要先修改伺服器連接埠來處理背景程序遭停止的問題。
4. 核對伺服器位址、DNS 與連接埠
這裡檢查的是「節點伺服器網域能否解析」,不是瀏覽器最後造訪的網站能否解析。兩者可能採用不同的解析路徑。伺服器位址拼錯、網域記錄過期,或只回傳目前網路無法連線的 IPv6 位址,都可能造成節點逾時。
| 檢查項目 | 具體操作 | 結果判讀 |
|---|---|---|
| 伺服器位址 | 對照節點來源,檢查網域拼字、空格及連接埠 | 位址欄通常不應包含完整網頁 URL 或傳輸路徑 |
| 網域解析 | 使用 Resolve-DnsName 查詢節點網域,比較 A 與 AAAA 記錄 | 系統解析成功,不代表核心使用的解析路徑也一定成功 |
| 遠端 TCP | 使用 Test-NetConnection 測試實際節點位址與連接埠 | 僅適用於 TCP 連線檢查,無法證明協定交握或 UDP 可用 |
| 網路對照 | 同一裝置、同一設定,切換網路後重新測試 | 只變更網路這個變數,避免同時更改 DNS 與傳輸參數 |
PowerShell 可透過互動輸入,避免誤把範例網域當成實際節點。此處的 443 僅適用於遠端確實在該連接埠監聽的節點;若實際連接埠不同,請修改指令中的數值。
$server = Read-Host "輸入節點伺服器網域"
Resolve-DnsName $server
Test-NetConnection -ComputerName $server -Port 443
TcpTestSucceeded : True 只表示可以連上該位址的 TCP 連接埠。若節點使用 CDN,這可能只證明已連線至 CDN 邊緣節點,尚未驗證來源伺服器。Ping 失敗也不能單獨判定節點離線,因為網路設備可能不回應 ICMP。
5. TCP 可連線後,檢查 TLS 與傳輸參數
TCP 連線成功但代理請求仍失敗時,應轉而檢查協定驗證與交握參數。優先依據可信的原始節點資訊重新核對,不要憑經驗將所有節點改成相同的傳輸方式。v2rayNG 使用 Xray 核心,v2flyNG 使用 v2fly 核心;設定能否運作取決於特定協定、功能與核心版本,不能只憑成功匯入就判定相容。
- 協定與憑證:確認 VMess 或 VLESS 類型正確,並確認使用者識別碼、加密與流控設定和伺服器一致。訂閱更新後若伺服器已更換設定,本機清單中可能仍留有舊節點。
- TLS:核對是否啟用 TLS、伺服器名稱 SNI、憑證涵蓋的網域,以及伺服器要求的 ALPN。即使將連線位址改為 IP,仍須保留正確的 TLS 伺服器名稱;不要把略過憑證驗證當作一般修復方式。
- WebSocket:核對路徑與 Host,例如路徑開頭的
/和大小寫都可能影響比對;反向代理也須設定相應路徑及協定升級轉送。 - gRPC:確認 serviceName 與伺服器一致,並確認反向代理支援相應的 HTTP/2 轉送,不要直接套用 WebSocket 的轉送設定。
- REALITY:核對伺服器提供的公鑰、shortId 與伺服器名稱等欄位,並確認用戶端及核心支援該設定;不要將其當成一般 TLS 節點處理。
錯誤:connection refused
原因:連線遭到主動拒絕,常見原因是目標連接埠沒有監聽,或防火牆主動拒絕連線。解法:先從日誌確認位址屬於本機還是遠端,再分別檢查本機核心或遠端監聽狀態,不能直接歸因於節點已到期。
錯誤:i/o timeout
原因:某次網路讀寫未能在期限內完成,可能發生於連線、交握或讀取回應的階段。解法:查看前後日誌,確認逾時對象,再進行連接埠測試及網路對照;只看這一行無法判定問題出在哪一端。
錯誤:x509: certificate has expired or is not yet valid
原因:目前時間不在憑證有效期限內,可能是本機時間錯誤,也可能是伺服器憑證已過期。解法:先同步系統時間;若仍失敗,請服務維護者檢查憑證有效期限與部署狀況。
錯誤:websocket: bad handshake
原因:WebSocket 升級未收到預期回應,常見原因是路徑、Host 或反向代理設定不相符。解法:對照節點欄位檢查入口,並請伺服器端確認請求是否進入正確的轉送位置。
以上是日誌中可能出現的錯誤片段,實際完整訊息會依核心與版本而異。暫時提高日誌詳細程度後,只重現一次故障並保存相關時段的記錄;完成後恢復原本的日誌層級,避免長期產生大量記錄。
6. 最後檢查伺服器監聽與轉送鏈
若沒有伺服器管理權限,只要將用戶端版本、故障時間、錯誤片段及不同網路的測試結果提供給維護者即可。排查時不要索取或傳送管理密碼。若有 Linux 伺服器管理權限,再依序檢查監聽、程序日誌、主機防火牆及雲端入站規則。
sudo ss -lntp
sudo ss -lnup
第一個指令查看 TCP 監聽,第二個查看 UDP 監聽。請核對設定實際使用的協定與連接埠,不必要求每個節點同時監聽 TCP 與 UDP。若前方有反向代理,對外連接埠可能由反向代理程序監聽,而核心只監聽本機內部連接埠;這種架構本身並無異常。
- 確認監聽位置:核對監聽位址是迴路位址還是對外位址,以及連接埠是否與用戶端一致;使用容器部署時,也要檢查連接埠對應與協定類型。
- 查看相關日誌:使用實際服務名稱查看服務狀態與近期日誌,確認是否因設定載入失敗而仍由舊程序執行。用戶端重新測試時,查看相同時間範圍內是否有連線或交握記錄。
- 確認兩層規則:分別檢查主機防火牆與雲端安全性群組,只開放實際需要的協定與連接埠,不要為了排查而直接關閉整套防火牆。
- 檢查轉送鏈後段:若入口收到請求,卻回傳 502、504 或交握失敗,請繼續檢查反向代理到核心的連線、路徑比對、憑證及上游目標的連線狀況。
判斷:入口已收到請求,接著檢查轉送鏈後段
若入口日誌在相同時間記錄到請求,接下來應追查驗證、反向代理與對外連線,而不是繼續隨機更換本機監聽連接埠。入口沒有日誌也不能單獨證明流量未抵達,還須確認日誌層級及記錄位置。
7. 使用相同條件重測並整理結果
每完成一項修改,就使用相同節點、目標及測試方式重新測試。單純延長逾時時間只會增加等待上限,無法修復錯誤的連接埠或 TLS 參數。若小型請求成功,但下載或特定網站失敗,再將問題範圍縮小至目標網站、路由、DNS 或路徑 MTU,不要立刻重新安裝用戶端。
- 記錄必要資訊:註明實際測試時間與時區、用戶端及核心版本、連線網路、故障階段與最近一次變更。
- 保留最低限度的證據:保存啟動結果、本機監聽結果、遠端連接埠測試結果,以及一次實際請求的相關日誌。
- 分享前請先去識別化:移除訂閱連結、使用者識別碼、存取權杖及節點分享資訊;只有在可信任且確實需要定位問題的溝通中,才提供伺服器位址。
- 停止無效修改:若證據已指向遠端監聽或服務設定,請保留目前可重現問題的狀態交由維護者處理,避免繼續增加本機變數。
排查完成的標準,是請求能沿相同路徑穩定收到回應,而不只是清單中的延遲數字恢復正常。若之後再次逾時,沿用這份記錄比重新嘗試所有設定更容易找出原因。