Error reference Browser & network

How to fix ERR_CONNECTION_REFUSED

ERR_CONNECTION_REFUSED is an active rejection: your machine reached an address, and that address answered 'nothing is listening here' with a TCP reset. It is not a timeout and not a DNS failure. The fix is finding which hop refused — the target site, your own server, a firewall, or a misconfigured proxy — and this guide isolates each in order.

ERR_CONNECTION_REFUSED

What ERR_CONNECTION_REFUSED means

At the TCP level, your connection attempt (SYN) was answered with a reset (RST) or an ICMP port-unreachable message. The host is up and routable, but no process is bound to that port — or a firewall is configured to REJECT rather than silently DROP. That is why the error appears instantly instead of hanging: something actively said no.

Because the IP answered, DNS resolved and routing works. The question becomes: did you reach the right machine on the right port? The usual answers are a wrong or moved port, a service that crashed or never started, a server bound to a local-only interface, or a stale DNS record pointing at an IP that no longer runs the service.

One nuance for proxy users: Chrome reports proxy-hop failures as ERR_PROXY_CONNECTION_FAILED, so ERR_CONNECTION_REFUSED in Chrome usually means a direct, unproxied connection was rejected. In command-line tools and libraries, though, 'Connection refused' (ECONNREFUSED) with a proxy configured points at the proxy address — that is the only TCP connection your client makes.

ERR_CONNECTION_REFUSED

Fix ERR_CONNECTION_REFUSED step by step

Refusals are the friendliest network error to debug because they answer instantly. Work from the address outward.

  1. Verify the port in the URL. HTTPS defaults to 443 and HTTP to 80; an explicit :port that is wrong — or a service moved to a new port — is the most common cause.
  2. If it is your own server, confirm something is listening: ss -tlnp on Linux, then match the port. No listener means the service crashed or never started.
  3. Check the bind address. A process bound to 127.0.0.1 refuses everything from other machines and containers; bind 0.0.0.0 or the correct interface for external access.
  4. Probe the exact host and port from the failing machine: nc -zv example.com 443. An instant refusal confirms active rejection rather than a routing problem.
  5. Check DNS freshness with dig +short example.com and compare against the expected address. Stale records and old hosts-file entries send you to an IP that no longer runs the service.
  6. Inspect firewall rules on both ends. REJECT rules produce refusals; DROP rules produce timeouts — the error type tells you which you are dealing with.
  7. If a proxy is configured, re-check its host and port against your dashboard. A mistyped proxy port refuses instantly and looks identical to a dead website.
  8. Test from another network or through a proxy exit to separate local egress filtering from a genuine server-side refusal.
ERR_CONNECTION_REFUSED

Refusals in proxy and scraping workflows

In automation work, a refusal can originate at three points: your local network (egress filtering on nonstandard ports), the proxy endpoint (a typo or a lapsed plan), or the target's network edge dropping entire IP ranges before HTTP ever starts. Each produces the same instant failure, so isolate by hop rather than guessing.

The isolation logic is simple: connect direct and through the proxy, then compare. Refused direct but fine through the proxy means the target rejects your IP range. Refused through the proxy but fine direct means the proxy address is wrong or your network blocks its port. The code section below packages this into two commands.

Endpoint typos and lapsed plans

A one-character port typo refuses instantly and looks identical to a dead site, so confirm host and port from your dashboard before deeper debugging.

On ProxyOmega, every port speaks HTTP, HTTPS, and SOCKS5, so if the port number is right, a protocol mismatch can't be the reason you are refused.

Network-edge IP filtering

Some hosts reject connections from datacenter ranges or low-reputation addresses at the firewall, before any HTTP exchange happens. If your server is refused but a home connection isn't, that is the pattern.

Routing requests through rotating residential IPs (/plan-unlimited/) or real 4G/5G mobile IPs (/plan-mobile/) presents an address class those filters are built to allow.

Corporate egress rules

Office and campus firewalls commonly REJECT outbound connections to nonstandard ports, which refuses your proxy hop while normal browsing works.

Test the same configuration from a hotspot or a cloud host; if it works there, request an egress exception for the proxy port rather than fighting the symptom.

ERR_CONNECTION_REFUSED

Isolate the refusing hop in two commands

Run both tests and compare the results — the combination tells you exactly which hop refused, and therefore what to fix. Use your real credentials from the dashboard.

# Direct to the target: does the site itself refuse you?
curl -sv https://example.com -o /dev/null

# Through the proxy: does the proxy hop accept you?
curl -sv -x "http://USERNAME-country-us:[email protected]:10000" \
     https://example.com -o /dev/null

# Refused on the first only  = target or network filters your IP; proxy path works.
# Refused on the second only = proxy host, port, or local egress problem.
# Refused on both            = target is down, or your network blocks broadly.
FAQ

Frequently asked questions

What's the difference between ERR_CONNECTION_REFUSED and a timeout?
A refusal is an active answer: the host received your connection attempt and rejected it, usually because nothing listens on that port or a firewall is set to REJECT. A timeout is silence — packets dropped or routed nowhere. Refusals fail instantly; timeouts hang for seconds. The distinction matters because a refusal proves the host is reachable at all.
Can a website refuse connections from just my IP?
Yes. Some hosts filter at the network edge by IP range or reputation, rejecting connections from datacenter blocks or flagged addresses before any HTTP exchange happens. If a site refuses your server but loads from your phone, that is the pattern. Routing through residential or mobile IPs typically restores access because the filter keys on the address range.
I'm using a proxy — is the refusal from the proxy or the website?
In curl, Python, or Node, your client makes exactly one TCP connection — to the proxy. A refused connection there means the proxy address refused, not the website; target-side failures come back as HTTP errors from the proxy instead. Chrome is the exception: it reports proxy-hop failures separately, as ERR_PROXY_CONNECTION_FAILED rather than ERR_CONNECTION_REFUSED.
Why does localhost refuse connections?
The service isn't listening where you think. It never started, it crashed, it is on a different port, or it bound to a specific interface — a process bound to 127.0.0.1 is invisible to other machines, and a process inside Docker is invisible on the host unless the port is published. Check listeners with ss -tlnp.

Blocked at the network edge? Start routing today.

Route through a network of 90M+ IPs across 200+ countries and connect like a real user.

ProxyOmega ProxyOmega

90M+ ethically-sourced IPs across 200+ countries and 30,000+ cities. Residential, mobile, ISP and IPv6 proxies for scraping and AI agents.

GDPRCCPA
Product
Premium Unlimited Budget Unlimited Residential / ISP Mobile IPv6 Chrome Extension
Solutions
Web scraping AI agents Price monitoring SERP & SEO Integrations All use cases
Resources
Glossary Error codes Free tools Proxies by platform Locations
Company
About Blog Docs Reseller program Affiliate Contact Sign in
© 2026 ProxyOmega Ltd. All rights reserved.