Connection refused

The root error Connection refused occurs when a client attempts to establish a network connection to a server, but the target system actively rejects the request. This usually means that no application is listening on the specified address and port, or that a firewall or security rule is blocking the connection. This error is commonly seen in Linux and Windows systems, Java and Spring Boot applications, Docker containers, databases, and web server environments.

When does this error occur?

  • When connecting to a port where no service is running
  • When a server application has crashed or failed to start
  • When firewall rules block inbound or outbound connections
  • When Docker containers are stopped or ports are not exposed
  • When services listen only on localhost but clients connect remotely

Root cause of Connection refused

The Connection refused error is generated by the operating system’s networking stack. It indicates that the target host is reachable, but the destination port is closed or not accepting connections. Unlike timeout errors, this refusal happens immediately because the system explicitly rejects the connection request.

How to fix the error (step-by-step)

Linux / macOS

sudo ss -lntp
sudo systemctl status service-name
sudo systemctl start service-name

Windows

netstat -ano
net start service-name

Java / Spring Boot

server.port=8080
server.address=0.0.0.0

Docker / containers

docker ps
docker start <container_id>
docker run -p 8080:8080 image-name

Databases or network services

sudo systemctl status mysql
sudo systemctl start mysql

Verify the fix

Retry the connection after ensuring the service is running and reachable. If the request succeeds without showing Connection refused, the issue is resolved. You can also test connectivity using tools such as curl, telnet, or nc to confirm the port is open.

Common mistakes to avoid

  • Assuming the service is running without checking its status
  • Forgetting to expose or map ports in Docker containers
  • Blocking traffic unintentionally with firewall rules
  • Binding services only to localhost when remote access is required

Quick tip

Always verify that the service is listening on the expected address and port before troubleshooting client-side configurations.

FAQ

Q: Is Connection refused the same as Connection timed out?

A: No. Connection refused happens immediately, while timeouts occur when no response is received.

Q: Can firewalls cause Connection refused?

A: Yes. Firewalls or security groups can actively reject connection attempts.

Q: Can this error occur even if the server is up?

A: Yes. If the service is not listening on the target port, the connection will be refused.

Conclusion

The Connection refused error means that a network connection was actively rejected by the target system. Ensuring that the service is running, listening on the correct address, and allowed by security rules resolves the issue. Check ErrorFixHub for solutions to related network and system-level root errors.

The error Connection refused occurs when a client attempts to connect to a server, but the target system actively rejects the connection. This usually means no application is listening on the specified host and port. The error is commonly seen in Java applications, Spring Boot services, Linux servers, APIs, databases, and containerized environments.

When Does This Error Occur?

  • When a service is not running on the target port
  • When an application is configured with the wrong host or port
  • When a firewall blocks incoming connections
  • When a container or service fails to start properly
  • When connecting to a server before it is fully initialized

Root Cause of Connection refused

The Connection refused error occurs at the network level. The operating system receives the connection request but finds that no process is listening on the specified address and port, or the request is explicitly blocked. As a result, the system immediately rejects the connection instead of timing out.

How to Fix the Error (Step-by-Step)

Step 1: Check if the service is running

ps aux | grep service_name

Step 2: Verify the listening port

netstat -tuln | grep 8080

Step 3: Start or restart the service

systemctl restart service_name

Step 4: Confirm application port configuration

server.port=8080

Step 5: Check firewall rules

sudo ufw status

Step 6: Validate Docker container port mapping

docker ps

Verify the Fix

After starting the service or correcting the configuration, retry the connection. If the request succeeds without showing Connection refused, the issue is resolved. You can also confirm by checking that the port is listening.

Common Mistakes to Avoid

  • Assuming the service is running without verifying it
  • Using the wrong port in client configuration
  • Ignoring firewall or security group rules
  • Restarting the client instead of fixing the server

Quick Tip

Always verify that the target service is actively listening on the expected port before troubleshooting client-side code.

FAQ

Q: How is Connection refused different from Connection timed out?

A: Connection refused means the server rejected the request immediately, while a timeout means no response was received.

Q: Can this error occur if the server is overloaded?

A: Yes. If the server crashes or stops accepting connections, the error can appear.

Q: Does this error always indicate a network issue?

A: No. It often indicates a server-side configuration or service availability problem.

Conclusion

The Connection refused error indicates that the target service is not accepting connections. Ensuring the service is running, correctly configured, and reachable resolves the issue. Check ErrorFixHub for solutions to related network and connectivity errors.

Comments

Popular posts from this blog

Port already in use

Permission denied

No such file or directory