v2rayN 本機連接埠遭占用:排查 10808 衝突並變更監聽連接埠

啟動時出現連接埠遭占用的提示?本文說明如何用系統指令找出占用程序、在參數設定中變更本機 SOCKS 與 HTTP 監聽連接埠,以及變更後需要同步調整的設定。

本文重點

適用於 v2rayN 啟動核心時出現監聽失敗,或瀏覽器提示代理連線遭拒的情況。先從記錄確認衝突的連接埠,再用 Windows 指令找出監聽程序;若是重複執行的程式,能關閉就保留原連接埠,只有必須同時執行多個執行個體時才變更監聽設定。最後同步調整系統代理與應用程式代理,避免「核心已啟動,瀏覽器仍連到舊連接埠」的後續問題。

一、10808 衝突與節點連線失敗的差異

本機監聽連接埠是瀏覽器、命令列工具連線至 v2rayN 核心的入口,並非訂閱伺服器的遠端連接埠。若記錄顯示無法繫結 127.0.0.1:10808,問題發生在本機接收要求之前。此時切換節點、更新訂閱或修改 VMess、VLESS 參數,通常無法排除占用問題。

應用程式代理設定 本機監聽連接埠 路由規則比對 遠端節點連線

先在 v2rayN 主畫面的記錄區查看剛啟動時的訊息,記下錯誤中的位址、連接埠和時間。以下列出常見錯誤片段;前後的記錄前綴可能因核心與系統而異。重點是分辨「位址已在使用中」和「存取遭拒」;後者不一定能查到一般的占用程序。

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

原因與解法:Windows 常見的通訊端位址衝突訊息。檢查記錄指出的本機連接埠,確認監聽程序後關閉重複執行的程式,或將目前執行個體改用未占用的連接埠。

錯誤:bind: address already in use

原因與解法:指定的位址與連接埠無法再次繫結,通常是已有程序正在監聽。請依實際系統查詢監聽程序,不要誤以為是訂閱失效。

錯誤:An attempt was made to access a socket in a way forbidden by its access permissions.

原因與解法:連接埠存取受到限制,可能與系統排除的連接埠範圍或安全性原則有關。先查詢監聽程序與排除範圍,再選擇未占用且未被排除的連接埠。

二、在 Windows 查詢 10808 的監聽程序

以下指令請在 Windows PowerShell 中執行。先查詢 TCP 監聽狀態,不要只因某一行出現 10808 就判定連接埠遭占用。一般的對外連線也可能包含這個數字;請一併確認本機位址、本機連接埠和監聽狀態。

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

OwningProcess 是程序編號,也就是 PID。若結果顯示 PID 為 4321,請接著執行下方指令。4321 僅為範例,實際操作時請換成目前查到的結果;PID 會隨程序重新啟動而變動,不能沿用上次記錄的數值。

Get-Process -Id 4321 | Select-Object Id, ProcessName, Path

Get-CimInstance Win32_Process -Filter "ProcessId = 4321" |
  Select-Object ProcessId, ExecutablePath, CommandLine

可執行檔路徑有助於區分位於不同解壓縮資料夾的程式,命令列則有助於辨識核心使用的設定。有些程序資訊需要系統管理員權限才能讀取;未顯示路徑不代表程序不存在。向他人求助時,請勿直接公開完整命令列或設定內容,其中可能包含本機路徑與連線資訊。

使用命令提示字元的替代查法

netstat -ano -p tcp | findstr ":10808"
tasklist /FI "PID eq 4321"

三、重複執行的程式、殘留核心與系統排除連接埠

查到程序後,請先從該程式的系統匣選單正常結束,再查詢一次。關閉 v2rayN 視窗後,程式可能仍在系統匣執行;另一個使用者工作階段、開機啟動項目或舊解壓縮資料夾中的執行個體,也可能繼續占用連接埠。核心程序名稱只能做為線索,不要只憑名稱就結束所有同名程序。

  1. 同一個用戶端啟動兩次:確認要保留的執行個體與資料夾,關閉另一個執行個體。查看系統匣圖示和工作管理員中的檔案位置,再重新啟動要保留的執行個體。
  2. 關閉後核心仍在監聽:核對該 PID 的路徑和命令列,確認它屬於剛關閉的執行個體且沒有其他用途後,再透過工作管理員結束程序。結束後重新查詢連接埠,不要連續點擊啟動。
  3. 必須保留其他程式:不要強制結束資料庫、開發服務或系統程序。請為 v2rayN 指定另一組連接埠,並同步修改使用該代理的應用程式。
  4. 沒有監聽程序但仍提示存取遭拒:查看系統排除的連接埠範圍。虛擬化或容器網路等功能可能影響連接埠分配,請以本機查詢結果為準。
netsh interface ipv4 show excludedportrange protocol=tcp
netsh interface ipv6 show excludedportrange protocol=tcp

確認 10808 是否落在輸出的起始連接埠與結束連接埠之間。若位於排除範圍內,選擇範圍外的候選連接埠,比刪除系統保留項目更穩妥。若沒有監聽記錄,也不在排除範圍內,請繼續核對啟動當下的記錄、繫結位址和安全性軟體記錄;不要反覆以系統管理員身分執行程式碰運氣。

四、參數設定中的 SOCKS、HTTP 與混合連接埠

先記下目前的設定,再開啟 「設定」→「參數設定」,在 「Core 基礎設定」 中尋找本機監聽相關欄位。不同版本的介面與核心組合可能顯示「本機混合監聽連接埠」,也可能分別提供 SOCKS 與 HTTP 設定;請以目前介面和啟動記錄為準,不要假設一定有兩個獨立的輸入欄位。

10808
本例要排查的監聽連接埠
11808
混合或 SOCKS 候選連接埠
11809
獨立 HTTP 候選連接埠

11808 與 11809 僅為本文的設定範例,不保證在你的電腦上未遭占用。儲存前請用前述指令查詢這兩個連接埠,並檢查系統排除範圍。連接埠數值也不代表通訊協定:10808 不一定是 SOCKS,10809 也不一定是 HTTP;實際接受哪種要求取決於入站設定。

目前的設定方式 修改範例 應用程式端的填寫方式
單一混合監聽入口 將本機混合監聽連接埠改為 11808 支援的 HTTP 與 SOCKS 要求都連至此入口,應用程式仍須選擇正確的代理通訊協定
獨立 SOCKS 與 HTTP 入口 SOCKS 改為 11808,HTTP 改為 11809 SOCKS 應用程式連線至 11808,HTTP 代理應用程式連線至 11809
自訂設定中的入站 確認設定檔中實際入站使用的監聽連接埠 應用程式端須配合該入站設定;介面參數不一定會改寫自訂檔案
  1. 記下原有連接埠、監聽位址和系統代理模式,方便失敗時還原。
  2. 在參數設定中修改目前實際使用的監聽欄位,不要修改節點的伺服器連接埠。
  3. 儲存設定並重新啟動服務;若目前版本沒有獨立的重新啟動選項,請正常結束並重新開啟用戶端。
  4. 查看本次啟動記錄,確認沒有繫結錯誤,再查詢新連接埠是否正在監聽。

結論:先確認入站類型,再變更連接埠

如果介面只有混合連接埠,就不必另外尋找或建立 HTTP 連接埠;如果介面分開設定,則要分別核對兩項。確認修改成功的依據是預期的核心正在監聽新連接埠,而非設定欄位中的數字已經變更。

五、變更連接埠後需要同步調整的項目

變更本機連接埠後,手動填寫的代理位址通常不會自動更新。尤其要檢查仍開啟的終端機視窗、瀏覽器的獨立代理設定和下載工具。舊連線可能暫時仍可使用,但新連線才會出錯,因此請重新開啟應用程式再測試。

以下是 PowerShell 目前工作階段的設定範例,僅適用於已確認新連接埠支援相應通訊協定的情況。若使用獨立 HTTP 入口 11809,請使用前兩行;若使用混合入口 11808,可將前兩行中的連接埠改為 11808。第三行要求入口支援 SOCKS5。

$env:HTTP_PROXY = "http://127.0.0.1:11809"
$env:HTTPS_PROXY = "http://127.0.0.1:11809"
$env:ALL_PROXY = "socks5h://127.0.0.1:11808"

六、新連接埠驗證與分層排查

先確認監聽狀態,再測試代理交握,最後檢查特定網站。這樣才能區分本機連接埠、代理通訊協定和遠端線路問題。以下指令使用範例連接埠;若你的設定不同,請先換成實際值。

Test-NetConnection 127.0.0.1 -Port 11808

curl.exe --proxy socks5h://127.0.0.1:11808 --connect-timeout 10 --max-time 20 -I https://example.com/

curl.exe --proxy http://127.0.0.1:11809 --connect-timeout 10 --max-time 20 -I https://example.com/

依實際入站類型選擇其中一條 curl.exe 指令即可;若混合入口使用 11808,HTTP 測試也應使用 11808。Test-NetConnection 成功只代表 TCP 連線已建立,不代表通訊協定相符或遠端節點可用。範例網址用於連線測試,是否透過代理連線到外部仍取決於目前的路由規則。

驗證結果 優先檢查項目 下一步
新連接埠沒有監聽 參數是否生效、核心是否已啟動 查看啟動記錄,核對自訂設定與實際繫結位址
連接埠正在監聽,但代理交握失敗 HTTP 與 SOCKS 通訊協定是否相符 修正應用程式的代理類型,確認是否連到其他程式
代理交握後連線逾時 檢查對外節點、DNS 與路由記錄 改為排查節點連線,不要再盲目更換本機連接埠
命令列正常,瀏覽器失敗 瀏覽器代理來源與舊程序 同步獨立設定,完全結束瀏覽器後再測試

七、再次發生衝突時的收尾檢查

如果每次重新啟動電腦後都再次發生衝突,請優先檢查登入啟動項目和多個解壓縮資料夾,而不是不斷增加連接埠號碼。保留一個明確使用的用戶端資料夾,記錄監聽連接埠及用途;若確實需要同時執行兩個執行個體,請為每個執行個體指定不同的監聽連接埠,並分別維護應用程式代理設定。

本機監聽恢復後,再處理訂閱、節點或路由問題。安裝與初次執行的完整步驟,請參考 v2rayN 設定教學;其他常見錯誤可到 常見問題 繼續查找。

下載v2rayN