從日志信息來看,TUN模式啟動失敗是由于端口沖突導致的。
具體來說,Xray在嘗試監聽10808端口時失敗了,因為該端口已經被其他進程占用。
錯誤信息分析
Failed to start: app/proxyman/inbound: failed to listen TCP on 10808 > transport/internet: failed to listen on address: 127.0.0.1:10808 > transport/internet/tcp: failed to listen TCP on 127.0.0.1:10808: bind: Only one usage of each socket address (protocol/network address/port) is normally permitted.
這段日志明確指出,Xray無法綁定到127.0.0.1:10808
這個地址和端口,原因是“每個套接字地址(協議/網絡地址/端口)通常只允許一次使用”。這意味著已經有另一個程序正在使用10808端口。
解決方案
1. 查找并關閉占用端口的進程
可以通過以下步驟來查找并關閉占用10808端口的進程:
- Windows系統:
- 打開命令提示符(CMD),輸入以下命令來查找占用端口的進程ID(PID):
netstat -ano | findstr :10808
- 打開命令提示符(CMD),輸入以下命令來查找占用端口的進程ID(PID):
- 記下返回結果中的PID,然后使用以下命令查看該PID對應的進程名稱:
tasklist | findstr <PID>
1.查找PID對應的程序名稱
在PowerShell中,可以使用Get-Process
命令來查找PID對應的程序名稱,而不是直接使用tasklist
命令。
Get-Process -Id 3212
顯示PID為3212的進程的詳細信息,包括進程名稱、描述等。
- 關閉占用端口的進程
如果確定可以安全地關閉該進程,可以使用以下命令來終止它:
Stop-Process -Id 3212 -Force
請注意,強制終止進程可能會導致數據丟失或應用程序不穩定,請確保知道自己在做什么。
- 驗證端口是否已釋放
再次運行netstat
命令檢查端口10808是否已被釋放:
netstat -ano | findstr :10808
如果端口已經被釋放,應該不會再看到任何與10808相關的監聽項。
- 重新啟動Xray服務
現在可以嘗試重新啟動Xray服務,看看問題是否已經解決。
解決啦~
more:如果無法關閉進程
如果由于某種原因不能關閉占用端口的進程(例如它是系統關鍵進程),可以考慮修改Xray的配置文件,將使用的端口號更改為一個未被占用的端口。例如,可以將10808改為10809或其他可用端口。
編輯config.json
文件,找到相關端口配置項,將其修改為新的端口號,例如:
{"inbounds": [{"port": 10809, // 修改為新的端口號...}]
}
然后重啟Xray服務。
注意事項
- 在進行上述操作之前,請確保了解每個步驟的潛在影響。
- 如果不確定某個進程的作用,可以在網上搜索其名稱,或者聯系系統管理員尋求幫助。
- 在生產環境中進行此類操作時要格外小心,以免對系統造成不必要的影響。