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

我如何能使实例pingable?


当前回答

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

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

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

其他回答

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

转到EC2仪表板,点击“运行实例” 在“Security Groups”上,选择需要添加安全性的实例的组。 点击“入站”选项卡 点击“编辑”按钮(将打开一个弹出窗口) 点击“添加规则” “类型”选择“自定义ICMP规则- IPv4” 协议选择“Echo Request”和“Echo Response”(端口范围默认为N/A) 输入“0.0.0.0/0”作为源 点击“保存”

如果您在安全组和VPC中打开,可能是您的内部网络正在阻止该IP到ping或在您的防火墙中阻止ping包。

您必须编辑EC2实例所属的Security Group并允许访问(或者创建一个新的Security Group并将该实例添加到其中)。

默认情况下,一切都被拒绝。您需要添加到安全组的例外取决于您需要向internet提供的服务。

如果它是一个web服务器,你需要允许访问端口80为0.0.0.0/0(这意味着任何IP地址)。

要允许ping实例,您需要启用ICMP通信。

AWS Web控制台在相关下拉列表中提供了一些最常用的选项。

是的,您需要打开对端口的访问。查看Security Groups http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html

您的EC2实例需要附加到一个允许您所需访问的安全组。