首页 > 日常 > 解决 error listen EACCES: permission denied 0.0.0.0:8081

解决 error listen EACCES: permission denied 0.0.0.0:8081

今天发现电脑在重启后,打开 NodeJS 项目后无法运行,提示 8081 端口被占用了。一开始以为是某个 node 非正常占用导致,关闭所有相关的软件并确认没有node 进程存在后,再次运行项目,发现还是提示端口被占用。

按照我先前整理的《查找端口被占用的程序,执行 netstat -ano | findstr 8081,发现找不到占用端口的进程。

看来要狂暴一下了。

经过一番搜索,网上有一个观点是端口被 WSL 占用了,大意是微软在使用 reservation/exclusion 机制来进行动态端口分配时,分配的端口号有的比较低,所以导致和其它软件冲突。

运行下面的命令:

netsh int ipv4 show excludedportrange protocol=tcp

发现 8081 端口在范围里面。

运行下面的命令:

netsh int ipv4 show dynamicport tcp

可以看到系统赋予的起始端口号确实比较低。

解决方法,就是重新设置动态端口的区间范围,例如运行下面的命令:

netsh int ipv4 set dynamic tcp start=49152 num=16384

非常重要的是,需要重启电脑。

重启后可以重新运行命令来确认下:

netsh int ipv4 show excludedportrange protocol=tcp

最后提醒大家的是,运行上面的命令时,最合适地是使用管理员权限来运行。

分类: 日常 标签:
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.