背景:
前不久为了在Windows10上安装了Docker Desktop,先安装了Hyper-V,重新开机后发现原有的一些服务无法正常启动,原因是端口占用。
原因:
Hyper-V 会为容器宿主网络服务(Windows Container Host Networking Service)随机保留一些端口号使用(就像从系统中预订了一些端口号), 而这些端口号是从Windows系统中的【TCP 动态端口范围】中保留的。因此可以修改【TCP 动态端口范围】从而避免常用服务端口被Hyper-V预订导致端口不能被其他服务使用。
解决方法:
1.查看目前「TCP 动态端口」的范围 (以下端口我先前修改过了,因此目前是正常范围。会出现上述问题时,常常下图中的启动端口是1024。)
netsh int ipv4 show dynamicport tcp
2.修改Tcp动态端口范围(需要以管理员身份运行)
netsh int ipv4 set dynamic tcp start=49152 num=16384
3.重启电脑,Tcp动态端口范围修改完成