如何修复 ERR_CONNECTION_REFUSED 错误

热门:
升级您的服务器配置! 申请 AVA 并使用 立减 15%
使用优惠码:

ERR_CONNECTION_REFUSED 是用户和网站所有者最常遇到的连接错误之一。它表示浏览器无法与服务器建立连接:请求已发送,IP 地址已解析,但 server 拒绝接受连接。

ERR_CONNECTION_REFUSED 实际意味着什么

当你打开一个网站时,浏览器会执行以下操作:

  1. 将域名解析为 IP 地址(DNS 查询);
  2. 向解析后的 IP 和端口发送 HTTP/HTTPS 请求(通常是 80 或 443);
  3. 等待来自服务器的响应。

如果服务器主动拒绝连接尝试,浏览器会返回以下错误:

ERR_CONNECTION_REFUSED

这不是 DNS 或超时错误——而是由特定条件触发的直接连接拒绝。

ERR_CONNECTION_REFUSED 的逐步解决方案

1. 测试 Internet 连接和网站可用性

首先确认你的 Internet 连接是否正常。尝试使用不同的浏览器或设备访问该网站。

2. 清除 DNS 缓存

过时或损坏的 DNS 缓存可能导致连接失败。使用以下命令清除它:

  • Windows:
    ipconfig /flushdns
    
  • macOS:
    sudo dscacheutil - flushcache; sudo killall -HUP mDNSResponder
    
  • Linux:
    sudo systemd-resolve -flush-caches
    

3. 更新你的 DNS 设置

不正确或缓慢的 DNS 服务器可能会阻止或错误路由请求。手动将你的 DNS 设置为可信提供商:

  • Google DNS: 8.8.8.8 和 8.8.4.4
  • Cloudflare DNS: 1.1.1.1 和 1.0.0.1

在你的网络适配器设置或路由器配置面板中进行更改。

4. 禁用 VPN、Proxy 和安全软件

VPN 服务、Proxy 配置以及防火墙/杀毒软件可能会干扰流量路由或阻止连接:

  • 关闭任何正在运行的 VPN 或 Proxy;
  • 临时禁用杀毒软件和防火墙保护;
  • 在禁用扩展程序的情况下,以隐身/私密模式重新启动浏览器。

5. 清除浏览器缓存

损坏的 cookies 或缓存数据可能会导致访问问题。在 Chrome 中,前往:

Settings → Privacy → Clear browsing data
选择“Cached files”和“Cookies”,然后清除并重启浏览器。

6. 检查 HTTP/HTTPS 端口访问

如果你正在运营一个网站或服务器,请确保端口 80(HTTP)和 443(HTTPS)已打开且未被防火墙设置阻止。如果适用,请使用以下 UFW 命令:

sudo ufw allow 80
sudo ufw allow 443

通过重新加载防火墙配置,确保更改已应用。

7. 验证 Web Server 状态

确保 Web Server 正在运行:

sudo systemctl status nginx
sudo systemctl status apache2

如果服务未激活,请重启它:

sudo systemctl restart nginx

8. 测试 SSL Certificate

过期、配置错误或缺失的 SSL Certificate 也可能导致连接被拒绝。使用此命令进行测试:

openssl s_client -connect yourdomain.com:443

9. 查看 Server 错误日志

如果可以访问服务器,日志可以揭示连接被拒绝的确切原因:

  • 对于 Nginx: /var/log/nginx/error.log
  • 对于 Apache: /var/log/apache2/error.log

检查与配置、被阻止的 IP 或服务错误相关的问题。

结论

ERR_CONNECTION_REFUSED 起初看起来可能是一个复杂的错误,但在大多数情况下,按照系统化的故障排查方法即可解决。无论问题源于本地网络设置、浏览器数据、DNS 配置,还是配置错误的 Web Server,上述每一步都能帮助缩小根本原因范围并恢复正常连接。

通过检查基础设置、审查服务器设置,并确保你的防火墙、Web Server 和 SSL Certificate 配置正确,你可以快速排除导致此错误的最常见触发因素。如果问题仍然存在,联系你的托管服务提供商或服务器管理员是下一步的最佳选择——他们可以验证客户端侧看不到的后端问题。

有了正确的诊断,ERR_CONNECTION_REFUSED 就会变成一个容易理解和修复的问题。