
ERR_CONNECTION_REFUSED is one of the more alarming browser errors because it implies the server actively rejected your connection — not just that something was slow or broken. The reality is it has several possible causes, and most of them are straightforward to fix.
When your browser tries to connect to a website, it sends a request to the server on a specific port (usually port 80 for HTTP or 443 for HTTPS). If the server responds with a TCP RST (reset) packet, your browser shows ERR_CONNECTION_REFUSED.
In plain terms: the connection was refused at the network level. Either nothing is listening on that port, a firewall blocked the connection, or the service is down.
This is different from a timeout (where the connection just hangs) or a DNS error (where the domain can't be resolved at all).
This is the first question to ask. ERR_CONNECTION_REFUSED can happen on either side:
Server-side causes:
Client-side causes:
http://example.com:8080 when it should be :443)Try loading the site from a different device, network, or using an online tool like downforeveryoneorjustme.com. If others can reach it, the issue is on your end. If nobody can, it's a server problem.
You can also use our website down checker to test from multiple locations.
Use curl or telnet to check if the port is open:
curl -v http://yourdomain.com
telnet yourdomain.com 80
telnet yourdomain.com 443
If you get "Connection refused" in the terminal too, the service definitely isn't listening on that port.
SSH into your server and check:
# Nginx
sudo systemctl status nginx
# Apache
sudo systemctl status apache2
# Check what's listening on port 80/443
sudo ss -tlnp | grep -E ':80|:443'
If Nginx or Apache isn't running, start it:
sudo systemctl start nginx
sudo systemctl start apache2
# UFW (Ubuntu)
sudo ufw status
# iptables
sudo iptables -L -n | grep -E '80|443'
If port 80 or 443 is blocked, open it:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
The most common cause of ERR_CONNECTION_REFUSED. Services don't always restart automatically after a reboot. Make sure Nginx or Apache is set to start on boot:
sudo systemctl enable nginx
sudo systemctl enable apache2
If you recently changed which port your app runs on, check that your proxy config still points to the right place. A single digit difference in a port number will cause this error immediately.
If you're using Cloudflare, ERR_CONNECTION_REFUSED might mean Cloudflare can reach the internet but your origin server (the one behind Cloudflare) isn't accepting connections. This can look like a Cloudflare 521 error from the Cloudflare side.
If you're seeing this while running a local dev server, the server may not have started, may have crashed, or may be running on a different port than you think. Check your terminal for the port it's actually listening on.
If it's definitely a client-side problem:
ipconfig /flushdns on Windows, sudo dscacheutil -flushcache on macOSERR_CONNECTION_REFUSED from the server side means your site is completely unreachable. Nobody can visit it, buy from it, or contact you through it.
Having uptime monitoring in place means you'll get an alert within a minute of your server going down — before customers start seeing this error. Set up downtime alerts with Domain Monitor and stop finding out about outages from your users.
Generative AI creates new content — text, images, code, and more. This guide explains how it works, what tools are available, and where it's genuinely useful versus overhyped.
Read moreCursor AI is an AI-powered code editor built on VS Code. Learn what it does, how it works, and whether it's the right tool for your development workflow.
Read moreClaude Opus is Anthropic's most capable AI model, built for complex reasoning and demanding tasks. Learn what it does, how it compares, and when to use it.
Read moreLooking to monitor your website and domains? Join our platform and start today.