最近在调试我的一个vue项目时,发现每次启动项目,都没有正常运行在设置的3000端口上,开始以为是设置文件的问题,但换了台电脑就一切正常,同时查询端口占用也没有程序在使用3000端口。经过一系列查找,发现是Hyper-V的动态端口占用的问题。
为了使用wsl等功能,我开启了windows的Hyper-V,但其会分配一段端口来供自己使用,有时正好占用到常用的开发端口就导致了问题的发生,首先我们运行netsh int ipv4 show dynamicport tcp
来查看当前的动态保留端口的范围,比如在我本机上结果如下:
Protocol tcp Dynamic Port Range
---------------------------------
Start Port : 1024
Number of Ports : 13977
结果说明从1024端口开始的13977个端口都可能会被使用,然后执行netsh int ipv4 show excludedportrange protocol=tcp
可以查看目前被使用的端口。
因为低位端口经常被用于程序开发等,所以我们需要手动调整动态端口范围到高位端口来尽量避免问题,例如通过执行命令netsh int ipv4 set dynamic tcp| start=23000 num=16384
,我们可以把端口转移到23000开始的范围,重启电脑后问题解决。
Comments NOTHING