Win10突然端口不能绑定排查记录
起因
突然SSR自启报错,如下图
排查
起先以为是某个程序占用了1080端口
1 | netstat -aon | findstr 1080 |
发现没有任何程序占用端口
于是更换原先端口1080,改成1088测试也不可以,基本可以排除掉自身程序和其他程序原因,应该是操作系统造成的。
后来网上搜索资料发现,这是win10的 KB4074588 补丁已知问题,系统预留了一些段,可以用命令查看系统保留了哪些端口段:
1 | netsh interface ipv4 show excludedportrange protocol=tcp |
显示一排被预留的端口,里面就有1080端口。
1 | netsh interface ipv4 delete excludedportrange protocol=tcp startport=1080 numberofports=1 |
结果提示access is denied。。。
通过继续谷歌搜索,终于在github上shadowsocks-windows里找到个issue描述了这个情景,底下有人提出是Hyper-V预留端口导致的
解决方案
根据github上外国友人留言comment
由于hyper-v保留了这些端口,所以需要先关闭hyper-v,保留想要保留的端口,再开启hyper-v功能
Disable hyper-v (which will required a couple of restarts)
dism.exe /Online /Disable-Feature:Microsoft-Hyper-V
When you finish all the required restarts, reserve the port you want so hyper-v doesn’t reserve it back
netsh int ipv4 add excludedportrange protocol=tcp startport=1080 numberofports=1
Re-Enable hyper-V (which will require a couple of restart)
dism.exe /Online /Enable-Feature:Microsoft-Hyper-V /All
重启就搞定了。。
感悟
没事多看看github上issue,兴许可以学到不少