Error: listen EACCES: permission denied 0.0.0.0:8080, but no port


参考文章: wsl2, hyper-v, reserved ports

问题描述

node环境,当运行npm run dev时提示端口8080被占用。
当执行netstat -ano | findstr 8080找不到占用端口的进程。

  • 可能的原因:
    windows系统的hyper-v -> 端口的 reservation/exclusion机制。
  • 排查:
    进入管理者模式
执行 netsh int ipv4 show excludedportrange protocol=tcp
输出如下: 
Protocol tcp Port Exclusion Ranges

Start Port    End Port
----------    --------
      7967        8066
      8067        8166
      8293        8392
      8520        8619
      8620        8719
      8720        8819
      8820        8919
      8955        9054
     50000       50059     *

* - Administered port exclusions.

破案,8080夹在8067和8166之间。

解决步骤

无需关闭虚拟化,按照以下步骤:

  1. 执行 netsh int ipv4 set dynamic tcp start=51001 num=5000
  2. 禁用HNS端口exclusion行为: reg add HKLM\SYSTEM\CurrentControlSet\Services\hns\State /v EnableExcludedPortRange /d 0 /f
  3. 重启电脑

结果

重启之后,重新运行netsh int ipv4 show excludedportrange protocol=tcp,得到空列表,说明更改生效。
程序再次监听8080端口,正常

  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值