AWS - 安全组不开放端口

AWS - Security Groups not opening ports

我在 AWS 上创建了一个 Linux t3a.nano EC2,除了启动它并通过 SSH 连接到它之外,我没有在实例上做任何事情。

我想打开 2 个端口,端口 80 和 3000,为此,我创建了一个安全组并将这两个端口都添加到入站规则中。

根据 AWS 文档,您需要做的就是打开端口,但是如果我连接到实例并列出打开的端口,我的安全组中正在侦听的 none 端口,只有 22,但默认情况下是打开的。

我是运行这个列出端口的命令: sudo netstat -antp | fgrep LISTEN

我尝试的其他步骤:

  1. 检查我的ACL,下面会附上配置图片,没改什么看起来没问题。
  2. 已检查实例是否使用了正确的安全组。
  3. 停止并启动实例。
  4. 创建了一个弹性 IP 并将其关联到实例以获得永久 public IP 地址。

关于我可能遗漏了哪些步骤有什么建议吗?

您正在从实例内部检查端口。安全组 (SG) 在您的实例 外部 工作。

您可以将它们想象成您实例周围的气泡。随后,该个体不知道它们的存在。这可以像下图一样可视化,其中 SG 是实例外部的屏障。仅当 SG 允许流量进入时,您的实例才能使用常规软件级防火墙进一步限制它。

到实例本身的 open/block 端口,您必须使用常规防火墙,例如 ufw。默认情况下,实例上的所有端口都将打开,至少在使用 Amazon Linux 2Ubuntu.

时是这样

因此,根据您的设置,实例 22、3000 和 80 的入站流量将被允许

更新 - 回应

多亏了上面的评论,我才走到这一步!

我想打开端口 3000 来托管 Web 服务,所以我完成了我最初问题的所有步骤,我缺少的步骤是 运行 服务器在端口 3000 上执行某些操作。在我 运行 节点之后,我能够看到端口在内部 打开 并且能够向该端口发出请求。

安全组保持不变,但现在如果我列出端口,这就是我得到的:sudo netstat -antp | fgrep LISTEN