v2rayN 本機連接埠遭占用:找出占用程序並變更 10808 監聽連接埠

使用系統內建指令找出占用本機監聽連接埠的程序,並說明在 v2rayN 參數設定中變更 SOCKS 與 HTTP 連接埠後,如何同步調整系統代理與瀏覽器。

本文重點

10808 綁定失敗是本機入站監聽問題,不代表遠端節點失效。先從記錄確認協定、位址與連接埠,再查詢占用程序;確認是重複執行的用戶端時,關閉多餘執行個體,否則改用空閒連接埠,並同步調整系統代理、瀏覽器與命令列設定。本文提供 Windows 與 macOS 的查詢方式,以及變更連接埠後的驗證順序。

1. 10808 綁定失敗:先區分監聽連接埠與節點連接埠

v2rayN 是用戶端介面,本機代理監聽通常由它啟動的代理核心負責。應用程式會先連線至本機位址,例如 127.0.0.1:10808,再由核心依設定處理對外連線。記錄中的本機綁定失敗發生在這個入口,不應先修改訂閱中的遠端伺服器連接埠。

10808 是常見的本機監聽連接埠,但不能因此推定各版本使用相同的入站類型。有些介面將 SOCKS 與 HTTP 分開設定,舊設定也常見 HTTP 使用 10809;另一些介面則採用混合監聽,讓同一連接埠接收兩種代理協定。請以「設定」→「參數設定」中的實際欄位和啟動記錄為準。

10808
本文排查的本機連接埠
10809
部分舊設定使用的 HTTP 連接埠
127.0.0.1
僅供本機存取的 IPv4 迴路位址

TCP 與 UDP 是不同的監聽資源,IPv4 與 IPv6 的綁定方式也可能不同。看到 0.0.0.0:10808 或 [::]:10808 時,請留意萬用位址監聽可能與迴路位址上的監聽衝突;不要只搜尋恰好顯示 127.0.0.1 的記錄。

2. 根據錯誤訊息區分連接埠占用、權限問題與連線遭拒

先開啟用戶端記錄,保留錯誤發生前後的幾行,特別留意 listen、bind、位址與連接埠。不同核心的訊息前綴可能不同,以下列出的是作業系統錯誤中常見的原文片段,不必與整行記錄完全一致。

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

原因與處理方式:在 Windows 上通常表示監聽位址與連接埠已遭占用。先查詢 PID 與程序路徑,再決定要關閉重複執行個體,還是更換本機連接埠。

bind: address already in use

原因與處理方式:這是在 macOS 等環境中常見的位址占用錯誤。使用 lsof 查詢 TCP 監聽程序,並確認是否有另一個用戶端或殘留的核心仍在執行。

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

原因與處理方式:可能與連接埠排除範圍或安全性原則有關,不一定是一般程序占用。查不到監聽程序時,接著檢查系統保留範圍,不要直接關閉防護功能。

Failed to connect to 127.0.0.1 port 10808

原因與處理方式:應用程式無法連線至這個本機連接埠,可能是核心尚未啟動、連接埠已變更,或監聽位址不符。先確認實際監聽狀況,不要直接把這則訊息當成遠端節點逾時。

3. Windows:使用 PID 找出占用 10808 的程序

先在 PowerShell 查詢 TCP 監聽狀態,再讀取程序資訊。以下指令只會查詢資訊,不會終止程序。若沒有任何結果,表示查詢當下沒有找到該連接埠的 TCP 監聽程序;這不代表其他協定或系統保留狀況都已排除。

$listeners = Get-NetTCPConnection -LocalPort 10808 -State Listen -ErrorAction SilentlyContinue
$listeners | Select-Object LocalAddress, LocalPort, State, OwningProcess
$listeners.OwningProcess | Sort-Object -Unique | ForEach-Object {
    Get-Process -Id $_ | Select-Object Id, ProcessName, Path
}

也可以在命令提示字元中執行以下指令。第二行的 1234 只是示範用 PID,請替換成第一行輸出的實際 PID;不要把連接埠號碼 10808 誤當成程序 ID。篩選輸出時,也要核對本機位址欄,避免看錯遠端連線記錄。

netstat -ano -p tcp | findstr ":10808"
tasklist /FI "PID eq 1234"
  1. 確認監聽狀態:優先確認是否為 LISTENING。只有 TIME_WAIT 的記錄,不足以證明有程序正在監聽。
  2. 確認路徑與來源:在工作管理員的「詳細資料」中核對 PID,必要時查看檔案位置。部分程序路徑需提高查詢權限才能顯示。
  3. 優先正常結束:如果占用者是另一個 v2rayN 執行個體,請從系統匣選單結束程式;關閉視窗可能只會將程式最小化至系統匣。
  4. 保留必要服務:如果連接埠屬於仍需使用的程式,請替 v2rayN 更換連接埠。不要只憑程序名稱就強制結束系統服務。

如果 TCP 查詢沒有結果,但錯誤明確提到 UDP,可再查詢 Get-NetUDPEndpoint -LocalPort 10808 -ErrorAction SilentlyContinue。關閉重複執行個體後,請重新執行查詢,再啟動要保留的用戶端,避免兩個執行個體輪流搶占連接埠。

4. macOS 與 Windows 保留連接埠:處理查不到占用程序的情況

macOS:查詢監聽程序與完整指令

在終端機執行以下指令。-nP 會保留數字位址與連接埠,避免名稱解析影響判讀;如果權限不足,可使用 sudo lsof 重新查詢。第二行同樣要將範例 PID 替換成實際值。

lsof -nP -iTCP:10808 -sTCP:LISTEN
ps -p 1234 -o pid=,ppid=,command=

先從對應的應用程式選單結束程式,再確認監聽記錄是否消失。如果用戶端已關閉,但核心程序仍在執行,請核對完整指令與父程序,確認確實是已退出執行個體的殘留程序後再處理。不要依程序名稱批次結束程序,因為另一份正在使用的設定可能由相同核心執行。

Windows:檢查連接埠排除範圍

如果錯誤訊息指出存取遭拒,且查不到監聽程序,可在終端機查看 TCP 排除範圍。若 10808 落在輸出的起訖區間內,選擇範圍以外的空閒連接埠,通常比修改系統保留規則更合適。

netsh interface ipv4 show excludedportrange protocol=tcp
netsh interface ipv6 show excludedportrange protocol=tcp

5. 變更 SOCKS、HTTP 或混合監聽連接埠

以下以 11808 與 11809 示範遷移,這兩個數字並非保證空閒的特殊連接埠。請先將前述查詢指令中的 10808 換成目標連接埠,再檢查一次。如果系統設有相關排除範圍,也要確認目標值不在範圍內。

  1. 記下原本的連接埠、監聽位址與目前的系統代理模式,以便還原設定。
  2. 開啟 v2rayN「設定」→「參數設定」,尋找本機監聽、SOCKS、HTTP 或混合連接埠欄位;介面中的分類名稱可能因版本而異。
  3. 如果 SOCKS 與 HTTP 欄位分開設定,可分別設為 11808 和 11809。如果只有混合監聽欄位,就只將該欄位改為 11808,不要自行假設另有 11809 欄位。
  4. 儲存設定,依介面提示重新啟動核心或用戶端,接著檢查記錄中是否仍有綁定失敗。
  5. 重新查詢新連接埠的監聽程序,確認對應 PID 屬於這次啟動的核心,再更新應用程式端的代理設定。
實際入站類型遷移範例應用程式端設定
獨立 SOCKS10808 改為 11808SOCKS5 指向 127.0.0.1:11808
獨立 HTTP10809 改為 11809HTTP 代理指向 127.0.0.1:11809
混合監聽10808 改為 11808HTTP 與 SOCKS5 都使用 11808,但仍須選擇正確的協定

判斷方式:只有混合監聽才能直接共用同一個連接埠

如果介面提供兩個獨立入站欄位,不要將 SOCKS 與 HTTP 都設為 11808。先確認入站類型,再設定應用程式的代理協定;連接埠號碼相同,不代表協定可以互換。

僅供本機使用時,維持迴路位址監聽即可。將監聽位址改為 0.0.0.0 並不能通用地解決占用問題,還可能擴大可存取範圍。使用自訂 JSON 設定的用戶,需檢查實際生效的 inbounds;介面參數不一定會覆寫匯入設定中的固定連接埠。欄位說明請參閱JSON 設定手冊。

6. 同步調整系統代理、瀏覽器與命令列設定

核心改在新連接埠啟動後,舊的代理入口不會自動對所有應用程式失效或更新。系統代理、瀏覽器手動代理與終端機環境變數是不同的設定來源,請依各應用程式實際使用的入口逐一檢查。

應用程式代理入口 本機監聽 路由比對 遠端輸出

透過本機 HTTP 代理存取 HTTPS 網站時,代理位址通常仍會寫成 http://127.0.0.1:11809;網站使用 HTTPS,不代表本機代理入口也必須使用 https://。同樣地,一般系統 HTTP 代理入口不能直接指向僅支援 SOCKS 的監聽連接埠。

7. 變更連接埠後的驗證順序與還原檢查

先確認本機監聽,再測試代理協定,最後才排查遠端連線。以下兩個指令分別示範獨立 HTTP 與 SOCKS 入站;若使用混合連接埠,請將第一個指令中的 11809 改為 11808。範例請求使用本站首頁,不預設固定的回應時間或狀態碼。

curl --proxy http://127.0.0.1:11809 --connect-timeout 5 --max-time 20 -I https://v2rayindex.com/
curl --proxy socks5h://127.0.0.1:11808 --connect-timeout 5 --max-time 20 -I https://v2rayindex.com/

在 Windows PowerShell 中,可將 curl 改為 curl.exe,避免部分環境中的同名別名影響參數。socks5h 代表由代理端解析目標網域,與使用本機解析的 socks5 不同;測試時請記下使用的方式。

收尾:一次只調整一個環節

先完成連接埠遷移並確認監聽,再同步調整應用程式入口,最後測試遠端請求。記下新舊連接埠的對應關係;不要在同一輪排查中同時更換節點、路由與 DNS,否則難以判斷哪些變更真正有效。

下載v2rayN依平台選擇用戶端