端口被占用的情况
查看端口占用情况
首先打开cmd,输入以下指令查询端口占用情况,例:查看9090端口是否占用
netstat -ano | findstr 9090
解除端口占用
如图可见看到占用端口8999的进程号为13352,执行以下指令终止该进程:
taskkill /f /pid 25620
端口被保留的情况
运行上面的命令,为找到被占用的端口,有可能就是端口被Hyper-V 随机保留(占用)了,windows在启动时Hyper-V 会随机保留部分端口。
查看端口保留情况
netsh int ipv4 show excludedportrange protocol=tcp
解决方案一
重启电脑或者重启 winnat 服务,重启会重新分配随机端口,你需要的端口可能就不会被占用。
net stop winnat
net start winnat
解决方案二
重新设置一下 TCP 动态端口范围,让Hyper-V只在我们设定的范围内保留端口即可
查看 TCP 动态端口范围
netsh int ipv4 show dynamicport tcp
通过如上命令,我们可以查看到 TCP 动态端口范围为 1024 开始,一共13977个端口
调整 TCP 动态端口范围
通过如下命令可以调整 TCP 动态端口范围,注意: 需要用管理员方式启动控制台。
netsh int ipv4 set dynamic tcp start=50000 num=10000
再次查看动态 TCP 动态端口范围,确认修改成功
重启winnat服务或者重启电脑,重新查看端口保留情况。
端口保留情况已经调整。