AWS-安全组未打开端口

问题描述

我在AWS上创建了Linux t3a.nano EC2,除了启动实例并通过SSH连接到实例之外,我没有对实例执行任何其他操作。

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

enter image description here

基于AWS文档,您需要执行其他操作才能打开端口,但是如果我连接到实例并列出端口,则我的安全组上没有端口正在侦听,只有22个在侦听,但这就是默认打开。

我正在运行以下命令来列出端口: sudo netstat -antp | fgrep LISTEN

enter image description here

我尝试过的其他步骤:

  1. 检查我的ACL,将附上以下配置的图片,没有改变,看起来还可以。
  2. 检查实例是否使用了正确的安全组。
  3. 停止并启动实例。
  4. 创建了一个弹性IP,并将其与实例相关联以具有永久的公共IP地址。

enter image description here

enter image description here

enter image description here

关于我可能缺少哪些步骤的任何建议?

解决方法

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

您可以将它们想象为实例周围的泡沫。随后,实例不知道。可以如下图所示将其可视化,其中SG是实例外部的障碍。仅当SG允许流量进入时,您的实例才能使用常规软件级防火墙进一步限制它。

enter image description here

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

因此,通过您的设置,将允许实例 22、3000和80的锅的入站流量

,

更新-响应

由于以上评论,我到了这一点!

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

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

enter image description here

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...