【问题标题】:listen EADDRINUSE: address already in use -> No matter what port I use?听 EADDRINUSE:地址已经在使用 -> 不管我使用什么端口?
【发布时间】:2020-09-16 00:20:55
【问题描述】:

NodeJS 版本:LTS 12.17 安装如下:

curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
sudo apt install nodejs

我有一个很奇怪的问题:

我的一个 NodeJS 应用程序突然报告:listen EADDRINUSE: address already in use,无论我尝试将其更改为哪个端口,它都无济于事?

完整的跟踪堆栈如下所示:

Error: listen EADDRINUSE: address already in use 0.0.0.0:6080
    at Server.setupListenHandle [as _listen2] (net.js:1313:16)
    at listenInCluster (net.js:1361:12)
    at doListen (net.js:1498:7)
    at processTicksAndRejections (internal/process/task_queues.js:85:21)

我正在这样听(_wl = Winston 记录器实例):

> _server.listen(_port, '0.0.0.0', function () { _wl.info('SERVER STARTED! (listening on port # ' + _port + ')')});

我刚刚设置了这个 AWS EC2 Ubuntu 20.04 实例 - 所以我猜想它与此有关。它已经在许多不同的早期 Windows 实例上工作了多年(我想我之前从未在 Ubuntu 上运行过它)。

我像这样执行:

1. cd into folder
2. node ./server.js (I have also tried to use Sudo)

会不会和权限有关?

我已尝试允许服务器 atteched 安全组中的所有进/出流量。

我检查了 Ubuntu 20.04 中的防火墙是否也被禁用。

另外,在同一台服务器上,我正在运行一个 Python 应用程序,该应用程序公开了一个 Web 套接字服务器,并且 NodeJS 应用程序订阅此连接没有问题...

是的 - 我已尝试检查服务器上正在使用的所有端口,但只有少数端口正在使用。 NodeJS 应用程序还尝试在给定端口公开 websocket 服务器 - 但无论我尝试使用哪个端口,我都会收到上述错误。

【问题讨论】:

  • 您使用的是什么节点版本?尝试删除listen API中的主机参数并检查它是否有效?
  • NodeJS LTS v. 12.17。我只是尝试使用这个:_server.listen(_port) --> 但它仍然报告:listen EADDRINUSE: address already in use :::6080
  • 嗯..你能分享一些你正在启动应用程序的代码吗?可能是我们在问题中没有提供的代码中遗漏了一些东西。
  • 啊!你已经回答了!! :)
  • 是的!但是非常感谢你试图帮助我! :-D

标签: node.js ubuntu port ubuntu-20.04


【解决方案1】:

对不起!

我在我的 NodeJS 应用程序中使用 express,并且我的大多数应用程序都包含以下行:

app.listen(port); // In this case port # 6080

稍后在当前应用程序中(我遇到了上述问题)我初始化了一个 Web 套接字服务器,如下所示:

const _server = require('http').createServer();
_server.on('request', app);
_server.listen(_port, '0.0.0.0', function () { _wl.info('WEB SOCKET SERVER STARTED! (listening on port # ' + _port + ')')});

在上面的代码中,port_port 使用了相同的 ENV 变量/设置 (6080)。在这种情况下对我的应用程序/Express 执行操作实际上没有使用 app.listen(port) 任何东西,并且当 Web 套接字服务器随后使用相同的端口号初始化时,Windows 只是选择否决端口的用例 --> 是我从未在 Windows 上遇到任何问题的原因。但Linux/Ubuntu在这方面更为敏感。

干杯! :-)

【讨论】:

    猜你喜欢
    • 2021-10-21
    • 2021-02-11
    • 2020-11-09
    • 2020-04-08
    • 2021-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-25
    相关资源
    最近更新 更多