错误:尝试启动nodejs服务器时听EADDRINUSE ::: 443错误

时间:2017-06-12 23:34:45

标签: node.js amazon-web-services ssl pm2

我正在尝试创建一个使用SSL的nodejs应用程序。我已经配置了cert,domain和nodejs并且工作正常,但是当我使用Ctrl + C停止节点服务器时,我遇到了问题。尝试重新启动节点服务器时出现以下错误:

Error: listen EADDRINUSE :::443
    at Object.exports._errnoException (util.js:870:11)
    at exports._exceptionWithHostPort (util.js:893:20)
    at Server._listen2 (net.js:1237:14)
    at listen (net.js:1273:10)
    at Server.listen (net.js:1369:5)
    at Object.<anonymous> (/var/www/html/server.js:212:47)
    at Module._compile (module.js:410:26)
    at Object.Module._extensions..js (module.js:417:10)
    at Module.load (module.js:344:32)
    at Function.Module._load (module.js:301:12)

现在我知道这意味着该端口正在使用中,但我已经尝试了几个方法来查找使用该端口的进程,但我不能。我尝试过的一些值得一提的是netstat:

$ sudo netstat -tulpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1164/sshd       
tcp6       0      0 :::22                   :::*                    LISTEN      1164/sshd       
udp        0      0 0.0.0.0:68              0.0.0.0:*                           882/dhclient

和ps:

$ ps aux |grep node
ubuntu    7632  0.0  0.0  12944   988 pts/0    S+   23:30   0:00 grep --color=auto node

但它们都没有显示我使用的是端口443.我有pm2来保持我的节点服务器处于运行状态,但它一直说errored然后我在pm2错误日志中找到了EADDRINUSE错误。我一直在撞墙几个小时。任何人都可以帮我吗?谢谢!

1 个答案:

答案 0 :(得分:2)

我遇到了这个问题,并且唯一显示该过程的命令是 sudo lsof -iTCP -sTCP:LISTEN -P