近日在部署nacos时一直出现长报错,显示9848端口被占用无法访问,但是通过
netstat -ano | findstr 9848
查看端口状态却没有输出,表明没有运行在此端口上的程序,同时重新下载不同版本的nacos均出现此问题,排除是nacos的问题,排除问题解决了两天,成功解决,方案如下。
排查
首先通过
netstat -ano | findstr 9848
查看是否有其它应用占用该端口的情况,如果有输出就通过taskkill /F /PID <PID>
杀掉该程序,重新运行即可解决。
特殊情况
运行上面一步查看端口占用如果没有输出那就是这种情况,动态端口占用问题。
动态端口的主要作用是提高网络通信的灵活性和效率。
当一个应用程序需要使用网络进行通信时,操作系统会从预先设定的动态端口范围内随机选择一个未被占用的端口号分配给该应用程序。应用程序使用该端口号与服务器进行通信,完成通信后,该端口号会被释放。
通过运行
netsh int ipv4 show dynamicport tcp
查看自己电脑动态端口范围,一般起始为1024端口。
我们需要更改起始端口:
netsh int ipv4 set dynamicport tcp start=49152 num=16384
将起始端口设置为49152,这样9848端口就不会包括在里面,从而解决无故端口占用情况,这里的49152设置是保持和udp端口一样的起始端口,你也可以自己更改。
实测能够解决nacos无故9848端口占用问题,能够运行nacos。