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 服务器 - 但无论我尝试使用哪个端口,我都会收到上述错误。