如何修复 ERR_CONNECTION_REFUSED 错误
ERR_CONNECTION_REFUSED 是用户和网站所有者最常遇到的连接错误之一。它表示浏览器无法与服务器建立连接:请求已发送,IP 地址已解析,但 server 拒绝接受连接。
ERR_CONNECTION_REFUSED 实际意味着什么
当你打开一个网站时,浏览器会执行以下操作:
- 将域名解析为 IP 地址(DNS 查询);
- 向解析后的 IP 和端口发送 HTTP/HTTPS 请求(通常是 80 或 443);
- 等待来自服务器的响应。
如果服务器主动拒绝连接尝试,浏览器会返回以下错误:
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 就会变成一个容易理解和修复的问题。


