错误:监听EACCES:权限被拒绝0.0.0.0:3001

时间:2020-06-22 05:54:11

标签: node.js windows networking

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

环境:

win 10 pro v2004 build 19041.29

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

  2. 我使用docker-desktop和wsl2,因此也逐一禁用了所有虚拟网络适配器。在杀死所有其他docker服务后进行了尝试。

  3. 重新启动我的电脑。

  4. 尝试运行npm start以管理员身份投放Powershell

Server.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
}

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

Windows似乎将其更改为默认动态端口范围。

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

netsh int ipv4 show dynamicport tcp

如果您要使用的端口在该范围内,则可以使用此命令进行更改

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

您可以更改起始端口号和所需的端口号。

别忘了更改后重新启动计算机。