適用於 Windows 上 v2rayN 顯示監聽失敗,或啟動後瀏覽器無法連線至本機代理的情況。先從記錄確認出錯的連接埠,再查出對應的監聽程序;若能關閉重複執行的執行個體,就釋出連接埠,否則改用確認閒置的連接埠。最後更新系統代理和應用程式內的代理設定,避免核心已恢復,應用程式卻仍連到舊位址。
一、先確認是本機監聽失敗,別急著換節點
在 v2rayN 主畫面的記錄區查看這次啟動資訊,留意 listen、bind 和 127.0.0.1:10808。如果核心尚未成功建立本機入口,請求就無法送達節點。這時更新訂閱,或變更 VLESS、VMess 的伺服器連接埠,都無法排除電腦上的監聽衝突。
錯誤:bind: Only one usage of each socket address (protocol/network address/port) is normally permitted.
原因與解法:這是 Windows 常見的位址占用錯誤,對應錯誤碼 10048。先查出記錄所指連接埠的監聽 PID,再決定要結束重複執行的程序,或變更本機入口。
錯誤:bind: An attempt was made to access a socket in a way forbidden by its access permissions.
原因與解法:常見於錯誤碼 10013,可能與連接埠保留範圍或安全性原則有關,並不代表已有程式正在監聽。若查不到 PID,請接著檢查排除的連接埠範圍,不要反覆結束程序。
錯誤:No connection could be made because the target machine actively refused it.
原因與解法:應用程式連線的位址上沒有可用的監聽服務,也可能仍指向變更前的舊連接埠。先確認核心已成功啟動,再核對應用程式實際使用的代理位址。
錯誤訊息會因系統語言和核心版本而異,判斷時請以本機位址、連接埠和錯誤含義為準。127.0.0.1 是電腦本身的回送位址,不是訂閱伺服器位址;0.0.0.0 則代表監聽所有 IPv4 網路介面,其連接埠占用也可能影響回送位址的監聽。
二、確認 10808 和 10809 在目前設定中的用途
開啟「設定」→「參數設定」,查看本機監聽相關欄位。傳統雙入口設定通常將 SOCKS 設為 10808、HTTP 設為 10809;使用混合入口的設定則可讓 HTTP 和 SOCKS 共用一個連接埠。不要只憑舊教學就認定電腦上一定要同時有兩個監聽連接埠。
本機連接埠只決定應用程式如何連入用戶端。路由分流決定連入後使用哪個出口,遠端節點連接埠則決定核心要連到哪裡。三者不可混為一談。本文的 11808、11809 只是候選連接埠,不能保證一定閒置。
三、使用 netstat 找出占用連接埠的 PID
在 Windows「開始」功能表搜尋「終端機」,開啟 PowerShell 或命令提示字元,先執行以下兩個命令。一般權限通常可以查看連線記錄;若要查看受保護程序的資訊,再改用系統管理員終端機。
netstat -ano -p tcp | findstr ":10808"
netstat -ano -p tcp | findstr ":10809"
優先查看本機位址欄和 LISTENING 狀態。以下僅為格式範例,並非目前電腦的實際結果。最後一欄 6420 是 PID,同一個程序可能同時建立 IPv4 和 IPv6 監聽。
TCP 127.0.0.1:10808 0.0.0.0:0 LISTENING 6420
TCP [::1]:10808 [::]:0 LISTENING 6420
將查到的實際 PID 帶入下一個命令。若結果只有 ESTABLISHED 或 TIME_WAIT,不要直接把其中的 PID 當成監聽衝突來源;也要確認比對的是本機連接埠,而非遠端連線位址。
tasklist /FI "PID eq 6420"
- 如果看到另一個 v2rayN 執行個體:查看系統匣和工作管理員,優先從舊執行個體的系統匣選單中選擇結束。
- 如果看到代理核心程序:先確認所屬用戶端和檔案位置,避免關閉目前正常運作的執行個體。
- 如果看到其他應用程式或系統服務:先確認用途;若仍需要使用,請保留該服務並變更 v2rayN 本機連接埠。
- 如果看到不熟悉的程序:在工作管理員的「詳細資料」中依 PID 找出程序,查看「開啟檔案位置」,不要只憑名稱猜測。
四、關閉重複執行的執行個體,或變更本機監聽連接埠
先在系統匣選單中將系統代理設為「清除系統代理」,避免調整期間應用程式持續連線到失效的入口。如果確認只是誤開了兩個執行個體,結束多餘的執行個體後重新啟動保留的用戶端即可,不一定要更換連接埠。
-
記下原設定值
前往「設定」→「參數設定」,記下目前的本機監聽連接埠、是否允許區域網路連線,以及使用獨立入口或混合入口。欄位名稱可能因版本而異,請以目前介面為準。
-
查詢候選連接埠
依照上一節的方法查詢 11808;若目前設定有獨立的 HTTP 入口,也要查詢 11809。若有監聽記錄,就換一組候選值,不要占用其他服務的連接埠。
-
變更本機入口
在「設定」→「參數設定」的本機監聽設定中,將 SOCKS 連接埠改為 11808;若有獨立的 HTTP 連接埠欄位,則改為 11809。若介面只有混合入口,只要將該入口改為 11808,不必另外尋找或新增 11809。
-
儲存並重新啟動
按一下「確定」儲存,並依介面提示重新啟動核心;若仍顯示舊值,請結束 v2rayN 後再重新開啟。接著查看記錄,確認新的本機位址沒有再次出現 bind 錯誤。
-
確認新的監聽狀態
重新查詢 11808 和實際設定的 HTTP 入口。監聽 PID 應屬於目前執行的用戶端核心;舊連接埠已消失,並不代表新連接埠已成功啟動。
netstat -ano -p tcp | findstr ":11808"
netstat -ano -p tcp | findstr ":11809"
若使用自訂設定檔,監聽位址通常由設定中的 inbounds 決定,介面上的連接埠不一定會覆寫該檔案。請先備份,再檢查實際載入設定中的 listen、port 和 protocol,避免只修改介面設定,執行時卻仍載入舊連接埠。
五、同步更新系統代理與應用程式內的代理設定
核心開始監聽新連接埠後,在 v2rayN 系統匣選單的「系統代理」中選擇「自動設定系統代理」。接著前往 Windows「設定」→「網路和網際網路」→「Proxy」查看生效的位址。請勿將「自動設定系統代理」誤解為所有應用程式都會自動更新手動代理設定。
| 使用位置 | 雙入口範例 | 混合入口範例 | 檢查重點 |
|---|---|---|---|
| Windows 系統代理 | 127.0.0.1:11809 | 127.0.0.1:11808 | 應指向支援 HTTP 代理的入口 |
| 應用程式手動設定 SOCKS5 | 127.0.0.1:11808 | 127.0.0.1:11808 | 同時核對主機、連接埠與代理協定 |
| 應用程式手動設定 HTTP | 127.0.0.1:11809 | 127.0.0.1:11808 | 不可指向僅支援 SOCKS 的入口 |
| 終端機環境變數 | 依 HTTP 或 SOCKS 類型填寫 | 依應用程式支援的代理類型填寫 | 已開啟的終端機可能仍保留舊值 |
如果瀏覽器使用獨立代理設定,請在瀏覽器內同步變更。命令列程式也不一定會讀取 Windows 系統代理:請檢查現有的 HTTP_PROXY、HTTPS_PROXY 和 ALL_PROXY 環境變數,尤其留意值中是否仍包含 10808 或 10809。變更使用者環境變數後,請開啟新的終端機再測試。
結論:監聽恢復後,優先檢查舊連接埠的設定
若部分應用程式已恢復,只有某個應用程式仍顯示連線遭拒,請先檢查該應用程式的手動代理設定和程序環境,不要立刻再次更換連接埠。讓應用程式改用已確認正在監聽的新入口,通常比重設整套訂閱設定更直接。
六、查不到監聽程序時,檢查保留連接埠與啟動方式
若連接埠查詢沒有結果,卻持續出現權限相關錯誤,請在系統管理員終端機中檢查 Windows 的 TCP 排除連接埠範圍。虛擬化、容器或系統網路元件可能會使用這些範圍,一般的監聽查詢不一定會顯示占用它們的 PID。
netsh interface ipv4 show excludedportrange protocol=tcp
netsh interface ipv6 show excludedportrange protocol=tcp
- 候選連接埠落在起始與結束連接埠範圍內:請改用範圍外的連接埠,並重新檢查監聽狀態。不要只為了代理入口就刪除系統保留範圍。
- 手動啟動正常,登入後又發生衝突:檢查「工作管理員」→「啟動應用程式」,以及自行建立的排程工作,避免同一個用戶端從兩處同時啟動。
- 結束後連接埠立刻再次出現:重新查詢 PID,確認是否有背景工作自動啟動舊執行個體。結束單一程序無法解決重複啟動的根本原因。
- 只有 UDP 發生錯誤:使用
netstat -ano -p udp檢查對應連接埠。TCP 和 UDP 是不同的傳輸協定,不能只憑 TCP 查詢結果判斷所有入口。
變更本機連接埠通常不需要新增防火牆輸入規則。若僅供本機使用,維持回送位址監聽即可;將監聽位址改為 0.0.0.0 無法排除連接埠衝突,反而可能讓區域網路中的裝置也能連上代理入口。只有確實需要共用時,才另外評估存取範圍和防火牆規則。
七、依三個層級確認修復完成
先檢查本機 TCP 入口,再檢查應用程式代理設定,最後才確認節點連線。以下 PowerShell 命令僅用來驗證本機連接埠是否能建立 TCP 連線,無法證明遠端節點、DNS 或路由分流都正常。
Test-NetConnection -ComputerName 127.0.0.1 -Port 11808
- 本機層:結果中的
TcpTestSucceeded為True,記錄中沒有新的監聽錯誤,且 PID 對應到正確的核心程序。 - 應用程式層:系統代理和手動代理都指向新連接埠;將測試中的應用程式完全結束後重新開啟,以排除舊程序保留設定的情況。
- 對外連線層:使用原本要連線的網頁或服務進行測試。若本機入口正常,但記錄開始出現遠端連線逾時,請接著檢查節點位址、訂閱是否有效及網路狀況。
Android 版 v2rayNG 使用 Xray 核心,但其 VPN 授權與分應用程式代理和 Windows 系統代理設定無關。本文命令適用於 Windows 版 v2rayN,不應直接套用到手機。排查桌面版問題時也不必修改手機設定,除非手機確實透過區域網路連線至這台電腦的代理入口。