Linux Error 111: Connection Refused – Causes and Troubleshooting Steps
Linux Error 111: Connection Refused is a common networking issue that occurs when a client application tries to connect to a server or service and the connection request is rejected. It can affect web servers, databases, APIs, SSH connections, monitoring tools, and other Linux applications.
In most cases the destination server is reachable, but the required service is not running, is not listening on the expected port, or is blocked by a network restriction. Incorrect hostname resolution and DNS problems can trigger the same error.
This guide covers the most common causes of Linux Error 111 and a structured troubleshooting process to resolve it.
On This Page
- What Does Linux Error 111 Mean?
- Common Causes of Linux Error 111
- Step-by-Step Troubleshooting
- Best Practices to Prevent Error 111
- Frequently Asked Questions
Avoid Future Server Errors
Keep your Linux servers secure and error-free with ongoing maintenance and monitoring services.
What Does Linux Error 111 Mean?
Error 111 means the client successfully reached the destination host, but the connection was denied because no application was listening to accept it. You may see messages such as:
Connection refused
Linux Error 111
or
curl: (7) Failed to connect to host: Connection refused
Both indicate that the target service is unavailable or unreachable on the expected port.
Common Causes of Linux Error 111
Several factors can lead to a connection being refused.
1. The Service Is Not Running
The most frequent cause is that the application or service has stopped unexpectedly — for example:
- Apache or Nginx web server is down
- MySQL or PostgreSQL service is stopped
- The SSH daemon is not running
- The application process has crashed
Check the service status:
systemctl status servicename
Restart the service if needed and confirm it starts correctly.
2. The Port Is Not Listening
Even a running service may not be bound to the expected network port. Check active listening ports with:
ss -tulpn
or
netstat -tulpn
Confirm the required port appears in the output and is bound to the correct interface.
3. Incorrect Hostname Configuration
Hostname resolution problems can cause local or remote connection attempts to fail. Check:
cat /etc/hosts
Make sure the localhost entries are present, for example:
127.0.0.1 localhost localhost.localdomain
::1 localhost localhost.localdomain
If your application depends on a specific hostname, confirm it resolves to the correct server IP.
4. Firewall Restrictions
Firewall rules can block incoming or outgoing connections and generate this error. Review your firewall configuration:
ufw status
or
firewall-cmd --list-all
Confirm the required port is explicitly allowed.
5. DNS Resolution Problems
If a server name cannot be resolved, applications may fail to connect. Test DNS resolution with:
nslookup hostname
or
dig hostname
If lookups fail, review your DNS configuration and confirm valid DNS servers are set.
6. Application Binding Issues
Some services are configured to listen only on the loopback interface, for example:
127.0.0.1:8080
In this case remote systems cannot reach the service even though it is running. Review the application configuration and confirm it binds to the correct network interface.
Step-by-Step Troubleshooting
Work through these steps in order to isolate the root cause.
Step 1: Verify Network Connectivity
ping server-ip
If the server does not respond, resolve the underlying network issue before troubleshooting the application.
Step 2: Verify Hostname Resolution
hostname
hostname -f
Then review:
cat /etc/hosts
Incorrect hostname entries can cause local services to fail.
Step 3: Confirm Service Status
systemctl status servicename
If the service is stopped:
systemctl restart servicename
Review the logs if the service fails to start.
Step 4: Verify Listening Ports
ss -tulpn
Confirm the application and its port number appear in the output.
Step 5: Test Port Connectivity
telnet server-ip port
or
nc -zv server-ip port
These tools confirm whether the port is reachable from the client system.
Step 6: Review Firewall Rules
For UFW:
ufw status
For Firewalld:
firewall-cmd --list-all
Allow the necessary ports if they are blocked.
Step 7: Inspect Application Logs
Most services record connection failures in log files:
journalctl -xe
tail -f /var/log/messages
tail -f /var/log/syslog
Log analysis usually reveals the exact reason for the connection refusal.
Best Practices to Prevent Error 111
- Monitor critical services continuously
- Verify hostname and DNS configurations regularly
- Document all firewall changes
- Keep applications and packages updated
- Configure automated service monitoring and alerting
- Perform routine server health checks
A proactive monitoring strategy helps catch service failures before they affect users.
Still Facing Linux Error 111?
Don’t let connection issues slow you down. Our certified Linux engineers can diagnose and fix the problem for you.
Frequently Asked Questions
What causes Linux Error 111?+
Linux Error 111 is usually caused by hostname or DNS resolution issues, firewall rules blocking the port, or the target service not running or not listening on the expected port.
Is Linux Error 111 a network problem?+
Not always. “Connection refused” typically means the host is reachable but the application or service is not accepting connections — for example, the service is stopped or listening on a different port.
Can a firewall cause Connection Refused?+
Yes. If a firewall blocks the port (UFW, iptables, or firewalld), the connection can fail. Check the firewall rules and confirm the port is allowed.
How do I check whether a service is listening on a port?+
Use ss -tulpn or netstat -tulpn to view active listening services and their ports.
Will editing the hosts file fix the issue?+
Only if the root cause is hostname resolution. If the service is down or the port is blocked, you also need to restart the service or adjust firewall and network settings.
Conclusion
Linux Error 111: Connection Refused is usually caused by an inactive service, a firewall restriction, a hostname resolution problem, or an application that is not listening on the expected port. A structured troubleshooting process lets administrators quickly identify the source and restore connectivity.
Need help troubleshooting Linux server issues? Our Linux support engineers provide 24/7 server management, monitoring, performance optimization, and technical support to keep your infrastructure stable and accessible. Explore our managed server management services for expert troubleshooting, proactive monitoring, and configuration support.
To get more updates, follow us on Facebook, Twitter, and LinkedIn.
