我在AWS中运行了一个EC2实例。当我尝试从我的本地方框ping时,它不可用。
如何使实例可ping?
答案 0 :(得分:221)
添加新的EC2安全组入站规则:
答案 1 :(得分:75)
您必须编辑EC2实例所属的Security Group并允许访问(或者创建一个新实例并将实例添加到其中)。
默认情况下,一切都被拒绝。您需要添加到安全组的例外取决于您需要提供给互联网的服务。
如果是网络服务器,则需要允许80
(which means any IP address)访问端口0.0.0.0/0
。
要允许ping实例,您需要启用ICMP流量。
AWS Web Console提供相关下拉列表中一些最常用的选项。
答案 2 :(得分:66)
迟了几年但希望这会帮助其他人......
1)首先确保EC2实例具有公共IP。如果有公共DNS 或公共IP 地址(在下面圈出),那么您应该是好的。这将是你ping的地址。
2)接下来确保Amazon网络规则允许 Echo Requests 。转到EC2的安全组。
3)接下来,Windows防火墙默认阻止入站Echo请求。通过创建Windows防火墙例外来允许Echo请求...
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)
答案 5 :(得分:7)
请查看以下核对清单
1)您必须首先检查实例是否在可从Internet访问的子网中启动
为此检查实例启动的子网是否附加了互联网网关。有关AWS网络的详细信息,请通过以下链接。
public and private subnets in aws vpc
2)检查是否添加了适当的安全组规则,如果未在附加到instance.A的安全组中添加以下规则。安全组是防火墙附加到每个启动的实例。安全组包含允许的入站/出站规则实例的流量进出。默认情况下,每个安全组允许来自实例的所有出站流量,并且不允许实例的入站流量。请查看以下链接以获取流量的更多详细信息。
输入:custom ICMPV4
协议:ICMP
Portrange:回应请求
资料来源:0.0.0.0/0
3)检查子网级别防火墙中是否有足够的规则称为NACL .NACL是无状态防火墙,需要单独指定入站和出站流量.NACL应用于子网级别,子网下的所有实例将遵循NACL规则。下面是链接,其中将有更多详细信息。
入站规则。 出站规则
类型:自定义IPV4类型:自定义IPV4
协议:ICMP协议:ICMP
Portrange:ECHO REQUEST Portrange:ECHO REPLY
来源:0.0.0.0/0目的地:0.0.0.0/0
允许/拒绝:允许允许/拒绝:允许
4)检查任何防火墙,如IPTABLES和disble,以测试ping。
答案 6 :(得分:6)
使用All ICMP为我创建一个新的安全组。
答案 7 :(得分:4)
答案 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)
您必须在安全组中打开以下安全端口。每条规则用于不同目的,如下所示。
所有ICMP for ping。
用于访问HTTP端口上的URL的HTTP。
用于访问安全HTTP端口上的URL的HTTPS。
根据您的要求,您可以更改 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)
确保使用你的ec2实例的公共IP来ping。
编辑附加到EC2实例的安全组,并为ICMP协议添加入站规则。
尝试ping,如果没有解决,则在安全组中添加ICMP的出站规则。
答案 22 :(得分:-1)
如果您将规则设置为“自定义ICMP”规则,并在任何地方设置“回复回复”,它将像冠军一样工作。 “回应请求”是回答ping的错误规则。
答案 23 :(得分:-1)
是的,您需要打开对该端口的访问权限。查看安全组http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html
您的EC2实例需要连接到允许您需要访问权限的安全组。
答案 24 :(得分:-2)
答案 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.
答案 26 :(得分:-3)
访问ec2实例中的新端口时。你有2个地方加。 1.安全组入站端口。 2.防火墙设置入站规则。