v2rayN 啟動核心時,需要在本機位址上建立 SOCKS、HTTP 或混合代理監聽。如果預定連接埠已由另一個程序佔用,Xray 或 V2Ray 核心就無法完成監聽。此時節點本身可能完全正常,但系統代理仍會因本機入口未啟動而無法轉送流量。
本文適合遇到 10808、10809 連接埠衝突,或核心啟動後立即退出的 Windows 使用者。操作順序是先從日誌確認衝突連接埠,再用 netstat 找到對應 PID,判斷應關閉佔用程式,還是將 v2rayN 改用 10818/10819,最後同步系統代理、瀏覽器與其他手動代理工具。
先確認是否為本機監聽連接埠衝突
「網頁無法開啟」不等於連接埠遭佔用。節點逾時、訂閱失效、系統代理未啟用、DNS 解析異常,都可能造成類似現象。連接埠衝突的關鍵證據位於 v2rayN 日誌區域:日誌通常會同時出現本機位址、連接埠號碼,以及 bind 或 listen 失敗訊息。
以 v2rayN 7.11.3 的常見設定為例,本機 SOCKS 入口使用 10808,HTTP 入口使用 10809。實際連接埠可能因舊設定移轉、使用者修改或不同核心設定而變更,因此應以目前日誌及「設定」→「參數設定」中顯示的值為準,不要只依預設連接埠判斷。
錯誤:listen tcp 127.0.0.1:10808: bind: Only one usage of each socket address is normally permitted
原因與解法:10808 已被其他程序監聽——查詢連接埠對應的 PID,關閉重複的用戶端,或將 v2rayN 本機監聽連接埠改為未佔用的值。
錯誤:failed to listen TCP on 127.0.0.1:10809
原因與解法:HTTP 入站無法繫結至 10809——檢查使用相同連接埠的服務,並確認調整主要連接埠後,相關連接埠是否也一併變更。
錯誤:bind: An attempt was made to access a socket in a way forbidden by its access permissions
原因與解法:連接埠可能位於系統保留範圍,或遭安全性原則封鎖——改用 10818、10819 這類未被佔用且不在排除範圍內的連接埠,再重新啟動核心。
結論:先讀取日誌中的位址與連接埠
只要錯誤對象是 127.0.0.1:10808 或 127.0.0.1:10809,排查重點就在本機監聽層;此時反覆更換 VMess、VLESS 節點通常無法解決問題。
使用 netstat 找出佔用連接埠的程序
確認衝突連接埠後,以一般權限開啟「命令提示字元」。以下命令中的冒號不可省略,這能降低將遠端連線記錄誤認為本機監聽記錄的機率。
netstat -ano | findstr :10808
典型輸出如下。最後一欄 18420 是程序 PID,LISTENING 表示該程序正在監聽本機的 10808。只有包含 LISTENING 的記錄能直接說明連接埠已有監聽者;ESTABLISHED 表示連線已建立,TIME_WAIT 則是連線關閉後的短暫狀態,不能只憑這兩種狀態判定連接埠衝突。
TCP 127.0.0.1:10808 0.0.0.0:0 LISTENING 18420
取得 PID 後繼續查詢程序名稱:
tasklist /FI "PID eq 18420"
- 如果結果是另一個 v2rayN.exe,先檢查通知區域是否正在執行第二個執行個體,再正常結束重複的執行個體。
- 如果結果對應到瀏覽器、開發代理或其他本機網路工具,先確認該程式是否仍需要使用 10808。
- 如果 tasklist 查不到程序,可能是程序剛剛結束。重新執行 netstat,確認 PID 是否已經變更。
- 如果輸出同時包含 IPv4 的 127.0.0.1 與 IPv6 的 ::1,請分別記錄兩筆監聽資訊,避免遺漏繫結範圍。
使用 PowerShell 檢視監聽程式
PowerShell 可以直接篩選本機連接埠,並將 OwningProcess 傳給 Get-Process。連接埠沒有監聽時,命令會提示找不到物件,這通常表示佔用已解除。
Get-NetTCPConnection -LocalPort 10808 -State Listen
Get-Process -Id (Get-NetTCPConnection -LocalPort 10808 -State Listen).OwningProcess
不要一看到陌生程序名稱就立即強制結束。系統服務、開發環境與區域網路除錯程式都可能合法監聽本機連接埠。較穩妥的做法是先確認程式用途,再決定退出佔用程式,或讓 v2rayN 改用新連接埠。
在 v2rayN 中修改本機監聽連接埠
如果佔用程式需要繼續執行,修改 v2rayN 連接埠通常更直接。開啟 v2rayN,進入「設定」→「參數設定」,尋找「本機監聽連接埠」或相應的核心基本設定。介面名稱會隨 7.x 小版本略有調整,但連接埠欄位都會顯示目前數值。
- 記下原本的值,例如 SOCKS 為 10808、HTTP 為 10809,方便需要時還原。
- 將主要監聽連接埠改為 10818。若介面有獨立的 HTTP 連接埠,請改為 10819。
- 確認監聽位址維持為 127.0.0.1,除非明確需要向區域網路裝置提供代理入口。
- 儲存參數,停止目前的核心,再重新啟動核心或重新啟動 v2rayN。
- 返回日誌區域,確認出現 127.0.0.1:10818 的監聽成功記錄,且沒有新的 bind 錯誤。
| 用途 | 原設定範例 | 新設定範例 | 需要同步的位置 |
|---|---|---|---|
| SOCKS 代理 | 127.0.0.1:10808 | 127.0.0.1:10818 | 瀏覽器手動代理、命令列工具 |
| HTTP 代理 | 127.0.0.1:10809 | 127.0.0.1:10819 | 系統代理、瀏覽器擴充功能、開發工具 |
| 區域網路監聽 | 0.0.0.0:10808 | 依實際策略設定 | 防火牆規則與裝置代理位址 |
修改後可以再次執行連接埠查詢。預期結果是 10818 的 LISTENING PID 對應目前核心程序,而舊連接埠 10808 不再由該核心佔用。
netstat -ano | findstr :10818
netstat -ano | findstr :10808
結論:新連接埠必須完成一次閉環驗證
儲存參數不代表設定已生效。只有日誌顯示監聽成功、netstat 能看到新連接埠,且實際請求能透過代理完成,這次修改才算完成。
同步系統代理與瀏覽器代理
修改連接埠後最常見的後續問題是「核心已經啟動,但網頁仍然無法開啟」。原因通常不是節點故障,而是系統或瀏覽器仍將請求傳送到舊連接埠 10808/10809。此時舊連接埠沒有監聽者,請求會立即失敗。
- 使用 v2rayN 自動設定系統代理:先清除一次系統代理,再重新選擇「自動設定系統代理」或目前使用的系統代理模式,讓用戶端寫入新的 HTTP 連接埠。
- 瀏覽器使用系統代理:關閉並重新開啟瀏覽器,確認系統代理伺服器已從 127.0.0.1:10809 更新為 127.0.0.1:10819。
- 瀏覽器使用手動 SOCKS:伺服器維持為 127.0.0.1,將連接埠從 10808 改為 10818,並依原本策略處理 DNS。
- 終端機使用環境變數:更新 HTTP_PROXY、HTTPS_PROXY 或 ALL_PROXY 中的連接埠,避免命令列仍連線至舊入口。
- 開發工具個別設定代理:檢查工具本身的網路設定。部分程式不會讀取 Windows 系統代理,必須個別修改。
set HTTP_PROXY=http://127.0.0.1:10819
set HTTPS_PROXY=http://127.0.0.1:10819
set ALL_PROXY=socks5://127.0.0.1:10818
上面的 set 命令只會影響目前的命令提示字元視窗,關閉視窗後不會繼續保留,適合用於臨時驗證。驗證時先執行 netstat,確認連接埠處於 LISTENING,再發出一個需要代理的網路請求。若連線日誌出現新的入站記錄,表示請求已進入 v2rayN。
現象:核心啟動正常,但瀏覽器顯示代理伺服器拒絕連線
原因與解法:瀏覽器仍指向舊連接埠——將手動代理改為 127.0.0.1:10818 或 127.0.0.1:10819,並重新開啟瀏覽器。
現象:瀏覽器可以使用,但終端機下載命令仍然逾時
原因與解法:終端機保留了舊的代理環境變數——檢查 HTTP_PROXY、HTTPS_PROXY、ALL_PROXY,並統一替換連接埠。
連接埠已修改仍然報錯時要檢查什麼
如果 10818 也無法監聽,不要連續隨機嘗試大量連接埠。先判斷新連接埠究竟是被程序佔用、位於 Windows 排除範圍,還是 v2rayN 啟動了重複核心。每種情況的處理方式都不同。
檢查系統排除連接埠範圍
Windows 的網路元件可能預留一段 TCP 連接埠。即使 netstat 沒有顯示監聽程序,位於排除範圍內的連接埠也可能返回權限相關的 bind 錯誤。請使用系統管理員權限的命令提示字元執行:
netsh interface ipv4 show excludedportrange protocol=tcp
如果計畫使用的 10818 位於輸出區間內,直接選擇區間外的新連接埠,例如 11808 與 11809,會比修改系統保留策略更穩妥。選定後仍需同步系統代理與瀏覽器設定。
檢查重複核心與殘留程序
- 先從 v2rayN 主介面停止核心,等待 3 秒後查詢 10808、10809、10818 與 10819。
- 若停止後連接埠仍處於 LISTENING,請記錄 PID,並透過 tasklist 確認是否存在殘留核心程序。
- 優先從原用戶端正常退出。只有在程序沒有回應且已核對 PID 後,才透過工作管理員結束該程序。
- 重新啟動 v2rayN 後只保留一個主視窗,觀察日誌中是否重複產生相同入站。
常見問題與驗證方法
10808 被佔用,直接改成 10809 可以嗎?
先查詢 10809 是否已作為 HTTP 入站使用。若存在兩個獨立入站,不應交換成同一個連接埠。建議成對改為 10818 與 10819,並在日誌中確認各自用途。
結束佔用程序後,為什麼重新啟動電腦又發生衝突?
佔用程式可能設定了開機啟動。使用 tasklist 記錄程序名稱,再到「工作管理員」→「啟動應用程式」檢查對應項目;如果兩個用戶端都要保留,就為 v2rayN 固定一組不同的連接埠。
修改連接埠後,v2rayNG 或 v2flyNG 也要一起修改嗎?
不需要。v2rayNG 與 v2flyNG 會在 Android 裝置上建立各自的本機代理或 VPN 介面,不會讀取 Windows 上 v2rayN 的 127.0.0.1 監聽連接埠。
如何判斷問題已經徹底解決?
依序確認日誌沒有 bind 錯誤、netstat 顯示新連接埠處於 LISTENING、PID 對應目前核心、系統代理指向新連接埠,並完成一次實際網頁或終端機請求。
只看到 TIME_WAIT,需要修改連接埠嗎?
通常不需要。TIME_WAIT 是連線關閉後的正常狀態。應繼續尋找相同連接埠的 LISTENING 記錄,並以 v2rayN 核心日誌是否回報 bind 失敗作為判斷依據。
一套可重複使用的故障排查順序是:先看核心日誌,再查詢連接埠 PID,接著確認程序用途,最後決定關閉佔用者或修改監聽連接埠。完成修改後,將系統代理、瀏覽器與命令列環境變數一併更新,便能避免「連接埠衝突已消失,但應用程式仍連線到舊連接埠」的後續故障。