meow
meow

Reputation: 28164

Possible reasons for timeout when trying to access EC2 instance

I cannot SSH into my instance - Operation timed out. What could be the reasons why, and what can I do to resolve it? Rebooting normally takes a long time to take effect, and might just makes things worst

UPDATE: It is not about permissions - i can log in normally just fine. I suspect it might be because of memory issues

Upvotes: 160

Views: 218245

Answers (30)

Azeez Adeniji
Azeez Adeniji

Reputation: 31

These are some of the reasons your EC2 connection timeout:

  • Your IP address is not allowed on the security group and you need to add it
  • You may not be using the right pem or rsa key to connect
  • You may need to check your instance isn't maxing out CPU or memory on 99%

Upvotes: 1

dslosky
dslosky

Reputation: 1057

This answer is for the silly folks (like me). Your EC2's public DNS might (will) change when it's restarted. If you don't realize this and attempt to SSH into your old public DNS, the connection will stall and time out. This may lead you to assume something is wrong with your EC2 or security group or... Nope, just SSH into the new DNS. And update your ~/.ssh/config file if you have to!

Upvotes: 48

Gus
Gus

Reputation: 7525

For me it was the apache server hosted on a t2.micro linux EC2 instance, not the EC2 instance itself.

I fixed it by doing:

sudo su

service httpd restart

Upvotes: 0

rbashish
rbashish

Reputation: 2153

I was working on the instance and it was fine, the very next day when I tried to SSH into my instance it said - Connection timeout.

I tried to go through this post but nothing worked. So I did -

On the Edit inbound rules from source column choose MY IP and it will automatically populate your Public IP address in CIDR format (XXX.XXX.XXX.XX/32).

I tried with the @ted.strauss answer by giving local IP but it did not help in my case. So I choose MY IP and it worked.

Upvotes: 1

AJcodez
AJcodez

Reputation: 34166

To connect use ssh like so:

ssh -i keyname.pem [email protected]

Where keyname.pem is the name of your private key, username is the correct username for your os distribution, and xxx.xx.xxx.xx is the public ip address.

When it times out or fails, check the following:

Security Group

Make sure to have an inbound rule for tcp port 22 and either all ips or your ip. You can find the security group through the ec2 menu, in the instance options.

Routing Table

For a new subnet in a vpc, you need to change to a routing table that points 0.0.0.0/0 to internet gateway target. When you create the subnet in your vpc, by default it assigns the default routing table, which probably does not accept incoming traffic from the internet. You can edit the routing table options in the vpc menu and then subnets.

Elastic IP

For an instance in a vpc, you need to assign a public elastic ip address, and associate it with the instance. The private ip address can't be accessed from the outside. You can get an elastic ip in the ec2 menu (not instance menu).

Username

Make sure you're using the correct username. It should be one of ec2-user or root or ubuntu. Try them all if necessary.

Private Key

Make sure you're using the correct private key (the one you download or choose when launching the instance). Seems obvious, but copy paste got me twice.

UFW (Ubuntu Firewall)

The default firewall may have been enabled before disconnecting, causing additional issues from the instance side, not necessarily from the server settings. Check this answer for quick disabling of ufw

Upvotes: 22

Himavan
Himavan

Reputation: 397

This will be one of the reason. when you enable ufw and reboot your instance. First you have to add 22/tcp before enabling ufw. Following is the command

$ ufw allow 22/tcp

If you already made the mistake. Then follow the following guide

  • Start a recovery instance.
  • Stop the blocked instance (DON'T TERMINATE)
  • Detach the blocked instance volume.
  • Attach Blocked volume to the recovery instance.
  • Log to the recovery instance(Newly Launched) via ssh/putty
  • Type sudo lsblk to display attached volumes
  • Verify the name of the Blocked volume. Generally start with /dev/xvdf.
  • Mount blocked volume.
$ sudo mount /dev/xvdf1 /mnt
$ cd /mnt/etc/ufw
  • Open ufw configuration file
$ sudo vi ufw.conf
  • Enable insert mode by pressing i in vi editor

  • Update ENABLED=yes to ENABLED=no

ClickESC and type :wq to update the file.

  • Verify the file contents. where update to ENABLED=yes -> ENABLED=no
$ sudo cat ufw.conf 
  • Remove the mounted blocked volume from recovery instance
$ cd ~
$ sudo umount /mnt
  • Now detach blocked install volume from recovery instance and re-attach it to the original instance as /dev/sda1.

Finally, Start the blocked instance. Here's you will able to access your instance. If you enable ufw again don't forget to allow 22/tcp.

sudo ufw allow ssh //this one are to be added
sudo ufw allow 22 // this one
sudo ufw enable
sudo ufw status

Upvotes: 0

Akaisteph7
Akaisteph7

Reputation: 6486

If you're trying to connect from another EC2 instance, you have to make sure to only use the PRIVATE IPv4 addresses to reference them or the connections will not work.

Upvotes: 0

Amr
Amr

Reputation: 653

The solution with me was different than all the above solutions. I forgot the my VPN on. When I turned it off the problem is solved.

Upvotes: 0

Jude Ukana
Jude Ukana

Reputation: 119

If you still have this problem today and non of the other solutions have been helpful, what worked for me was; go to security groups, select a security group or create one, then click to add new inbound rule, click the source drop down and select "from anywhere" this will set 0.0.0.0/0 as the source ip.

You should be fine now.

Ensure you already have the private key file on your machine.

you can watch this video if you need more clarity.

https://www.youtube.com/watch?v=8UqtMcX_kg0

Upvotes: 2

Vikram Sapate
Vikram Sapate

Reputation: 1297

In my case, Instance was reachable but suddenly it became unreachable.

I just rebooted the instance from aws console & it solved my problem.

Upvotes: 1

Thalaivar
Thalaivar

Reputation: 23632

There could be multiple reasons for connection getting timed-out during ssh. One of the cases where i have seen this is when your route and subnet does not have associations.

enter image description here

Upvotes: 1

Jagannath Swarnkar
Jagannath Swarnkar

Reputation: 369

Allow ssh and port 22 from ufw, then enable it and check with status command

sudo ufw allow ssh
sudo ufw allow 22
sudo ufw enable
sudo ufw status

Upvotes: 3

José Del Valle
José Del Valle

Reputation: 691

If you've just created a new instance and can't connect to it, I was able to solve the issue by terminating that one and creating a new one. Of course this will only work if it's a new instance and you haven't done any more work on it.

Upvotes: 0

Maiden
Maiden

Reputation: 217

ping the DNS first . If fails then configure your inbound/outbound rules in the launch wizard . configure ALL traffic and ALL protocol and just save with default options . Ping again with your local system and then should work

Upvotes: 1

t_sologub
t_sologub

Reputation: 893

For me, it was that I had deleted everything from the boot volume. And couldn't connect to the instance anymore.

Upvotes: 0

Majali
Majali

Reputation: 531

I had the same problem and I solved it by adding a rule to the security Groups

Inbound SSH 0.0.0.0/0

Or you can add your IP address only

Upvotes: 0

Shaz
Shaz

Reputation: 425

Just reboot the Ec2 Instance once you applied Rules

Upvotes: 2

Adam J. Gramling
Adam J. Gramling

Reputation: 45

Building off @ted.strauss's answer, you can select SSH and MyIP from the drop down menu instead of navigating to a third party site.

Upvotes: 1

Innocent Anigbo
Innocent Anigbo

Reputation: 4777

To enable ssh access from the Internet for instances in a VPC subnet do the following:

  • Attach an Internet gateway to your VPC.
  • Ensure that your subnet's route table points to the Internet gateway.
  • Ensure that instances in your subnet have a globally unique IP address (public IPv4 address, Elastic IP address, or IPv6 address).
  • Ensure that your network access control (at VPC Level) and security group rules (at ec2 level) allow the relevant traffic to flow to and from your instance. Ensure your network Public IP address is enabled for both. By default, Network AcL allow all inbound and outbound traffic except explicitly configured otherwise

Upvotes: 0

smDev
smDev

Reputation: 11

My issue - I had port 22 open for "My IP" and changed the internet connection and IP address change caused. So had to change it back.

Upvotes: 1

Meltzer
Meltzer

Reputation: 126

Check out this help page on AWS docs:

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstancesConnecting.html#TroubleshootingInstancesConnectionTimeout You will probably find your solution there. for me this part did the fix:

[EC2-VPC] Check the route table for the subnet. You need a route that sends all traffic destined outside the VPC to the Internet gateway for the VPC.

  • Open the Amazon VPC console at https://console.aws.amazon.com/vpc/.

  • In the navigation pane, choose Internet Gateways. Verify that there is an Internet gateway attached to your VPC. Otherwise, choose Create Internet Gateway and follow the directions to create an Internet gateway, select the Internet gateway, and then choose Attach to VPC and follow the directions to attach it to your VPC.

  • In the navigation pane, choose Subnets, and then select your subnet.

  • On the Route Table tab, verify that there is a route with 0.0.0.0/0 as the destination and the Internet gateway for your VPC as the target. Otherwise, choose the ID of the route table (rtb-xxxxxxxx) to navigate to the Routes tab for the route table, choose Edit, Add another route, enter 0.0.0.0/0 in Destination, select your Internet gateway from Target, and then choose Save.

But I suggest you check out all the options the link above covers , you may find there the one or more issues that you got.

Upvotes: 1

vijay
vijay

Reputation: 10997

enter image description here

AFTER 2 HOURS I FOUND THIS

Note That ssh ip 120.138.105.251/32

  • IS NOT aws instance IP ADDRESS

  • It Is not your local ip 127.0.0.1

  • It Is not your local ip localhost

BUT BUT BUT

Its Your public ip address of your personal Computer from which you trying to access aws instance

  1. Go to https://www.whatismyip.com/ whatever ip address put in ssh

IF YOU WANT TO FULLY OPEN SSH TO ALL IP ADDRESS enter image description here

THIS IS HOW FULLY ACCESSIBLE ENTRIES LOOK - BASIC RECOMEENDED enter image description here

THIS IS WHAT I AM USING IN PRODUCTION enter image description here

Upvotes: 10

kenorb
kenorb

Reputation: 166409

If SSH access doesn't work for your EC2 instance, you need to check:

  • Security Group for your instance is allowing Inbound SSH access (check: view rules).

If you're using VPC instance (you've VPC ID and Subnet ID attached to your instance), check:

  1. In VPC Dashboard, find used Subnet ID which is attached to your VPC.
  2. Check its attached Route table which should have 0.0.0.0/0 as Destination and your Internet Gateway as Target.

On Linux, you may also check route info in System Log in Networking of the instance, e.g.:

++++++++++++++++++++++++++++++++++++++Net device info+++++++++++++++++++++++++++++++++++++++
+--------+------+------------------------------+---------------+-------+-------------------+
| Device |  Up  |           Address            |      Mask     | Scope |     Hw-Address    |
+--------+------+------------------------------+---------------+-------+-------------------+
|   lo   | True |          127.0.0.1           |   255.0.0.0   |   .   |         .         |
|  eth0  | True |         172.30.2.226         | 255.255.255.0 |   .   | 0a:70:f3:2f:82:23 |
+--------+------+------------------------------+---------------+-------+-------------------+
++++++++++++++++++++++++++++Route IPv4 info+++++++++++++++++++++++++++++
+-------+-------------+------------+---------------+-----------+-------+
| Route | Destination |  Gateway   |    Genmask    | Interface | Flags |
+-------+-------------+------------+---------------+-----------+-------+
|   0   |   0.0.0.0   | 172.30.2.1 |    0.0.0.0    |    eth0   |   UG  |
|   1   |   10.0.3.0  |  0.0.0.0   | 255.255.255.0 |   lxcbr0  |   U   |
|   2   |  172.30.2.0 |  0.0.0.0   | 255.255.255.0 |    eth0   |   U   |
+-------+-------------+------------+---------------+-----------+-------+

where UG flags showing you your internet gateway.

For more details, check: Troubleshooting Connecting to Your Instance at Amazon docs.

Upvotes: 0

Bharath Ram
Bharath Ram

Reputation: 959

I had similar problem, when I was using public Wifi, which didn't have password. Switching the internet connection to a secure connection did solve the problem.

Upvotes: 0

Bruno Bronosky
Bruno Bronosky

Reputation: 70339

Destroy and create anew

I had one availability zone where I could connect and another where I could not. After a few hours I got so frustrated that I deleted everything in that availability zone.

Building everything back I had to make sure to create EVERYTHING. This included:

  • Create VPC
    • CIDR: 10.0.0.0/24
  • Create Internet Gateway
  • Attach Internet Gateway to VPC
  • Create Routing Table
  • Add Route to Routing Table
    • Destination: 0.0.0.0/0
    • Target: <Internet Gateway from earlier>
  • Create Subnet
    • CIDR: 10.0.0.0/24
    • Routing Table: <Routing Table from earlier

It took me a LOT of fumbling to get all of this. I've ordered the steps in the way I think might be most efficient, but you may have to adjust them to get one item available for the next.

Suggestion

I'm not suggesting that you go thermo nuclear as I did. I'm offering all this information so that you can check these associations to ensure yours are appropriate.

Upvotes: 44

pradosh nair
pradosh nair

Reputation: 945

The following are possible issues:

  • The most likely one is that the Security Group is not configured properly to provide SSH access on port 22 to your i.p. Change in security setting does not require a restart of server for it to be effective but need to wait a few minutes for it to be applicable.

  • The local firewall configuration does not allow SSH access to the server. ( you can try a different internet connection, your phone/dongle to try it)

  • The server is not started properly ( then the access checks will fail even on the amazon console), in which case you would need to stop and start the server.

Upvotes: 2

Yahya
Yahya

Reputation: 540

I had the same problem, and the solution was allowing access from anywhere to the list of inbound rules in the active security group. In the inbound dialog, enter 22 in the port range, anywhere in the source field, and select 'ssh' in the dropdown.

P.S : This might not be the recommended solution as it means this instance can be ssh'ed from any machine, but I could not get it to work with my local IP.

Upvotes: 0

ted.strauss
ted.strauss

Reputation: 4339

I had the same problem, and the solution ended up being adding my local machine's IP to the list of inbound rules in the active security group. In the inbound dialog below, enter 22 in the port range, your local IP/32 in the source field, and leave 'custom tcp rule' in the dropdown.

enter image description here

Upvotes: 125

LA Ferguson
LA Ferguson

Reputation: 1

One more possibility. AWS security groups are setup to work only with specific incoming ip addresses. If your security group is setup in this way you (or the account holder) will need to add your ip address to the security group. Todo this open your AWS dashboard, select security groups, select a security group and click on the inbound tab. Then add your ip as appropriate.

Upvotes: 0

gareth_bowles
gareth_bowles

Reputation: 21130

Have you looked at the console output from the instance ? You can do this via the AWS console (Instances -> Right-click on the instance -> Get System Log). I've had occasions where the network services on an EC2 instance failed to start correctly, resulting in timed out SSH connections; restarting the instance usually fixed things.

Upvotes: 8

Related Questions