Windows 释放 NAT 服务占用的端口
释放 NAT 服务占用的端口
查看被占用的 TCP 端口,检查自己所用的服务端口是否被包含在结果中:
netsh interface ipv4 show excludedportrange protocol=tcp
重启 winnat 服务来释放大多数端口(需要管理员权限),验证 TCP 端口是否被释放:
net stop winnnat && net start winnat
设置动态端口号范围
看看应用程序的动态端口范围:
netsh int ipv4 show dynamicport tcp
我这里的结果是:
协议 tcp 动态端口范围
---------------------------------
启动端口 : 1024
端口数 : 13977
接下来按照网上的建议修改 TCP 动态端口范围(需要管理员权限):
netsh int ipv4 set dynamic tcp start=49152 num=16384
最后再重启一下 winnat。根据 https://github.com/docker/for-win/issues/3171#issuecomment-1895729704 的说法,修改端口号范围之后,Hyper-V 就不会把其他端口预留了。
最后
以上只对 ipv4 进行了操作,如果要操作 ipv6 方法是一样的。
参考链接: