Vite 2 无法启用开发服务器,提示 listen EACCES permission denied 0.0.0.0:3000 但本地端口并未占用的问题
最近在 Windows 10 上使用 Vite 2 开发时经常遇到无法启动开发服务的情况,提示如下:
1 | error when starting dev server: |
一眼看过去稍微有经验的开发者都清楚应该去排查端口占用问题,如果你看到本文时还没有检查过你的设备端口占用情况,建议先去检查一遍。
奇怪的是检查发现端口不存在被占用的情况。
第一次遇到这个问题时,用最直接的方式,更换端口解决了这个问题,但更换后仍然会遇到。这么一直换端口也不是事儿,为了搞清楚原因特地搜索了一下,发现是和电脑的网络有关系。
总结一下,导致这次问题的原因是电脑中的网络适配器变化导致的。例如我的电脑安装了 Docker 新增了一些 vEthernet (…) 之类的网络适配器,禁用这些适配器就能解决问题。
另外例如蓝牙适配器等也会被算作网络连接从而导致问题,因为当我遇到这个问题时,尝试将电脑的蓝牙关闭之后就恢复正常了。
结合错误提示,猜测具体的原因是项目监听了 0.0.0.0 的 IP 代表监听本机所有网卡,同时因为部分网卡 NodeJS 没有权限操作,所以导致了上面的错误情况。
详细内容可以在下面这个连接查看:
Error: listen EACCES: permission denied 0.0.0.0:3000
上面的原因只是其中一种可能性,所以如果你尝试了之后没有解决问题,那么导致问题的原因可能不是本文所提到的,你需要另行寻找。