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

我如何能使实例pingable?


当前回答

我尝试了以上步骤中的多种解决方案,但对我有效的是

更改互联网连接到我的移动热点

再试一次。我家的网络设置不允许我连接到RDP。我在哪里可以SSH到linux服务器

其他回答

您需要在安全组中打开以下安全端口。每条规则用于不同的目的,如下所示。

所有ICMP用于ping。 HTTP用于访问HTTP端口上的URL。 HTTPS访问安全HTTP端口上的URL。

根据您的要求,您可以更改SOURCE

当ping两个系统时,默认启用SSH(如果您通过putty或终端连接)。为了允许ping,我为每个实例(入站)添加了安全组。

确保使用aws ec2实例的公共IP进行ping。 编辑附加到EC2实例的安全组,并为ICMP协议添加入站规则。 尝试ping,如果这个问题没有解决,然后在安全组中添加ICMP的出站规则。

添加一个新的EC2安全组入站规则:

类型:自定义ICMP规则 协议:Echo Request 端口:N / A 来源:你的选择(我会选择任何地方,以便能够从任何机器ping)

如果你想通过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下可能需要什么出口规则)