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 方法是一样的。

参考链接: