Cannot ping AWS EC2 instance – Dev

The best answers to the question “Cannot ping AWS EC2 instance” in the category Dev.


I have an EC2 instance running in AWS. When I try to ping from my local box it is not available.

How can I make the instance pingable?


A few years late but hopefully this will help someone else…

1) First make sure the EC2 instance has a public IP. If has a Public DNS or Public IP address (circled below) then you should be good. This will be the address you ping.
AWS public DNS address

2) Next make sure the Amazon network rules allow Echo Requests. Go to the Security Group for the EC2.

  • right click, select inbound rules
  • A: select Add Rule
  • B: Select Custom ICMP Rule – IPv4
  • C: Select Echo Request
  • D: Select either Anywhere or My IP
  • E: Select Save

Add a Security Group ICMP Rule to allow Pings and Echos

3) Next, Windows firewall blocks inbound Echo requests by default. Allow Echo requests by creating a windows firewall exception…

  • Go to Start and type Windows Firewall with Advanced Security
  • Select inbound rules

Add a Windows Server ICMP Rule to allow Pings and Echos

4) Done! Hopefully you should now be able to ping your server.


Add a new EC2 security group inbound rule:

  • Type: Custom ICMP rule
  • Protocol: Echo Request
  • Port: N/A
  • Source: your choice (I would select Anywhere to be able to ping from any machine)


The custom ICMP rule in the security group is not what it takes, a least for me.
But the following rule will work:

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

After doing this you will be able to ping other instances. You should see something like:

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

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

That´s it.


You have to edit the Security Group to which your EC2 instance belongs and allow access (or alternatively create a new one and add the instance to it).

By default everything is denied. The exception you need to add to the Security Group depends on the service you need to make available to the internet.

If it is a webserver you will need to allow access to port 80 for (which means any IP address).

To allow pinging the instance you need to enable ICMP traffic.

The AWS Web Console provides some of the most commonly used options in the relevant dropdown list.