我有一个在AWS中运行的EC2实例。当我试图从我的本地盒子ping它是不可用的。

我如何能使实例pingable?


当前回答

检查你的安全组

2-check Internet网关

3-检查路由表

其他回答

转到您的实例,编辑安全组并编辑入站规则

注意:请确保在协议中选择Echo Request而不是Echo Reply

如果你将规则设置为“自定义ICMP”规则和“回声回复”,它将像冠军一样工作。echo request是错误的响应ping的规则。

我有一个更深层次的问题——我已经创建了VPC、子网和适当的安全组,但忽略了添加Internet网关并将其与子网关联。因为这是我的第一个谷歌结果“不能ping ec2”,我把这个信息贴在这里,以防它被证明对别人有用(或将来我自己)。

用所有ICMP创建一个新的安全组对我很有用。

如果你想通过SDK以编程方式启用ping(从任何地方),神奇的公式是:

cidrIp:     "0.0.0.0/0"
ipProtocol: "icmp"
toPort:     -1
fromPort:   8

例如,在Scala(使用AWS Java SDK v2)中,以下工作用于为authorizeSecurityGroupIngress端点定义IpPermission。

  val PingPermission = {
    val range = IpRange.builder().cidrIp( "0.0.0.0/0" ).build()
    IpPermission.builder().ipProtocol( "icmp" ).ipRanges( range ).toPort( -1 ).fromPort( 8 ).build()
  }

(我只在EC2-Classic上尝试过。我不知道在VPC下可能需要什么出口规则)