打开端口3000 EC2亚马逊网络服务

ali*_*s51 12 amazon-ec2 amazon-web-services websocket node.js

我正在尝试使用nodejs和socket.io来提供一个webapp,它在端口3000上使用websocket.

我已经在我的管理控制台中的EC2实例上打开了端口3000,将入站TCP规则添加到相关安全组,但是我仍然无法通过浏览器上的公共DNS访问它.

sudo netstat -tulpn不会将其显示为开放端口.

我错过了什么?是否需要重新启动某些服务或我需要推送命令行才能使其运行?

谢谢

sla*_*fer 12

sudo netstat -tulpn不会将其显示为开放端口.

netstat命令将显示"某些"进程正在侦听的所有端口.所以在你提到的这种情况下,似乎你的应用程序没有监听端口3000.

首先,修复您的应用程序并确保它正在侦听端口3000.

此外,netstat与防火墙角度是否打开/关闭端口无关.它将LISTENING通过某个进程告诉您给定端口是否处于模式.

跟着这些步骤:

  1. 确保您的应用程序正在侦听端口3000: netstat -anp | grep 3000 也是telnet 127.0.0.1 3000
  2. 然后确保将本地防火墙配置为允许对端口3000的传入访问或禁用本地防火墙以进行快速测试(service iptables stop).对于linux,它通常iptables
  3. 允许对AWS安全组中的端口3000进行传入访问.

如果您仍然面临同样的问题,请按照以上3点告诉我们.


tri*_*m_3 7

除了上述所有步骤之外,请检查您是否设置了 ufw(简单防火墙)。

检查是否有 ufw 运行:

sudo ufw status
Run Code Online (Sandbox Code Playgroud)

如果它正在运行,要允许端口 3000,只需执行以下命令

sudo ufw allow 3000
Run Code Online (Sandbox Code Playgroud)

这为我解决了问题。我忘记了我不久前已经设置了 ufw,最近又开始使用我的 aws 实例。