端口不会在新的 EC2/AWS 实例上打开

端口不会在新的 EC2/AWS 实例上打开

我创建了一个新实例,添加了相同的安全组与之前在 EC2 中一样,选择与之前相同的 VPC(据我所知一切都完全相同),但现在我得到:ERR_CONNECTION_REFUSED当我尝试连接到端口时8080

nodejs server在端口上有一个简单的运行8080

netstat -anp | grep :8080
   (Not all processes could be identified, non-owned process info
    will not be shown, you would have to be root to see it all.)
   tcp        0      0 127.0.0.1:8080          0.0.0.0:*               LISTEN      2438/node

这:sudo lsof -i输出:

COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
dhclient  640   root    5u  IPv4   9825      0t0  UDP *:bootpc
dhclient  640   root   20u  IPv4   8531      0t0  UDP *:15190
dhclient  640   root   21u  IPv6   8532      0t0  UDP *:13517
sshd      950   root    3u  IPv4  10114      0t0  TCP *:ssh (LISTEN)
sshd      950   root    4u  IPv6  10116      0t0  TCP *:ssh (LISTEN)
sshd     1140   root    3u  IPv4   1708      0t0  TCP ip-x-x-x-x.eu-west-1.compute.internal:ssh->x-x-x-x:49442 (ESTABLISHED)
sshd     1194 ubuntu    3u  IPv4   1708      0t0  TCP ip-x-x-x-x.eu-west-1.compute.internal:ssh->x-x-x-x:49442 (ESTABLISHED)
node     1800 ubuntu   12u  IPv6  10541      0t0  TCP *:8545 (LISTEN)
node     2438 ubuntu   16u  IPv4  12327      0t0  TCP localhost:http-alt (LISTEN)

和: sudo netstat -tulpn

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.0.1:8080          0.0.0.0:*               LISTEN      2438/node
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      950/sshd
tcp6       0      0 :::22                   :::*                    LISTEN      950/sshd
tcp6       0      0 :::8545                 :::*                    LISTEN      1800/node
udp        0      0 0.0.0.0:15190           0.0.0.0:*                           640/dhclient
udp        0      0 0.0.0.0:68              0.0.0.0:*                           640/dhclient
udp6       0      0 :::13517                :::*                                640/dhclient

我现在完全不知所措了。

我尝试多次重新启动实例,重新添加安全组,但没有任何帮助。

ERR_CONNECTION_REFUSED告诉我它存在,但是没有应用端口转发。

答案1

正如您在输出中看到的,您的 nodejs 服务器正在监听本地环回设备 127.0.0.1 netstat127.0.0.1:8080

您需要更改 nodejs 服务器来监听0.0.0.0

答案2

原来是 nodejs 服务器出了问题,我不得不将其暴露给外部请求。由于它在本地主机上运行,​​所以我不认为这会是个问题。

像这样:

   app.listen(8080, '0.0.0.0', (err) => {
   ...

确保0.0.0.0它也能响应外部 IP。

相关内容