有没有人经历过类似这样的节点:
我正在运行Angular
,我的 Windows 崩溃并重新启动,现在当我尝试时,ng serve
我得到:
Error: listen EACCES: permission denied 127.0.0.1:4200
at Server.setupListenHandle [as _listen2] (net.js:1253:19)
at listenInCluster (net.js:1318:12)
at GetAddrInfoReqWrap.doListen [as callback] (net.js:1451:7)
at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:61:10)
我也试过ng serve --port 4201
结果相同。
注意:之前视窗重新启动后,我正在运行该应用程序WSL
。之后,我尝试WSL
了Powershell
。
更新:这甚至发生在一个新项目中。
答案1
在我的情况下出现错误是因为使用的端口属于 Hyper-V 的保留端口。
当我重新启动计算机时,此端口范围会发生变化,因此有时会出现错误,有时则不会。
要检查 Windows 保留的端口,您可以使用(cmd/powershell):
netsh interface ipv4 show excludedportrange protocol=tcp
该问题描述如下:https://github.com/microsoft/WSL/issues/5514
常规解决方法(在评论 554587817 中):https://github.com/docker/for-win/issues/3171#issuecomment-554587817
快速解决方法:选择不属于保留范围的端口
答案2
一次 Windows 重启是不够的,我重启了两次,问题就解决了。
抱歉,我没有更技术性的信息。
除外: 1:尽量不要从 Windows 文件夹在 WSL 上进行开发。
答案3
感谢@fambrosi 找到这个帖子,https://github.com/docker/for-win/issues/3171#issuecomment-788808021。这是解决这个烦人的问题的命令。
net stop winnat
netsh int ipv4 set dynamic tcp start=49152 num=16384
netsh int ipv6 set dynamic tcp start=49152 num=16384
net start winnat
答案4
ng serve
我在终端上尝试命令时也遇到了同样的问题。
an unhandled exception occurred: listen EACCES: permission denied 127.0.0.1:4200
see "C:\Users\MyUser\AppData\Local\Temp\ng-At4Tad\angular-errors.log" for further details.
解决方案:只需将命令修改为
ng serve --port 4401