解决Windows11端口被随机占用的问题
现象:原本某些端口正常使用,重启一次电脑原本好的端口提示被占用了。
原因:Win11在部分虚拟化网络组件(如Hyper-V/WinNAT)下会预留一段端口区间,导致常用端口被系统占用。
解决:把动态端口范围固定到49152-65535,并重启 WinNAT 后重新检查占用的端口区间。
问题复现
查看目前动态范围
1 | netsh int ipv4 show dynamicport tcp |
查看当前占用
1 | netsh interface ipv4 show excludedportrange protocol=tcp |
结果如下:
1 | Protocol tcp Port Exclusion Ranges |
其中,这次我正好想要使用的8675端口正好在里面。有时候还会随机到3000、8000这种更重要的端口。
解决步骤
修改端口区间
需要管理员
1 | netsh int ipv4 set dynamic tcp start=49152 num=16384 |
将系统动态端口范围设置为49152~65535(49152+16384-1)
重启WinNAT服务
需要管理员
1 | net stop winnat |
再次查看当前端口占用
区间
1 | netsh int ipv4 show dynamicport tcp |
例如:
1 | Protocol tcp Dynamic Port Range |
占用端口
1 | netsh interface ipv4 show excludedportrange protocol=tcp |
例如:
1 | Protocol tcp Port Exclusion Ranges |
此时端口占用显著收敛,目标端口不再被系统预留,问题解除。