v2rayN 本機連接埠遭占用:10808 衝突排查與監聽連接埠修改

啟動時提示連接埠遭占用?本文說明如何用系統指令找出占用中的程序、在參數設定中修改本機混合監聽連接埠,並同步更新瀏覽器與系統代理。

本文重點

適用於 Windows 上啟動 v2rayN 後,遇到監聽失敗、核心結束或瀏覽器連線遭拒的情況。先查看記錄,確認衝突的是本機 10808,再用 PID 找出占用程序;若可安全關閉舊程序,就釋放連接埠;若需同時執行多個程序,則改用確認空閒的 10818。最後同步更新系統代理、瀏覽器擴充功能與終端機變數,分別測試本機監聽和實際連線;先別修改訂閱或遠端節點。

先判讀錯誤:本機監聽失敗不代表節點故障

開啟 v2rayN 主視窗,查看底部的記錄區,特別留意包含 listen、bind 和本機位址的行。如果失敗位址是 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: An attempt was made to access a socket in a way forbidden by its access permissions.

原因與解法:可能與系統保留連接埠、獨占繫結或安全性原則有關,不一定是一般的程序占用。先查詢監聽清單,再檢查 Windows 排除的連接埠範圍,不要直接關閉安全性軟體。

錯誤:Failed to connect to 127.0.0.1 port 10808

原因與解法:這表示連線端無法連上本機代理,不能只憑這點判定連接埠衝突。請確認核心是否正在執行,以及用戶端目前的監聽連接埠是否仍為 10808。

本文以 Windows 10、Windows 11 與 v2rayN 7.x 中文介面的混合監聽設定為例。不同小版本的選項分組可能有所調整,請以目前視窗顯示的欄位為準。舊版設定也可能將 SOCKS 與 HTTP 連接埠分開設定,因此 10808、10809 並非所有版本通用的固定組合。

找出監聽 10808 的程序與程式路徑

先在 PowerShell 執行下方指令。這只會查詢 TCP 監聽狀態,不會終止任何程序。若沒有傳回資料,表示查詢當下未找到監聽此連接埠的 TCP 程序;若有資料,記下 OwningProcess,再確認本機位址是回送位址還是通用位址。

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

假設查詢結果中的 PID 是 6420,使用下方指令查看程序名稱、路徑與命令列。6420 僅為示範值,執行時必須換成本機剛查到的數字。若一般權限無法檢視路徑,可改用系統管理員 PowerShell 重新查詢;不必因此提高用戶端的執行權限。

Get-Process -Id 6420 | Select-Object Id, ProcessName, Path
Get-CimInstance Win32_Process -Filter "ProcessId = 6420" |
  Select-Object ProcessId, ExecutablePath, CommandLine

若習慣使用命令提示字元,也可以執行下方查詢。findstr 只會篩選文字,仍須自行確認本機位址欄中的連接埠確實是 10808,且狀態為 LISTENING;不要將遠端連接埠或已建立的連線誤認為監聽衝突。

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

關閉舊執行個體,或更換本機混合監聽連接埠

先分清楚是「重複啟動」還是「確實需要同時執行」。如果占用者是已不再使用的舊執行個體,請從系統匣選單選擇「結束」,等幾秒後重新查詢。關閉主視窗可能只是縮到系統匣,不代表監聽連接埠已釋出。

  1. 記下原設定

    在「設定」→「參數設定」中記下目前的監聽連接埠、監聽位址和區域網路連線選項。先保留原本的 10808,方便之後還原;不要修改節點編輯視窗中的伺服器連接埠。

  2. 確認新連接埠可用

    使用前述 PowerShell 指令查詢 10818,將 -LocalPort 10808 改成 -LocalPort 10818。確認沒有監聽資料後,再依照後文檢查排除範圍;10818 只是範例,不保證每台電腦都未被占用。

  3. 修改監聽連接埠

    前往「設定」→「參數設定」→「Core: 基礎設定」,找到「本機混合監聽連接埠」,將 10808 改為 10818。若版本使用分開的 SOCKS、HTTP 欄位,請分別記錄並設定,之後依實際協定填入對應連接埠。

  4. 儲存並重新載入

    按一下「確定」,查看核心重新載入時的記錄。如果介面提示需要重新啟動,請依提示完全結束並重新開啟 v2rayN;確認沒有新的繫結失敗記錄後,再查詢 10818 是否正在監聽。

  5. 確認連線入口

    確認新連接埠對應的 PID 屬於目前使用的用戶端資料夾。若只在本機使用,請保留回送位址監聽;不要為了解決衝突而啟用「允許來自區域網路的連線」,擴大監聽範圍並不能排除連接埠衝突。

同步更新系統代理、瀏覽器與命令列設定

本機混合連接埠可讓 HTTP 與 SOCKS 要求共用同一個入口,但不會自動更新所有應用程式的個別設定。改為 10818 後,如果瀏覽器擴充功能或終端機仍指向 10808,就會出現「核心已執行,網頁仍無法開啟」的第二層問題。

應用程式代理設定 本機監聽連接埠 核心路由規則 遠端節點連線 目標網站回應
  1. 重新套用系統代理:在 v2rayN 主畫面底部的「系統代理」中,先選擇「清除系統代理」,再選擇「自動設定系統代理」。這個步驟會重新寫入入口設定,但不代表所有程式都會依照設定運作。
  2. 檢查 Windows 設定:前往 Windows「設定」→「網路和網際網路」→「代理伺服器」。使用手動代理時,請確認位址與連接埠;使用自動設定指令碼時,檢查是否仍留有舊的指令碼位址,避免混用兩套舊設定。
  3. 確認瀏覽器擴充功能:若擴充功能接管了代理設定,請將其中的 HTTP 或 SOCKS 入口改為 127.0.0.1:10818,或暫時切換為使用系統代理後再測試。保留舊的擴充功能連接埠會覆蓋系統設定。
  4. 檢查終端機變數:確認 HTTP_PROXY、HTTPS_PROXY、ALL_PROXY 是否仍包含 10808,也要留意應用程式自己的代理設定檔。

下方指令只會修改目前的 PowerShell 工作階段,不會寫入永久環境變數。啟用混合監聽時,可用 HTTP 入口設定這兩個變數;變數名稱 HTTPS_PROXY 表示提供 HTTPS 要求使用的代理,代理位址本身不必以 https:// 開頭。

$env:HTTP_PROXY = "http://127.0.0.1:10818"
$env:HTTPS_PROXY = "http://127.0.0.1:10818"
Remove-Item Env:ALL_PROXY -ErrorAction SilentlyContinue

如果應用程式原本使用 SOCKS,可依其支援情況改用 socks5h://127.0.0.1:10818。不要假設所有命令列程式都支援相同的變數;若曾透過系統介面儲存永久變數,也須更新儲存值並重新開啟終端機。

查不到占用資料時,檢查排除連接埠與監聽設定

如果記錄顯示權限相關的繫結錯誤,但查詢不到監聽資料,請繼續檢查 Windows 排除的連接埠範圍。虛擬化與網路服務可能會讓某些連接埠無法一般繫結;監聽清單空白,不代表連接埠一定可用。

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

不要透過修改遠端節點的伺服器連接埠來避開本機繫結失敗。伺服器連接埠是輸出連線參數,本機混合連接埠則是輸入監聽參數,兩者不必相同。也不要一開始就重設整個網路或重新安裝用戶端;這些操作會擴大變更範圍,卻未必能改變占用連接埠的程序。

分兩步確認:先檢查監聽,再測試要求

修改完成後,先確認 10818 正在監聽,再明確指定代理測試要求。如此一來,就能區分「核心未啟動」、「應用程式仍使用舊連接埠」和「遠端連線失敗」,避免只看系統匣圖示就判定修復完成。

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

curl.exe --noproxy "" --proxy http://127.0.0.1:10818 --connect-timeout 5 --max-time 15 -I https://example.com/

此處使用 curl.exe,避免舊版 Windows PowerShell 將 curl 解讀為其他指令;--noproxy "" 可避免現有的略過清單跳過這次代理測試。5 秒是連線逾時上限,15 秒是整個要求的逾時上限,都是測試參數,並非實測延遲。範例網站僅用於確認要求路徑,最後仍須測試實際需要連線的目標。

常見問題:修改連接埠後容易漏掉哪些設定

一定要把 10808 改成 10818 嗎?

不一定。10818 只是方便對照的範例;請先查詢監聽狀態與排除範圍,再選擇可用的連接埠。連接埠號碼較大不會讓連線變快,選定後只要確保所有連線端使用相同設定即可。

每次重新啟動電腦都發生衝突,該怎麼處理?

錯誤出現後查詢占用 PID,並確認程序路徑。檢查 Windows「設定」→「應用程式」→「啟動」,以及工作排程器中是否留有舊資料夾的啟動項目;只保留預期的一種啟動方式,不要一再更換連接埠來掩蓋重複啟動。

修改混合連接埠後,訂閱和節點也要重新填寫嗎?

不必因本機連接埠變更而重新填寫節點。保留遠端伺服器位址、連接埠與驗證參數,只更新指向本機入口的應用程式設定。如果訂閱更新透過代理,也要確認更新要求實際使用的是新入口。

以系統管理員身分啟動就能直接解決嗎?

無法讓兩個一般監聽程序同時使用同一個衝突入口。系統管理員權限主要用於讀取受限制的程序資訊或執行系統診斷;若確實有程序占用,仍須關閉舊執行個體或更換連接埠。

結束前請記下三項資訊:最後使用的監聽連接埠、對應的程序路徑,以及哪些應用程式使用了個別代理設定。下次升級或移動資料夾後,先核對這三項,就能更快判斷問題出在本機入口還是後續連線路徑。

下載v2rayN選擇作業系統與安裝檔