为什么即使我可以ping通私有IP也不能通过公共IP ping aws实例?

Nit*_*hin 3 amazon-ec2 amazon-web-services

我有两个实例(实例A和实例B)都属于同一安全组(例如sg-1)。

安全组具有以下入站规则集:

  • 类型:所有流量
  • 协议:全部
  • 端口范围:全部
  • 资料来源:sg-1

我可以使用实例B的私有IP从实例A ping实例B,但是当我使用实例B的公共地址时没有任何响应。

我想念什么?

编辑:
如果我将上述安全性配置中的源更改为“ Anywhere”,则可以ping通到公共IP。

hel*_*loV 6

仅当对实例B的private地址执行ping操作时没有任何响应时,您才应该感到惊讶。

子网的路由表会将公用地址路由到VPC外部。当它离开VPC并且流量返回时,源地址将是公用IP(或NAT IP),而不是专用IP。路由表位于安全组之前。将流量发送到另一台计算机时:

  • DNS名称解析为IP
  • 您需要指定IP,因此不会进行DNS解析
  • 如果地址属于路由表规则之一,则将相应地对其进行路由
  • 当您指定专用IP时,它很可能是内部路由的,并且安全组允许流量,并且您可以ping通
  • 当您指定公共IP时,很可能会将其路由出去。如果不查看子网路由表,就很难猜测流量的流向。给我们看路由表,我可以告诉您确切的情况。在这种情况下,源地址将是公共IP(或NAT IP),而不是私有IP
  • 使用traceroutelft跟踪网络跃点