无法ping通AWS EC2实例

san*_*h s 204 amazon-ec2 amazon-web-services aws-security-group

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

如何使实例可ping?

Rak*_*kib 251

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

  • 类型:自定义ICMP规则
  • 协议:回应请求
  • 港口:N/A.
  • 来源:您的选择(我会选择Anywhere可以从任何机器ping)

  • 很容易将"Echo Reply"误认为是"Echo Request",我对此感到困惑了一会儿. (17认同)
  • 谢谢,我喜欢这个.我只是想允许`ping`,而不是全部. (3认同)
  • 也可以尝试一下。但ICMP对我来说已经足够了 (2认同)
  • 我在任何地方做,但它会自动将其转换为自定义 @SyedRakibAlHasan (2认同)

alk*_*kar 80

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

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

如果它是一个Web服务器,您需要允许访问端口800.0.0.0/0(这意味着任何IP地址).

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

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

  • 使用指定的安全组为计算机启用"所有ICMP"流量对我来说是一种享受. (6认同)

Sun*_*est 79

几年后但希望这会帮助别人...

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

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

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

添加安全组ICMP规则以允许Ping和Echos

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

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

添加Windows Server ICMP规则以允许Pings和Echos

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

  • 迄今为止最好的答案。非常彻底。 (6认同)
  • Windows 防火墙是罪魁祸首,到目前为止其他答案都没有提到。 (5认同)
  • 你救了我的一天!!非常感谢 (2认同)

Lau*_*ulo 40

安全组中的自定义ICMP规则不是它所需要的,至少对我而言.但是以下规则将起作用:

Type: All ICMP 
Protocol: TCP
Port range: 0 - 65535
Source: Anywhere - 0.0.0.0/0
Run Code Online (Sandbox Code Playgroud)

执行此操作后,您将能够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
Run Code Online (Sandbox Code Playgroud)

而已.

  • 没有与此相关的安全问题吗? (2认同)
  • “所有ICMP端口”?这意味着什么?ICMP 既不是 TCP 也不是 UDP,并且没有端口。 (2认同)

pra*_*oon 21

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

  • 我按照您的指南进行了更新,但仍然无法 ping 通我的 IP。你能帮忙吗 (2认同)

Han*_*med 11

请仔细阅读以下清单

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

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

aws vpc中的公共和私有子网

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

安全组文档

类型:自定义ICMPV4

协议:ICMP

Portrange:回应请求

资料来源:0.0.0.0/0

来自aws控制台的截图

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

NACL文档

入站规则. 出境规则

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

协议:ICMP协议:ICMP

Portrange:ECHO请求Portrange:ECHO REPLY

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

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

屏幕截图入站规则

截图出站规则

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


小智 8

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
Run Code Online (Sandbox Code Playgroud)

7.点击“保存”


小智 6

使用All ICMP创建一个新的安全组对我有用.


Yog*_*har 6

那些不熟悉 aws ec2 并希望从SSH, Broswer, Ping from system下面访问实例的人是这些人的入站规则:-

在此处输入图片说明


Ste*_*man 6

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

cidrIp:     "0.0.0.0/0"
ipProtocol: "icmp"
toPort:     -1
fromPort:   8
Run Code Online (Sandbox Code Playgroud)

例如,在 Scala 中(使用 AWS Java SDK v2),以下代码可定义端点IpPermissionauthorizeSecurityGroupIngress

cidrIp:     "0.0.0.0/0"
ipProtocol: "icmp"
toPort:     -1
fromPort:   8
Run Code Online (Sandbox Code Playgroud)

(我试过这仅适用于 EC2-Classic。我不知道 VPC 下可能需要什么出口规则)


Dee*_*rma 5

转到 EC2 实例的安全组并编辑 ICMP 的入站规则允许 0.0.0.0/0。

它会起作用。