適合遇到「已選取節點,但網頁無法開啟」或「核心剛啟動就退出」的使用者。先分清用戶端記錄與核心記錄,再依序檢查本機監聽、節點連線、TLS 握手與目標網站存取。本文整理常見錯誤關鍵字、Windows 連接埠檢查指令與單次重現步驟,協助找出問題所在,而非反覆更改所有設定。
先確認記錄來自哪一層
v2rayN 是用戶端介面,實際連線由選用的核心處理。訂閱下載失敗、介面異常、核心啟動失敗,可能會出現在用戶端訊息中;節點連線、DNS 查詢與對外握手通常記錄在核心中。這些問題發生在不同階段,不能把「訂閱更新成功」視為「代理連線成功」,也不能只憑一則測速失敗訊息,就認定所有應用程式都無法連網。
本文以 v2rayN 呼叫 Xray 核心為例。先在主畫面的訊息或記錄區確認目前使用的核心名稱,再前往「設定」→「參數設定」查看記錄相關選項。不同桌面介面與版本的分類名稱可能不同,請以目前介面顯示的「記錄等級」項目為準;不要將下方的 Xray 欄位直接貼到訂閱網址欄。
閱讀記錄時,沿著這條鏈往後追查:應用程式是否將要求送到本機連接埠、路由是否選到預期的對外連線、核心是否連上節點,以及節點是否完成協定握手。確認前一階段正常後,下一階段的錯誤才有助於定位問題。使用 TUN 時也要檢查虛擬網卡與權限,但後續的節點連線和握手判斷仍然適用。
記錄等級與單次重現:先取得可讀的記錄
Xray 常用的 loglevel 值包括 debug、info、warning、error 和 none。記錄越詳細,越容易掌握連線脈絡,也越可能記下存取目標。日常使用可維持較保守的等級;排查時暫時改為 info,若資訊仍不足,再短時間使用 debug。
| 等級或記錄類型 | 適合觀察的內容 | 無法據此判定的事項 |
|---|---|---|
debug | 解析、撥號與握手細節 | 資訊多不代表故障更多 |
info | 連線過程與一般執行事件 | 沒有錯誤不代表網頁已完整載入 |
warning | 值得留意的異常連線 | 單一警告不代表整個核心停止運作 |
error | 嚴重錯誤與部分啟動問題 | 無法涵蓋所有失敗的要求 |
| 存取記錄 | 要求目標、入站與出站標籤 | accepted 不代表遠端握手成功 |
存取記錄與錯誤記錄是不同概念,是否輸出也取決於設定。不要為了「看到 accepted」就隨意開啟所有記錄。以下以單次要求擷取記錄,通常比截取數百行混雜內容更有效。
記錄環境資訊
記下「說明」→「關於」中顯示的用戶端版本,並從啟動訊息記錄核心版本。若目前介面沒有這個選單,請記下視窗中實際顯示的版本資訊。
調整等級
前往「設定」→「參數設定」,找到記錄等級並暫時設為 info。儲存後重新啟動目前使用的核心,確認新設定已生效。
減少變因
固定使用一個節點、一個瀏覽器和一個目標網頁,暫停批次測速與訂閱更新。保留啟動錯誤訊息後,清除舊的畫面記錄;不要刪除仍需比對的記錄檔。
重現一次
記下要求發生的時間,只重新整理頁面一次,收集該時間附近的完整錯誤鏈。若記錄中有連線編號,優先依相同編號串起相關訊息,不要只按相鄰行拼湊。
還原設定
完成問題定位後,將記錄等級調回原值。分享前請遮蔽訂閱網址、認證參數、節點位址與存取網域,只留下必要的錯誤關鍵字與連接埠用途。
connection refused 與連接埠占用:先確認拒絕連線的一方
connection refused 表示建立連線時收到拒絕,常見原因是目標連接埠沒有服務監聽,或網路設備主動拒絕。這與逾時不同。最重要的不是關鍵字本身,而是錯誤訊息中的目標位址:127.0.0.1 指向本機;節點位址指向節點連線;某個遠端目標則可能表示直連出站失敗。
錯誤:dial tcp 127.0.0.1:10808: connect: connection refused
原因:呼叫端連線至本機 10808 連接埠時,沒有可用的服務監聽;核心已退出、連接埠變更或代理位址填錯,都可能造成這種情況。
解決方式:先查看核心啟動訊息,再核對「設定」→「參數設定」中的本機監聽連接埠;確認應用程式填入的位址、連接埠與代理類型一致。
錯誤:bind: address already in use
原因:核心準備監聽的位址與連接埠已被其他處理程序占用;Windows 也可能顯示「通常每個通訊端位址只允許使用一次」。
解決方式:找出正在監聽的處理程序,關閉重複執行的用戶端,或修改本機連接埠並同步更新應用程式的代理設定;不要結束來源不明的系統處理程序。
以下數字僅用於說明連接埠用途,並非所有版本的預設值。10808 是本機監聽範例,443 是節點連接埠範例;實際檢查時請使用目前設定中的數值。
Windows PowerShell 可先查詢監聽狀態,再根據回傳的 PID 找出處理程序。若第一個指令沒有回傳監聽記錄,請先檢查核心是否成功啟動,而不是急著修改節點的 TLS 參數。
Get-NetTCPConnection -LocalPort 10808 -State Listen |
Select-Object LocalAddress, LocalPort, OwningProcess
Get-NetTCPConnection -LocalPort 10808 -State Listen |
ForEach-Object { Get-Process -Id $_.OwningProcess }
此指令查詢的是本機連接埠,不會驗證節點是否可用。若監聽位址是 127.0.0.1,也只表示允許本機存取;不要為了排查問題就隨意改成開放給區域網路存取。
i/o timeout:區分撥號逾時與讀取逾時
i/o timeout 僅表示某項操作超過等待時間。需搭配前面的 dial tcp、read tcp 或 DNS 脈絡一起判讀。撥號逾時表示連線尚未建立;讀取逾時則表示程式等待資料時,未能及時收到回應。兩者要檢查的對象不同。
錯誤:dial tcp 192.0.2.10:443: i/o timeout
原因:連線至節點連接埠的過程未能在期限內完成;位址錯誤、服務無法連線、網路路徑丟包或防火牆丟棄封包,都可能出現這則訊息。此處位址僅供文件示範,不能用於實際連線測試。
解決方式:核對訂閱中的節點位址與連接埠,再改用另一個網路或已知可用的節點交叉測試;不要因一次逾時就立即修改所有傳輸參數。
錯誤:read tcp …: i/o timeout
原因:某段連線在等待讀取資料時逾時,可能與握手、遠端回應或連線閒置有關,並不表示節點連接埠一定無法連線。
解決方式:查看同一連線前面的握手記錄,分辨問題發生於節點握手之前,還是存取目標之後,再分別驗證節點設定與目標網站。
- 所有節點都逾時:優先檢查本機網路、代理迴圈、防火牆與系統時間;同時確認是否因批次測速工作造成網路壅塞。
- 只有一個節點逾時:維持相同網路環境,比較其他節點,並優先檢查該節點的位址、連接埠與服務狀態。
- 只有一個網站逾時:檢查該網域使用了哪個出站,並確認目標網站本身是否可用;不要直接重設所有訂閱。
TCP 連接埠測試成功,只能證明該次 TCP 連線已建立,不能證明 VMess、VLESS 或 TLS 握手設定正確。反過來說,ICMP 沒有回應,也不能單憑這點判定代理服務無法使用。
TLS 握手失敗:分別檢查憑證、名稱與傳輸參數
節點連接埠可以連線後,仍可能在 TLS 階段失敗。先確認錯誤發生於「用戶端到節點」,還是「瀏覽器到目標網站」。瀏覽器顯示的憑證頁面,通常不能直接視為 Xray 節點握手記錄;請以同一次連線的核心錯誤鏈為準。
錯誤:x509: certificate has expired or is not yet valid
原因:憑證有效期限與目前系統時間不符,可能是節點憑證已過期,也可能是本機日期或時區設定錯誤。
解決方式:在 Windows 開啟「設定」→「時間與語言」→「日期與時間」,檢查時間並進行同步;若時間正確,請聯絡節點維護人員檢查憑證。
錯誤:x509: certificate signed by unknown authority
原因:目前環境信任的根憑證無法驗證憑證鏈,可能與伺服器憑證鏈不完整、自簽憑證或網路中的 TLS 檢查有關。
解決方式:先確認節點來源、憑證部署與系統信任環境;不要將停用憑證驗證當作日常修復方式。
錯誤:remote error: tls: handshake failure
原因:遠端中止了 TLS 握手;SNI、TLS 參數或伺服器端政策不符,都可能觸發這種情況。僅憑這句訊息無法確定是哪一項。
解決方式:比對節點提供的伺服器名稱與傳輸設定,更新訂閱後重新連線,並搭配伺服器端記錄確認拒絕原因。
在節點編輯視窗中,核對 serverName 對應的伺服器名稱、TLS 開關與所選傳輸方式。WebSocket 的 Host、路徑與 TLS 的 SNI 位於不同層,不要看到一個網域名稱,就把所有欄位都改成相同值。gRPC 服務名稱也必須與伺服器端設定一致。
DNS、EOF 與路由標籤:補足錯誤脈絡
遇到 DNS 錯誤時,先分辨是「節點網域解析失敗」還是「存取目標解析失敗」。前者可能導致代理連線根本無法建立;後者可能只影響部分網站。使用網域規則、IP 規則與不同 DNS 出站時,解析發生的位置也可能不同;不要一看到 DNS 就只修改 Windows 網卡設定。
錯誤:no such host
原因:網域查詢沒有取得可用的主機結果,可能是拼字錯誤、網域已失效,或解析器回傳否定結果。
解決方式:先確認出錯的網域是節點還是目標,再檢查拼字、DNS 伺服器與解析所用的出站;不要直接將所有網域永久改成 IP 位址。
錯誤:unexpected EOF
原因:對端在程式預期收到更多資料時關閉連線;協定不符、轉送設定異常或遠端中斷,都可能造成這種情況。
解決方式:確認連線是在 TLS、代理協定還是目標回應階段中斷,並核對傳輸方式與伺服器端設定;不能據此直接判定認證參數錯誤。
以下是簡化的存取記錄示意,並非實際測速結果。http 是入站標籤,proxy 是出站標籤,名稱由設定決定。記錄中的 accepted 表示要求已接收並處理,不代表節點已完成認證,也不代表目標網頁已回應。
from 127.0.0.1:52134 accepted tcp:example.com:443 [http -> proxy]
- 預期透過代理連線卻出現
direct:先檢查路由規則順序、網域比對與目前選用的路由設定。 - 出現
block:檢查是否符合封鎖規則;這不是節點連線故障。 - 重現要求時完全沒有相關記錄:確認是否已啟用存取記錄,再檢查瀏覽器是否使用系統代理,或應用程式流量是否進入 TUN。
- 多筆要求交錯出現:依時間、目標與連線編號比對,不要將另一筆背景要求的錯誤當成目前頁面的結果。
常見問題與排查資訊提供方式
記錄一直出現 warning,是不是節點故障了?
先暫停批次測速,只重現一次實際連線。如果頁面正常,而警告來自已取消的背景要求,就不必只因警告數量多而更換節點。若同一筆要求持續失敗,請保留完整錯誤鏈再判斷。
訂閱可以更新,為什麼代理還是連不上?
訂閱更新只代表已取得設定內容。回到主畫面確認已選取該群組中的節點,再查看核心是否成功啟動;接著檢查本機監聽與節點握手記錄,訂閱更新結果無法保證這兩者正常。
網頁無法開啟,但記錄中沒有任何錯誤,該怎麼辦?
先確認記錄等級與顯示區域是否正確。使用瀏覽器送出單次要求,檢查系統代理指向的連接埠;使用 TUN 時,查看網卡與權限訊息。要求若未進入核心,就不會產生對應的出站錯誤。
需要把整份記錄檔傳給別人嗎?
通常先提供啟動資訊、重現時間前後的少量脈絡、用戶端與核心版本,以及是否啟用 TUN。請遮蔽認證參數、完整訂閱連結與個人存取目標;分享螢幕截圖時,也要檢查視窗中的節點名稱與位址。
一份方便複查的問題描述應包含:使用的作業系統、用戶端與核心版本、故障只影響一個節點或所有節點、錯誤發生的確切時間,以及已進行的單一變因測試。例如「本機 10808 已在監聽,切換網路後同一節點仍在 TLS 階段失敗」,會比「軟體不能用」更容易判斷下一步。
- 先啟動:排除核心退出、設定解析與連接埠衝突。
- 再連線:分辨拒絕連線、撥號逾時與 DNS 失敗。
- 接著檢查握手:核對時間、憑證、伺服器名稱與傳輸設定。
- 最後檢查目標:搭配出站標籤與目標回應,判斷是路由問題還是網站本身的問題。