无法ping通AWS EC2实例

时间:2014-02-24 07:48:29

标签: amazon-web-services amazon-ec2 aws-security-group

我在AWS中运行了一个EC2实例。当我尝试从我的本地方框ping时,它不可用。

如何使实例可ping?

27 个答案:

答案 0 :(得分:221)

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

  • 键入:自定义ICMP规则
  • 协议:回应请求
  • 端口: N / A
  • 来源:您的选择(我会选择任何地方,以便能够从任何计算机ping)

答案 1 :(得分:75)

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

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

如果是网络服务器,则需要允许80which means any IP address)访问端口0.0.0.0/0

要允许ping实例,您需要启用ICMP流量。

AWS Web Console提供相关下拉列表中一些最常用的选项。

答案 2 :(得分:66)

迟了几年但希望这会帮助其他人......

1)首先确保EC2实例具有公共IP。如果有公共DNS 公共IP 地址(在下面圈出),那么您应该是好的。这将是你ping的地址。 AWS public DNS address

2)接下来确保Amazon网络规则允许 Echo Requests 。转到EC2的安全组

  • 右键单击,选择入站规则
  • 答:选择添加规则
  • B:选择自定义ICMP规则 - IPv4
  • C:选择回应请求
  • D:选择任何地方我的IP
  • E:选择保存

Add a Security Group ICMP Rule to allow Pings and Echos

3)接下来,Windows防火墙默认阻止入站Echo请求。通过创建Windows防火墙例外来允许Echo请求...

  • 转到开始并输入具有高级安全性的Windows防火墙
  • 选择入站规则

Add a Windows Server ICMP Rule to allow Pings and Echos

4)完成!希望你现在能够ping你的服务器。

答案 3 :(得分:35)

安全组中的自定义ICMP规则不是我需要的,至少对我而言。 但是以下规则可行:

Type: All ICMP 
Protocol: TCP
Port range: 0 - 65535
Source: Anywhere - 0.0.0.0/0

执行此操作后,您将能够ping其他实例。你应该看到类似的东西:

PING 10.0.0.15 (10.0.0.15): 56 data bytes
64 bytes from 10.0.0.14: icmp_seq=1 ttl=64 time=3.9 ms
64 bytes from 10.0.0.14: icmp_seq=2 ttl=64 time=3.9 ms
64 bytes from 10.0.0.14: icmp_seq=3 ttl=64 time=10.6 ms
64 bytes from 10.0.0.14: icmp_seq=4 ttl=64 time=40.6 ms
64 bytes from 10.0.0.14: icmp_seq=5 ttl=64 time=3.8 ms
64 bytes from 10.0.0.14: icmp_seq=6 ttl=64 time=5.3 ms
64 bytes from 10.0.0.14: icmp_seq=7 ttl=64 time=6.5 ms
64 bytes from 10.0.0.14: icmp_seq=8 ttl=64 time=3.5 ms
64 bytes from 10.0.0.14: icmp_seq=9 ttl=64 time=21.0 ms
64 bytes from 10.0.0.14: icmp_seq=10 ttl=64 time=3.5 ms
64 bytes from 10.0.0.14: icmp_seq=11 ttl=64 time=3.5 ms
64 bytes from 10.0.0.14: icmp_seq=12 ttl=64 time=59.7 ms
64 bytes from 10.0.0.14: icmp_seq=13 ttl=64 time=3.5 ms
64 bytes from 10.0.0.14: icmp_seq=14 ttl=64 time=3.5 ms
64 bytes from 10.0.0.14: icmp_seq=15 ttl=64 time=4.8 ms
64 bytes from 10.0.0.14: icmp_seq=16 ttl=64 time=3.1 ms
64 bytes from 10.0.0.14: icmp_seq=17 ttl=64 time=3.1 ms
64 bytes from 10.0.0.14: icmp_seq=18 ttl=64 time=3.0 ms
64 bytes from 10.0.0.14: icmp_seq=19 ttl=64 time=3.1 ms

--- 10.0.0.14 ping statistics ---
20 packets transmitted, 19 packets received, 5% packet loss
round-trip min/avg/max = 3.0/9.9/59.7 ms

就是这样。

答案 4 :(得分:9)

  1. 转到EC2仪表板,然后单击“正在运行的实例” 在“安全组”上,选择需要添加安全性的实例组。
  2. 点击“入站”标签
  3. 单击“编辑”按钮(它将打开一个弹出窗口)
  4. 点击“添加规则”
  5. 选择“自定义ICMP规则-IPv4”作为类型
  6. 选择“回显请求”和“回显响应”作为协议(默认情况下,端口范围显示为“ N / A”)
  7. 输入“ 0.0.0.0/0”作为来源
  8. 点击“保存”

答案 5 :(得分:7)

请查看以下核对清单

1)您必须首先检查实例是否在可从Internet访问的子网中启动

为此检查实例启动的子网是否附加了互联网网关。有关AWS网络的详细信息,请通过以下链接。

public and private subnets in aws vpc

2)检查是否添加了适当的安全组规则,如果未在附加到instance.A的安全组中添加以下规则。安全组是防火墙附加到每个启动的实例。安全组包含允许的入站/出站规则实例的流量进出。默认情况下,每个安全组允许来自实例的所有出站流量,并且不允许实例的入站流量。请查看以下链接以获取流量的更多详细信息。

security group documentation

输入:custom ICMPV4

协议:ICMP

Portrange:回应请求

资料来源:0.0.0.0/0

screenshot from aws console

3)检查子网级别防火墙中是否有足够的规则称为NACL .NACL是无状态防火墙,需要单独指定入站和出站流量.NACL应用于子网级别,子网下的所有实例将遵循NACL规则。下面是链接,其中将有更多详细信息。

NACL documentation

入站规则出站规则

类型:自定义IPV4类型:自定义IPV4

协议:ICMP协议:ICMP

Portrange:ECHO REQUEST Portrange:ECHO REPLY

来源:0.0.0.0/0目的地:0.0.0.0/0

允许/拒绝:允许允许/拒绝:允许

screenshot inbound rule

screenshot outbound rule

4)检查任何防火墙,如IPTABLES和disble,以测试ping。

答案 6 :(得分:6)

使用All ICMP为我创建一个新的安全组。

答案 7 :(得分:4)

那些刚接触过ec2并希望从SSH, Broswer, Ping from system然后访问以下实例的人是这些的入站规则: -

enter image description here

答案 8 :(得分:1)

通过安全组,您可以控制到实例的流量,包括可以到达实例的流量。

1. Check the Security Groups (Enabled the PORTS to be OPEN)
2. Check the correct VPC 
3. Attached the correct Subnet 
4. AWS EC2 to be in Public Subnet 
5. Enable Internet Gateway 

在AWS EC2中打开端口,检查此链接是否为AWS link官方 答案由Tapan Nayan Banker发表|塔潘银行家www.tapanbanker.com

答案 9 :(得分:1)

转到EC2实例的安全组,然后编辑允许ICMP设置为0.0.0.0/0的入站规则。

它将起作用。

答案 10 :(得分:1)

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

enter image description here

  1. 所有ICMP for ping。

  2. 用于访问HTTP端口上的URL的HTTP。

  3. 用于访问安全HTTP端口上的URL的HTTPS。

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

答案 11 :(得分:0)

1-检查您的安全组

2-检查Internet网关

3次检查路由表

答案 12 :(得分:0)

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

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

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

  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下可能需要什么出口规则)

答案 13 :(得分:0)

默认情况下,EC2由AWS安全组(在EC2和VPC中找到的服务)保护。默认情况下,安全组不允许包含ping的任何ICMP请求。要允许它:

转到: AWS EC2实例 查找:安全组绑定到该实例(可能有多个安全组) 检查::协议的入站规则(ICMP)端口(0-65535)如果不存在,则可以添加它并将其允许在指定的源IP或另一个安全组上使用。

答案 14 :(得分:0)

我从上述步骤尝试了多种解决方案,但对我有用的是

<块引用>

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

然后再试一次。我家互联网设置中的某些内容不允许我连接到 RDP。我在哪里可以通过 SSH 连接到 linux 服务器

答案 15 :(得分:0)

如果您已经在安全组中打开并且VPC是正确的,则可能是内部网络正在阻止该IP ping防火墙中的ping数据包。

答案 16 :(得分:0)

转到网络安全组,然后使用源网络IP(您对服务器执行ping操作的PC)打开“所有ICMP端口”。几秒钟后,尝试再次ping通。确保限制公开访问。

答案 17 :(得分:0)

1.Go to EC2 Dashboard and click "Running Instances" on "Security Groups"
2.select the group of your instance which you need to add security.  
3.click on the "Inbound" tab
4.Click "Edit" Button (It will open an popup window)
5.click "Add Rule"
6.Select the "Custom ICMP rule - IPv4" as Type
7.Enter the "0.0.0.0/0" as Source or your public IP

7。单击“保存”

答案 18 :(得分:0)

我有同样的问题,从linux服务器连接到EC2,你有两个确保从EC2添加“所有ICMP”的事情如上所示,并且单独不起作用,你必须更新Ansible到最新版本2.4,它不适用于我以前的版本2.2。

答案 19 :(得分:0)

terraform安全组的具体说明,因为-1对我来说并不明显。

resource "aws_security_group" "Ping" {
  vpc_id = "${aws_vpc.MyVPC.id}"
  ingress {
    from_port   = -1
    to_port     = -1
    protocol    = "icmp"
    cidr_blocks = ["0.0.0.0/0"]
    ipv6_cidr_blocks = ["::/0"]
  }
}

答案 20 :(得分:0)

我遇到了更深层次的问题 - 我创建了一个VPC,子网和相应的安全组,但忽略了添加Internet网关并将其与我的子网相关联。由于这是我的第一个Google结果&#34;无法ping ec2&#34;,我会在此处发布此信息,以防它对其他人(或将来我自己)有用。

答案 21 :(得分:-1)

  1. 确保使用你的ec2实例的公共IP来ping。

  2. 编辑附加到EC2实例的安全组,并为ICMP协议添加入站规则。

  3. 尝试ping,如果没有解决,则在安全组中添加ICMP的出站规则。

答案 22 :(得分:-1)

如果您将规则设置为“自定义ICMP”规则,并在任何地方设置“回复回复”,它将像冠军一样工作。 “回应请求”是回答ping的错误规则。

答案 23 :(得分:-1)

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

您的EC2实例需要连接到允许您需要访问权限的安全组。

答案 24 :(得分:-2)

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

enter image description here

答案 25 :(得分:-3)

I will like to mention some rare ISP induced problems. Occasionally following happends to me with BSNL. its one of those wierd problems that takes hours out of your daily life. In such case one might raise the issue with ISP or change ISP.

  1. Amazon instance can be accessed from browser (all open ports)
  2. Same cannot be pinged from console
  3. ssh / telnet doesnot works either.

答案 26 :(得分:-3)

访问ec2实例中的新端口时。你有2个地方加。 1.安全组入站端口。 2.防火墙设置入站规则。