在 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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM