×


Amazon EC2 refused to connect error – Fix it now

Amazon EC2 refused to connect error happens when trying to connect to my Amazon EC2 instance using SSH. 

Here at Ibmi Media, as part of our Server Management Services, we regularly help our Customers to perform related Amazon queries.

In this context, we shall look into this AWS error.


Nature of Amazon EC2 refused to connect error ?

This error generally takes the following form:

"Error connecting to [instance], reason: Connection timed out: connect"

or

"ssh: connect to host ec2-X-X-X-X.compute-1.amazonaws.com port 22: Connection refused"

Its main causes includes:

  • SSH is not running in the instance.
  • Firewall blocking access.


Methods to fix Amazon EC2 refused to connect error ?

To resolve the connection timed out issue, we need to connect to the EC2 instance with either of the available methods:


1. EC2 Serial Console

The serial console helps you troubleshoot boot issues, network configuration, and SSH configuration issues.

The serial console connects to your instance without the need for a working network connection.

You can access the serial console using the Amazon EC2 console or the AWS Command Line Interface (AWS CLI).


2. AWS Systems Manager Session Manager

AWS Systems Manager Session Manager helps us to connect to the Amazon Elastic Compute Cloud (Amazon EC2) instances in our account.

Once you are connect to EC2, please try the following steps:

i. Disable Firewall.

As firewall restriction is a common reason for this error, we can try disabling the firewall initially to check if it resolve the error.

Please execute the following commands to disable firewalls and restart the SSH service:

$ sudo iptables -F
$ sudo service sshd restart

This command flushes all main iptables rules, not just for port 22.

Once you regain access to your instance, review your firewall configuration.


ii. Verify SSH port

Another reason for the connection time out error is that the SSH port 22 is not in listening state.

In order to verify that the SSH tcp port (22) is in a listening state. Run the below command:

$ sudo netstat -tnlp | grep :22
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 849/sshd
tcp6 0 0 :::22 :::* LISTEN 849/sshd

It will confirm that the port 22 is in listening state.


iii. SSH service is running in the instance

Once we confirm that there are no firewall restrictions and the port 22 is in listening state, we need to confirm that that the SSH service is running in the server.

Run the below command to check that:

$ systemctl status sshd.service

If it is in the failed status, try starting it by running below command:

$ sudo service sshd restart


[Need assistance in fixing Amazon error? We can help you. ]


Conclusion

This article covers methods to resolve "Connection refused" or "Connection timed out" errors  which is noticed when trying to connect to my Amazon EC2 instance using SSH. In fact, this error indicates that the server didn't respond to the client and the client program gave up (timed out).


Common causes for "Connection refused" or "Connection timed out" EC2 AWS errors:

  • The security group or network ACL doesn't allow access.
  • There is a firewall on the instance's operating system.
  • There is a firewall between the client and the server.
  • The host doesn't exist.