有没有人用节点经历过这样的事情:
我正在运行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
同样的结果。
注意:在Windows重新启动之前,我在WSL
. 之后,我尝试了WSL
and Powershell
。
更新:它甚至发生在一个新项目中。
在我的例子中,错误出现是因为使用的端口属于 Hyper-V 的保留端口。
当我重新启动计算机时,此端口范围会发生变化,因此有时会出现错误,有时不会。
要检查 Windows 保留的端口,您可以使用(cmd/powershell):
该问题描述于:https ://github.com/microsoft/WSL/issues/5514
一般解决方法(评论 554587817):https ://github.com/docker/for-win/issues/3171#issuecomment-554587817
快速解决方法:选择一个不属于保留范围的端口
一次 Windows 重新启动是不够的,我重新启动了两次,问题就消失了。
对不起,我没有更多的技术。
除了: 1:尽量不要从 Windows 文件夹在 WSL 上开发。
感谢@fambrosi 找到线程和https://github.com/docker/for-win/issues/3171#issuecomment-788808021。这是解决这个恼人问题的命令。
对我来说,是节点在错误的网络接口上监听。
使用 docker 后,它主要使用 docker 网络接口。
禁用网络接口以强制节点使用正确的接口就可以了。
ng serve
我在终端上尝试命令时也遇到了同样的问题。解决方案:只需将命令修改为
添加到可能成为问题的越来越多的事情列表中:我在我的计算机上使用 ExpressVPN,这以某种方式干扰了绑定任何本地主机端口。卸载+重新启动为我解决了这个问题!
重启还不够!解决问题的唯一方法是通过以下方法:
您必须终止在该端口运行的服务。
在 cmd 中,以管理员身份运行,然后键入:
然后您将获得一个包含活动服务的列表,搜索在 4200 运行的端口并使用最后一列的进程 ID 通过以下方式杀死它:
对我来说同样的问题,由在端口上运行 Vue 开发服务器触发
3000
。在我的例子中,我想localhost:3000
通过自定义主机映射的本地域名(例如mysite.dev
)浏览,所以我错误地将我的本地 Apache 配置设置为侦听0.0.0.0:3000
和定义<VirtualHost *:3000>
。所以 Apache 已经在使用这个端口了。我最近将我的 docker 更新到最新版本,我的角度应用程序开始给我这个错误。经过调查,我发现端口 4200(angular 应用程序使用的默认端口)被其他应用程序占用。
我用不同的端口运行应用程序并解决了问题。
如果以上答案不能解决您的问题,您的端口可能是通过 netsh 绑定的。您可以使用以下命令查看您的端口代理信息是否到其他地方;我将端口 3000 绑定到另一个 ip,结果收到此错误。
如果您确实绑定了端口,则可以使用以下方法删除端口绑定: