【问题标题】:Error: listen EACCES: permission denied 0.0.0.0:3001错误:听 EACCES:权限被拒绝 0.0.0.0:3001
【发布时间】:2020-10-11 22:43:12
【问题描述】:

我在这里经历了很多答案,但没有一个能解决我的错误。这是我到目前为止所尝试的。

环境:

win 10 pro v2004 build 19041.29

node v12.14.1
  1. 使用netstat -a -b 来查看此端口是否正被任何其他进程使用。 没有进程在使用这个端口,也尝试将端口切换到3000 得到同样的错误。

  2. 我用的是docker-desktop和wsl2,所以也一一禁用了所有虚拟网卡。杀死所有其他 docker 服务后尝试。

  3. 重新启动我的电脑。

  4. 尝试以管理员身份通过 powershell 运行npm start

服务器.js

const app = require('./src/app');

const port = process.env.PORT || 3000;
app.listen(port, () => {
  console.log(`Litening on port ${port}...`);
});

错误:

events.js:200
      throw er; // Unhandled 'error' event
      ^

Error: listen EACCES: permission denied 0.0.0.0:3001
    at Server.setupListenHandle [as _listen2] (net.js:1289:21)
    at listenInCluster (net.js:1354:12)
    at Server.listen (net.js:1442:7)
    at Function.listen (C:\Users\sujeet\project\node_modules\express\lib\application.js:618:24)
    at Object.<anonymous> (C:\Users\sujee\CustomerAPIs\server.js:4:5)
    at Module._compile (internal/modules/cjs/loader.js:955:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:991:10)
    at Module.load (internal/modules/cjs/loader.js:811:32)
    at Function.Module._load (internal/modules/cjs/loader.js:723:14)
    at Function.Module.runMain (internal/modules/cjs/loader.js:1043:10)
    at internal/main/run_main_module.js:17:11
Emitted 'error' event on Server instance at:
    at emitErrorNT (net.js:1333:8)
    at processTicksAndRejections (internal/process/task_queues.js:81:21) {
  code: 'EACCES',
  errno: 'EACCES',
  syscall: 'listen',
  address: '0.0.0.0',
  port: 3001
}

【问题讨论】:

    标签: node.js windows networking


    【解决方案1】:

    可能是其他程序正在使用该端口。尝试以管理员身份运行 termianl 并尝试重新启动系统。如果问题仍然存在,请找到杀死端口上运行的进程的方法。

    【讨论】:

      【解决方案2】:

      Windows 似乎更改了它的默认动态端口范围。

      您可以使用此命令检查您的动态端口范围

      netsh int ipv4 show dynamicport tcp
      

      如果你要使用的端口在范围内,你可以用这个命令改变它

      netsh int ipv4 set dynamic tcp start=10000 num=10000
      

      您可以更改起始端口号和您想要的端口号。

      更改后不要忘记重新启动计算机。

      【讨论】:

        【解决方案3】:

        在 windows 中使用以下步骤:

        以管理员身份打开 PowerShell。

        使用以下命令停止 winnat:

        net stop winnat

        使用以下命令再次启动 winnat: net start winnat

        【讨论】:

          猜你喜欢
          • 2021-10-30
          • 2020-06-07
          • 1970-01-01
          • 2016-11-14
          • 2021-07-22
          • 2019-10-28
          • 2016-10-30
          • 2018-06-08
          • 2018-03-25
          相关资源
          最近更新 更多