1. 程式人生 > 實用技巧 >在 Windows 中遇到莫名奇妙的埠被佔用時

在 Windows 中遇到莫名奇妙的埠被佔用時

A、有其它程式佔用了埠,使用命令:

netstat -aon|findstr "被佔用埠號"

返回內容中,最後一列是佔用程序的ID,可以從工作管理員中找到對應ID的程序資訊,或者直接結束程序:

taskkill /pid 該程式PID -t -f

B、通過上面命令也找不到被佔用,可能是被系統保留了埠(比如 Hyper-V?):

netsh interface ipv4 show excludedportrange protocol=tcp

檢查被佔用的埠是否在此列表範圍中,如果是的話,如果是 Hyper-V 的原因的話:

1、臨時禁用Hyper-V

dism.exe /Online /Disable-Feature:Microsoft-Hyper-V

2、重啟後,請保留所需埠,以便Hyper-V不會將其佔用

netsh int ipv4 add excludedportrange protocol=tcp startport=50051 numberofports=1

3、(可選)新增一個登錄檔項來防止Windows容器主機網路服務(HNS)保留埠,重啟生效

reg add HKLM\SYSTEM\CurrentControlSet\Services\hns\State /v EnableExcludedPortRange /d 0 /f

4、重新啟用Hyper-V

dism.exe /Online /Enable-Feature:Microsoft-Hyper-V /All

轉自:https://www.cnblogs.com/StarsbySea/p/Windows-ports-occupied.html

https://github.com/docker/for-win/issues/3171

https://github.com/shadowsocks/shadowsocks-windows/issues/1835