在使用 AWS 控制台时,我尝试了以下操作
- 在具有默认安全组和默认子网的默认 VPC 中启动 EC2 实例(启用公共 IP)。
- EC2 在具有公共 IP 的默认子网中启动。
- 使用公共 IP 从命令提示符 ping EC2 实例。
- 请求超时。
- 注意到默认安全组入站规则仅允许来自安全组内源的流量。
- 修改了安全组入站规则并允许来自任何地方的流量(0.0.0.0/0)
- 再次使用公共 IP 对 EC2 实例进行 ping 操作。
- 收到服务器响应。到目前为止一切正常。
- 来自 EC2 主机的 ping 回复继续显示在控制台中。
- 我删除了入站安全组规则。现在安全组没有入站规则。
- 在终端上,来自EC2实例的回复继续显示。
我的问题是 - 即使安全组的入站规则已被删除,为什么我仍会看到来自主机(EC2 实例)的回复?
对入站安全组规则的更改不会立即生效吗?为什么主机(EC2 实例)在没有入站安全组规则的情况下继续响应?
答案1
此更改立即生效,但安全组规则控制建立新的流量流(对于使用端口号的协议,通过源地址和目标地址、协议以及端口号来标识)。
根据具体规则,网络可能会主动跟踪流量,也可能不会,但 ICMP 流量始终会受到跟踪。一旦建立了跟踪的流量,该流量就不再需要匹配规则,因为网络已为该流量创建了状态表条目,该条目将一直存在,直到网络将其删除(无论是由于不活动超时还是由于 TCP 等面向连接的协议的关闭/重置)。
删除允许创建流的规则不会中断跟踪的流。
停止 ping 并重新启动。如果它继续工作,请停止它并等待几秒钟再重新启动它。您应该发现,在删除规则后不久,再次尝试 ping 目标实例会导致超时。