適用於 Windows 版 v2rayN 無法啟動核心,且日誌出現 bind 或 address already in use 的情況。先判斷是連接埠衝突還是權限限制,再用 netstat 或 PowerShell 找出監聽程序。確認程序用途後,關閉重複執行的執行個體,或變更本機監聽連接埠;最後同步系統代理與應用程式設定並測試連線。
先看日誌:確認是否本機監聽失敗
v2rayN 視窗能開啟,不代表代理核心已正常啟動。介面用來管理設定,核心則負責接收本機連線並連接遠端伺服器。如果日誌顯示無法監聽 127.0.0.1:10808,問題出在本機入口;此時反覆更新訂閱或切換 VMess、VLESS 節點,通常無法解決監聽失敗。
先查看主視窗的日誌區域,記下完整錯誤訊息,尤其是位址、連接埠及最後的系統錯誤。不同核心、系統語言與版本的錯誤文字可能不同,以下列出常見的錯誤關鍵字,不必逐字完全相同。
bind: Only one usage of each socket address (protocol/network address/port) is normally permitted.
原因與解法:相同的監聽位址與連接埠發生衝突。先查出對應的 PID,確認是否為另一個 v2rayN 執行個體或其他本機服務,再決定要結束程序還是更換連接埠。
bind: address already in use
原因與解法:目標通訊端已被占用。依照日誌中的實際連接埠查詢監聽程序,不要只檢查慣用的 10808。
bind: An attempt was made to access a socket in a way forbidden by its access permissions.
原因與解法:系統拒絕繫結,可能與連接埠排除範圍或安全性原則有關,不一定是已有程序正在監聽。若查不到 PID,請繼續檢查系統保留連接埠。
確認連接埠:10808 與 10809 不一定會同時使用
部分舊版或舊設定會以 10808 作為 SOCKS 入口、10809 作為 HTTP 入口;另一些版本則使用單一混合監聽連接埠,同時接收 HTTP 與 SOCKS 請求。請以目前「設定」→「參數設定」中的欄位及啟動日誌為準,不要照著教學額外建立原本不存在的入口。
本機監聽連接埠與伺服器連接埠是不同設定。節點編輯視窗中的「連接埠」是連線至遠端伺服器的參數,無法用來解決本機 10808 衝突。訂閱提供的伺服器位址、使用者 ID、傳輸方式與 TLS 設定也應維持不變。
判斷原則:只修改發生衝突的本機入口
日誌回報 10808,就先找出 10808 的監聽程序;只有目前設定確實啟用了獨立 HTTP 入口,才需要一併檢查 10809。修改節點的遠端連接埠,反而會引發另一種連線問題。
找出程序:用 PID 確認哪個程序正在監聽
開啟 Windows「終端機」或「命令提示字元」,執行以下兩個命令。一般查詢不必先以系統管理員身分執行;若看不到程序路徑,再以系統管理員身分開啟終端機查詢。命令只會讀取網路狀態,不會結束程序。
netstat -ano -p tcp | findstr ":10808"
netstat -ano -p tcp | findstr ":10809"
請查看本機位址欄是否以目標連接埠結尾,以及狀態是否為 LISTENING。例如 127.0.0.1:10808、0.0.0.0:10808 或 [::]:10808。不要把遠端位址中的 10808,或狀態為 TIME_WAIT 的舊連線,誤認為目前的監聽程序。
最後一欄是 PID。以下僅示範輸出格式,並非實際裝置的查詢結果;其中 6420 只是用來說明如何接著查詢程序名稱,實際操作時請改用畫面上顯示的 PID。
TCP 127.0.0.1:10808 0.0.0.0:0 LISTENING 6420
tasklist /FI "PID eq 6420"
用 PowerShell 精確篩選連接埠
若不想逐行辨認輸出內容,可以在 PowerShell 依本機連接埠與監聽狀態篩選。沒有輸出通常表示查詢當下沒有符合條件的 TCP 監聽項目,但不代表連接埠一定能成功繫結,也無法排除程序正在反覆啟動。
Get-NetTCPConnection -State Listen -LocalPort 10808,10809 -ErrorAction SilentlyContinue |
Select-Object LocalAddress,LocalPort,OwningProcess
Get-Process -Id 6420 | Select-Object Id,ProcessName,Path
- 查到 v2rayN 或其核心程序:確認是否曾從兩個不同資料夾啟動客戶端,或上次關閉後仍有核心程序留在背景執行。
- 查到其他應用程式:確認程序路徑、視窗與啟動項目。若服務必須保留,不必將它關閉,可改讓 v2rayN 使用未占用的連接埠。
- 查到系統服務或無法辨識的程序:先記下 PID 與路徑,不要直接強制結束;建議優先修改 v2rayN 的本機入口。
解除衝突:結束重複執行的執行個體,或修改本機連接埠
如果占用連接埠的是重複啟動的客戶端,建議先在系統匣圖示上按右鍵,選擇「結束」。按下視窗右上角的關閉按鈕,可能只會將視窗縮到系統匣,監聽連接埠仍會維持開啟。結束後重新查詢,確認原有監聽項目已消失,再啟動要保留的 v2rayN。
- 記下目前設定:開啟「設定」→「參數設定」,找到本機監聽相關選項。不同版本可能會顯示「本機監聽連接埠」或「本機混合監聽連接埠」等欄位;請記下連接埠、監聽位址,以及是否有獨立的 HTTP 入口。
- 檢查備選連接埠:執行下方命令檢查 11808;只有需要第二個獨立入口時,才檢查 11809。確認沒有監聽項目只是第一步,儲存後仍須確認核心是否成功啟動。
- 修改本機入口:將發生衝突的本機監聽連接埠改為 11808。如果介面明確提供獨立 HTTP 連接埠,且該入口也有衝突,可以為它另設一個未占用的連接埠,例如 11809;使用混合連接埠時,不必照搬第二個設定。
- 儲存並重新啟動:儲存參數,讓設定重新載入;若日誌沒有新增啟動記錄,請結束並重新開啟 v2rayN,再確認新連接埠的監聽狀態。
- 維持監聽範圍:僅在本機使用時,請保留回送位址;不要為了解決連接埠占用而啟用「允許來自區域網路的連線」。擴大監聽範圍無法排除連接埠衝突。
Get-NetTCPConnection -State Listen -LocalPort 11808,11809 -ErrorAction SilentlyContinue |
Select-Object LocalAddress,LocalPort,OwningProcess
11808 和 11809 只是方便說明的備選連接埠,並非固定的安全連接埠。如果已被其他服務使用,可改選其他未占用且不在系統排除範圍內的高號連接埠。連接埠衝突與路由分流是不同層級的問題,排除故障時不必同時修改 GeoSite 規則、DNS 或 TUN 模式,以免增加變因。
找不到監聽程序:檢查 Windows 連接埠排除範圍
如果 netstat 查不到監聽程序,但日誌持續出現權限相關的 bind 錯誤,可在系統管理員終端機查看 Windows 的 TCP 排除範圍。虛擬化、容器與系統網路元件可能會預留連接埠;預留的連接埠不一定會對應到可見的監聽 PID。
netsh interface ipv4 show excludedportrange protocol=tcp
netsh interface ipv6 show excludedportrange protocol=tcp
輸出內容會列出起始與結束連接埠,兩端都包含在範圍內。假設某一列顯示 11700 至 11799,11750 就落在此範圍內;這只是說明如何讀取結果,不代表系統一定保留了這段範圍。請依照日誌中的實際監聽位址,檢查相應位址家族的結果。
- 如果備選連接埠落在排除範圍內,請優先改選範圍外的其他連接埠,然後重新儲存並啟動核心。
- 不要為了釋出一個本機代理入口,就直接刪除系統排除範圍或停止不熟悉的網路服務。
- 若連接埠沒有被監聽,也不在排除範圍內,卻仍無法繫結,請繼續檢查安全軟體事件、核心日誌及重複的入站設定。
- 同一份設定中若定義了兩個重複的監聽入口,也可能造成衝突;使用自訂設定時,請檢查入站規則的位址與連接埠組合。
確認修復結果:同步系統代理與手動代理設定
新連接埠成功開始監聽後,也要讓使用代理的應用程式改連新的入口。否則即使核心已恢復,瀏覽器仍可能連到舊的 10808,導致網頁無法開啟。請先在 v2rayN 底部的「系統代理」選單中選擇「清除系統代理」,再選擇「自動設定系統代理」,讓客戶端依目前設定重新寫入代理位址。
以混合入口 127.0.0.1:11808 為例,可在 Windows 終端機透過 HTTP 代理發出請求。此處使用 curl.exe,避免部分 PowerShell 環境將 curl 解讀為其他命令。如果你的設定使用獨立 HTTP 入口,請將命令中的連接埠改為該入口的實際值。
curl.exe --proxy http://127.0.0.1:11808 --connect-timeout 10 --max-time 20 -I https://example.com/
命令中的 10 秒是連線逾時上限,20 秒是整個請求的時間上限,並非速度測試結果。收到最終目標回傳的 HTTP 回應,表示這次請求的本機代理入口與後續連線可用;只有代理通道建立的提示,還不能證明目標網頁已成功回應。單次成功也不代表所有應用程式都已使用系統代理。
- 檢查監聽狀態:確認新連接埠有
LISTENING項目,且 PID 屬於目前使用的客戶端核心。 - 檢查日誌:確認原本的 bind 錯誤不再出現;若改為遠端連線逾時,請轉而檢查節點是否可用,不要繼續修改本機連接埠。
- 檢查應用程式設定:瀏覽器擴充功能、開發工具、終端機環境變數及其他手動代理設定,不一定會隨系統代理一併更新,請逐項改用新的位址。
- 確認重新啟動結果:結束後再啟動一次,確認連接埠設定已儲存,並檢查系統啟動項目是否會再次啟動另一個客戶端執行個體。
常見問題:更換連接埠後仍無法使用
視窗已關閉,為什麼 10808 仍在監聽?
先確認系統匣是否仍有 v2rayN 圖示。關閉視窗可能只是將程式縮到系統匣,請按右鍵選擇「結束」。接著重新查詢 PID;如果仍有監聽項目,請確認是否有從其他資料夾啟動的執行個體或殘留核心,再處理已確認所屬的程序。
查不到 10809,是不是設定壞了?
不一定。如果目前版本只設定了一個混合入口,10809 本來就可能沒有監聽。請前往「設定」→「參數設定」確認入口類型;HTTP 和 SOCKS 請求都應使用目前實際啟用的連接埠,而非依賴舊教學中的預設值。
改用 11808 後,瀏覽器能用但終端機不行?
檢查終端機的 HTTP_PROXY、HTTPS_PROXY、ALL_PROXY 是否仍指向舊連接埠。代理環境變數不會因客戶端變更連接埠而自動更新;修改後通常需要重新開啟終端機。也可以先使用上文含 --proxy 的命令明確指定入口,排除環境變數的影響。
每次開機都發生衝突,得一直更換連接埠嗎?
不必。請先到「工作管理員」→「啟動應用程式」檢查啟動項目,並查看客戶端本身的開機啟動設定,只保留一個需要的啟動入口。如果另一個項目是必須執行的本機服務,請為兩者指定不同連接埠並固定使用,之後再同步各應用程式的代理設定。