无法使用 public IP ping AWS EC2 实例

Cannot ping AWS EC2 instance with public IP

我无法 ping 我的 EC2 实例,它有一个与之关联的 public IP。在此处发帖之前,我阅读了 Cannot ping AWS EC2 instance。它没有帮助:

以下是我的设置方式:

我使用所有默认值创建了一个新的 Amazon Linux t2.micro 实例。

创建后,它在 EC2 中没有 IPv4 Public IP |实例 |实例。

所以我去了EC2 |网络与安全 |弹性 IP,然后单击分配弹性 IP 地址按钮。 Public IPv4 地址列显示地址后,我单击操作 |关联弹性 IP 地址。

我回到了 EC2 |实例 |实例,并且 IPv4 Public IP 列显示我刚刚创建的地址。

仍然无法ping通。

所以我去了EC2 |网络与安全 |安全组,单击与实例关联的安全组的 link 并添加入站和出站规则,如下所示:

All traffic          All        All       0.0.0.0/0 
All ICMP - IPv4      ICMP       All       0.0.0.0/0

仍然无法 ping。

所以我去了VPC | Internet 网关,单击创建 Internet 网关按钮,选择默认值,然后将 Internet 网关附加到与实例关联的 VPC。

仍然无法 ping。

所以我去了VPC |安全 |网络 ACL、编辑入站和编辑出站规则。这就是我对两者的看法:

Rule #   Type              Protocol       Port Range      Source       Allow / Deny
100      ALL Traffic       ALL            ALL             0.0.0.0/0    ALLOW
101      All ICMP - IPv4   ICMP (1)       ALL             0.0.0.0/0    ALLOW

仍然无法 ping。

还缺少什么能够 ping?是的,我可以 ping 我网络上的其他主机...只是不能 AWS 和为该 EC2 实例列出的 public IP 地址。

首先,值得一提的是,通常不需要每次都修改网络 ACL。它们可用于特殊目的(例如创建网络 DMZ),但除此之外只需将它们保留为默认值即可。

我还应该提一下,使用 PING 通常是不值得的,因为它可能会被许多网络配置阻止。与其尝试让 Ping 正常工作,不如让您 实际上 想要正常工作的任何东西正常工作。例如,如果您希望通过 SSH 进入实例或将其用作 Web 服务器,请尝试让它们正常工作而不是 Ping。

以下是让 PING 工作所必需的东西:

  • EC2 实例在 public 子网 中启动。这被定义为:
    • 具有 路由 Table 条目的子网,该条目将 0.0.0.0/0 指向 Internet 网关(您在你的问题中没有提到路线 Table。)
  • 与实例关联的 public IP 地址(在启动时,或之后添加 弹性 IP 地址 ,就像你一样)
  • 一个安全组,允许来自您的地址(或更宽的地址,例如0.0.0.0/0)的入站 ICMP 流量
  • 配置为响应 PING 的实例上的 操作系统 (默认情况下这通常是打开的,但响应的是 OS请求)
  • 您从中请求 Ping 的网络也允许此类流量流动。 (一些公司网络会阻止此类流量,因此您可以从家庭、工作等备用网络或通过有线网络 phone 进行尝试。)

因此,根据您提供的信息,您应该确认子网有一个路由Table指向 Internet 网关