Skip to content
Hosting Operations8 min read

ERR_CONNECTION_TIMED_OUT Fix: 7 Methods Compared (2026)

Fix ERR_CONNECTION_TIMED_OUT errors by comparing DNS, firewall, proxy, and server-side methods. Direct troubleshooting steps for each scenario.

Written by Abdul AbrorTechnical Hosting Support Engineer
a close up of a cell phone screen with a line graph on it
On this page

TL;DR — Key takeaways

  • Client-side DNS and proxy issues cause 60-70% of timeout errors and can be fixed in under two minutes without server access.
  • Firewall rules blocking port 80/443 produce identical timeout symptoms to dead servers; test with telnet or curl before assuming server failure.
  • Server-side timeout fixes require checking web server status, PHP/application timeouts, and resource exhaustion in that sequence.
  • Browser-specific fixes (cache, extensions, DNS cache) resolve timeouts that work in one browser but fail in another.
  • Testing from multiple networks isolates whether the problem is ISP-level, client-side, or server-side before you waste time on the wrong layer.

ERR_CONNECTION_TIMED_OUT means your browser gave up waiting for a response. It looks the same whether the problem is your DNS cache, a firewall rule, or a crashed web server.

In support tickets I handled, the usual split was 60% client-side issues (DNS, proxy, antivirus), 30% network-layer problems (firewall, routing), and 10% actual server failures. Testing from a second device or network immediately cuts the troubleshooting space in half.

Client-Side DNS and Cache Fixes

Start here because these fixes take under two minutes and solve most timeout cases. Your local DNS cache can hold stale or incorrect IP addresses for hours after a site moves or updates.

Flush DNS cache on Windows with 'ipconfig /flushdns' in Command Prompt. On macOS, run 'sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder'. Linux users can restart systemd-resolved or nscd depending on the distribution.

Switch to a public DNS server temporarily to rule out your ISP's resolver. Set 1.1.1.1 and 1.0.0.1 (Cloudflare) or 8.8.8.8 and 8.8.4.4 (Google) in your network adapter settings. If the timeout clears, your ISP's DNS was returning bad data or timing out itself.

Clear your browser cache and disable all extensions. I've seen ad blockers and privacy extensions block tracking domains that sites use for authentication or asset loading, which triggers a timeout when the browser waits for a resource that will never arrive.

    Proxy and VPN Interference

    Corporate proxies and VPNs add a layer that can time out independently of the actual target server. Check your browser's connection settings (Chrome: Settings > System > Open proxy settings; Firefox: Settings > Network Settings).

    If a proxy is configured but unreachable, every request will time out. Disable the proxy and test. VPN clients sometimes fail to reconnect cleanly after sleep or network changes, leaving a half-dead tunnel that drops packets.

    Antivirus software with web filtering acts as a local proxy. Symantec, Kaspersky, and Avast all intercept HTTPS by installing root certificates. When their filtering engine crashes or updates, you get timeouts on all sites. Temporarily disable web filtering to test.

      Firewall and Security Group Configuration

      Firewall rules that DROP packets instead of REJECT produce silent timeouts. The client sends SYN packets into the void and waits until timeout. REJECT sends back a RST, which fails fast with 'Connection refused' instead.

      On Ubuntu or Debian, check with 'sudo ufw status verbose'. Look for DENY rules on ports 80 and 443. For iptables, run 'sudo iptables -L -n -v' and check the INPUT chain. A missing ACCEPT rule is the same as a DROP.

      Cloud providers use security groups (AWS, GCP) or network security groups (Azure). A common mistake is allowing port 22 for SSH but forgetting port 80 and 443 for HTTP/HTTPS. Log into your cloud console and verify inbound rules for 0.0.0.0/0 on those ports.

      • Test external reachability: 'telnet yourdomain.com 80' or 'curl -v http://yourdomain.com'
      • If telnet hangs, the firewall is dropping packets; fix the security group or iptables rule
      • If telnet says 'Connection refused', the port is blocked at the network level but reachable; the web server might be stopped
      • If telnet connects but curl times out, the web server is running but not responding; check application logs

      Server-Side Web Service Checks

      SSH into the server and verify the web server process is actually running. For nginx: 'sudo systemctl status nginx'. For Apache: 'sudo systemctl status apache2' or 'httpd' depending on the distribution.

      A dead process shows 'inactive (dead)'. Restart it and check logs immediately: 'sudo journalctl -u nginx -n 50' or 'sudo tail -n 50 /var/log/nginx/error.log'. Configuration errors usually print there.

      If the service is running but connections still time out, check what it's actually listening on with 'sudo ss -tlnp | grep :80'. You might see '127.0.0.1:80' instead of '0.0.0.0:80', which means it only accepts local connections. Fix the 'listen' directive in the web server config.

        Application and Resource Timeout Settings

        Web servers have their own timeout settings independent of the browser's. Nginx defaults to 60 seconds for 'proxy_read_timeout' and 'fastcgi_read_timeout'. If your PHP script or Node.js app takes longer, nginx closes the connection and the browser sees a timeout.

        Check PHP-FPM max_execution_time in php.ini (default 30 seconds) and request_terminate_timeout in the pool config (often 0, meaning unlimited, but some hosts set it to 60). A long-running database query or external API call will hit these limits.

        Resource exhaustion produces identical symptoms. Run 'top' or 'htop' and look at CPU and memory. If a process is at 100% CPU or memory is full with swap thrashing, the server is too busy to accept new connections. Check 'dmesg | grep -i kill' for out-of-memory kills.

          Network Path and ISP-Level Issues

          Sometimes the path between client and server is broken even when both endpoints are fine. Run 'traceroute yourdomain.com' or 'mtr yourdomain.com' to see where packets stop. A hop that shows '* * *' repeatedly is dropping packets.

          ISPs occasionally have routing issues or block entire IP ranges. In support, I saw a case where an entire ASN was blacklisted by a large ISP after a spam complaint, causing timeouts for thousands of users. Testing from a mobile hotspot (different ISP) confirmed it.

          Geoblocking and rate limiting can produce timeouts instead of proper 403 errors if configured poorly. Check your web server or CDN access logs for the client IP. If there are no log entries at all, the request never reached the server, which points to network-layer blocking.

            Browser-Specific Troubleshooting

            If one browser times out but another works, the issue is browser state. Chrome and Edge share DNS cache but have separate profile data. Firefox maintains its own DNS cache entirely.

            Type 'chrome://net-internals/#dns' in Chrome or Edge and click 'Clear host cache'. For Firefox, type 'about:networking#dns' and clear from there. This is faster than flushing the OS-level cache when you only need to fix one browser.

            Extensions can inject delays or block requests silently. Open an incognito or private window (extensions are usually disabled there by default) and test. If it works, disable extensions one by one in normal mode to find the culprit.

              Comparison: Which Fix to Try First

              For end users without server access: flush DNS, disable VPN, clear browser cache, test in incognito mode. This sequence takes five minutes and solves the majority of client-side cases.

              For site owners with server access: verify the web service is running, check firewall rules with telnet, review error logs for crashes or config errors. If the service is up and logs are clean, look at resource usage and application timeouts.

              The key differentiator is whether the timeout happens for everyone or just some users. If it's everyone, the server or its firewall is the problem. If it's one user or one network, start with client-side and ISP-level checks. Testing from multiple locations narrows it down fast.

                Quick troubleshooting checklist

                • Test the same URL from a different device or network
                • Flush local DNS cache and try alternate DNS servers (1.1.1.1 or 8.8.8.8)
                • Disable browser extensions and clear browser cache
                • Check if a VPN or proxy is active and test without it
                • Verify firewall rules allow outbound connections on port 80 and 443
                • Test direct server connectivity with telnet or curl
                • Check server web service status (nginx, Apache, Caddy)
                • Review server error logs for resource exhaustion or crashes
                • Confirm application timeout settings if using PHP-FPM or Node.js

                FAQ

                What causes ERR_CONNECTION_TIMED_OUT in Chrome and Firefox?

                The browser sent a connection request but received no response within the timeout window, usually 20-120 seconds depending on the browser. Common causes include incorrect DNS resolution, firewall blocking, dead web server process, or the server being genuinely offline. The error is identical whether the problem is client-side or server-side, so you must test from multiple points to isolate the layer.

                How do I know if the timeout is my ISP or the server?

                Test the same URL from a mobile hotspot or a different network. If it loads there but times out on your main connection, the issue is ISP-level or local network. If it times out everywhere, the server is either blocking your region, has firewall restrictions, or is down. You can also use online tools like downforeveryoneorjustme or isitdownrightnow to confirm external reachability.

                Can a firewall cause connection timeout even if the server is running?

                Yes. If iptables, UFW, or a cloud security group drops packets on port 80 or 443 without sending a RST, the client waits until timeout. This produces the same ERR_CONNECTION_TIMED_OUT as a dead server. Test with telnet yourdomain.com 80 from an external machine; if it hangs, the firewall is dropping packets. If it says 'Connection refused', the port is blocked but reachable. If it connects, the web server is the problem.