如何解决 Cloudflare 错误 521:Web 服务器已关闭

站点接入了Cloudflare,却出现“521 网络服务器无法连接”的错误,这是什么问题导致的?我们应该如何解决呢?

其实,出现521错误的原因是:Cloudflare 已成功连接到服务器 IP 地址,但在 80 端口或 443 端口上没有任何响应,网络服务器进程未运行,或者正在主动拒绝连接。

什么是 Cloudflare 错误 521?

错误 521 表示 Cloudflare 已经到达源服务器的 IP 地址,但网络服务器软件拒绝了连接。显示“Cloudflare 网络服务器已关闭”的消息是准确的:网络路径正常,机器可访问,但没有任何东西接受 HTTP 或 HTTPS 流量。

此 521 服务器错误位于特定层级。问题不在于 Cloudflare 的基础设施,而在于 Cloudflare 源服务器上的网络服务器进程。

Cloudflare 中的错误 521 是由什么引起的?

Cloudflare 源服务器是可访问的,但在传入请求与网络服务器进程之间存在某种问题导致连接中断。大多数 521 错误都由四类情况引起的:

源服务器离线或无响应

最直接的原因:网络服务器进程已崩溃或停止。Apache、Nginx 或您正在运行的其他程序不再监听。Cloudflare 尝试连接源服务器,在 80 或 443 端口未收到任何响应,于是返回服务器错误 521。首先务必检查服务器状态。

防火墙阻止 Cloudflare IP 地址

服务器运行良好,但 Cloudflare 防火墙规则或操作系统级别的防火墙正在阻止 Cloudflare 的 IP 范围。如果您最近收紧了规则,或者安全插件应用了新的限制,Cloudflare IP 阻止很可能是罪魁祸首。需要明确将 Cloudflare 的 IP 范围添加到白名单中 – 完整列表在 cloudflare.com/ips 。

SSL/TLS 加密配置错误

Cloudflare 的 SSL/TLS 加密模式与您的源服务器所支持的模式不匹配,会导致在 TLS 握手阶段拒绝连接。如果 Cloudflare 设置为“完全(严格)”,但源服务器上的 Cloudflare SSL 证书是自签名的或已过期,那么在交换任何内容之前连接就会被拒绝。您控制面板中的 Cloudflare SSL 模式需要与服务器实际拥有的模式相匹配。

服务器资源过载:CPU 和内存

在极端负载下,即使从技术上讲网络服务器进程仍在运行,它也可能停止接受新的连接。服务器状态检查器可能会报告机器处于运行状态,但检查进程级别的服务器状态,您会发现服务变得无响应。服务器资源使用率达到 100% 的 CPU 或耗尽内存时,这种情况就会发生。

如何解决 Cloudflare 错误 521

解决错误 521 的五个步骤,以下大致按照每个步骤解决问题的频率排序:

步骤 1 – 检查源服务器是否正在运行

通过 SSH 登录到服务器,检查 Web 服务器进程是否实际在运行:

systemctl status nginx
# or
systemctl status apache2

如果服务停止了,就启动它并进行测试。如果完全无法通过 SSH 连接,可以使用类似 UptimeRobot 的服务器状态检查工具来确认 Cloudflare 源服务器的机器是否还有响应。仅这一步骤就能解决很大一部分 521 错误。

步骤 2 – 将 Cloudflare IP 范围列入白名单

检查 Cloudflare 防火墙和操作系统防火墙规则,看是否有导致 Cloudflare IP 被封禁的情况。将 Cloudflare 发布的 IP 范围添加到 80 端口和 443 端口的允许列表中:

for ip in $(curl -s https://www.cloudflare.com/ips-v4); do
  ufw allow from $ip to any port 443
done

一旦将 Cloudflare 的 IP 地址列入白名单,防火墙规则导致的连接拒绝将立即停止。

步骤 3 – 修复 SSL/TLS 加密设置

打开 Cloudflare 控制面板,查看 SSL/TLS 下的 Cloudflare SSL 模式。如果设置为“完全(严格)”,源站需要有效的 Cloudflare SSL 证书。要么在服务器上安装合适的证书,要么在解决此问题期间暂时将 Cloudflare SSL/TLS 模式从“完全(严格)”切换为“完全(非严格)”。

这种情况往往在证书续期之后或者有人更改了仪表板但又忘记更改的情况下出现。

第 4 步 – 检查服务器资源使用情况

如果 Web 服务器进程正在运行但仍拒绝连接,请使用或检查资源级别的服务器状态。

查找消耗异常资源的进程。Cloudflare 由于资源过载产生的错误往往是间歇性的而非持续性的,这是一个有用的诊断线索。如果服务器资源使用是罪魁祸首,重启有问题的进程通常可以解决问题。

第 5 步 – 暂时禁用 Cloudflare

如果上述方法都无法解决问题,请使用 Cloudflare 禁用功能将流量直接路由到您的源站。在控制面板中,前往“概览”并点击“暂停站点上的 Cloudflare”。同时运行 Cloudflare 缓存清除操作,以排除任何缓存层的影响。

解决 WordPress 网站上的 521 错误

Cloudflare 错误 521 与 WordPress 相关的情况几乎是由插件干扰连接导致,而非服务器层面的问题。

停用冲突插件

某些缓存和性能插件会在连接层面干扰 Cloudflare,从而产生类似 521 错误的 Cloudflare 错误。与真正的 Cloudflare 防火墙问题不同,这种阻断发生在 WordPress 内部的应用层。请停用所有插件并进行测试。如果错误消失,就逐个重新激活插件。这很繁琐,但这种 WordPress 与 Cloudflare 的错误模式相当常见,所以总是要首先检查。

检查安全插件防火墙规则

像 Wordfence 这样的安全插件会在应用层面管理自己的 Cloudflare 防火墙规则。如果通过这些插件应用了 Cloudflare 的 IP 封锁,那么无论服务器防火墙设置如何,Cloudflare 的 IP 范围都无法通过。检查每个插件的 IP 白名单,并添加来自 cloudflare.com/ips 的完整范围。一旦您也通过插件将 Cloudflare 的 IP 地址列入白名单,连接就会恢复。

如何防止 521 错误再次出现

设置服务器运行时间监控

服务器离线检测器能在您的网络服务器离线几分钟内向您发出警报。同时设置 HTTP 监控器和 443 端口的 TCP 检查,这样您就能立即知道问题出在机器层面还是进程层面。自动检查服务器状态,而不是从访客投诉中得知。

自动更新 Cloudflare IP 允许列表

Cloudflare 会定期更新其 IP 范围。如果防火墙未能及时更新,Cloudflare 的 IP 封锁可能会再次出现。通过设置一个 cron 任务从 cloudflare.com/ips 获取当前列表并自动更新您的规则,可以保持 Cloudflare IP 白名单配置的时效性。在任何安全插件更新后添加 Cloudflare 防火墙审查,这样您就涵盖了导致 521 错误反复出现的两个最常见来源。

521 错误  与其他 Cloudflare 错误

Cloudflare 错误 520 与错误 521 的区别

Cloudflare 错误 520 表示已建立连接,但响应为空或格式错误。521 错误则表示在收到任何响应之前连接已被拒绝。出现 520 范围内的 Cloudflare 错误时,Web 服务器正在运行但行为异常。出现 521 错误时,服务器根本未作出响应。

Cloudflare 错误 522 与错误 521 的区别

Cloudflare 错误 522 是 TCP 超时:Cloudflare 尝试连接,但服务器在规定时间内未作出响应。521 错误则是主动拒绝。这些 Cloudflare 错误在访客看来是一样的,但根本原因不同——522 表示服务器无法访问,521 表示服务器主动拒绝连接。

Cloudflare 错误 521 常见问题解答

以下问题涵盖了围绕 Cloudflare 错误 521 最常见的困惑点。

Cloudflare 错误 521 是什么意思?

Cloudflare 错误 521 表示网络服务器进程未在 80 或 443 端口上接受连接。Cloudflare 成功到达服务器机器,但错误 521 出现是因为网络服务器软件拒绝了连接或未监听。机器在线并不意味着服务正在运行。

如何解决 521 错误?

首先检查网络服务器进程 – 确认它确实正在运行。然后依次检查防火墙规则、SSL/TLS 模式以及服务器资源使用情况。要彻底解决 521 错误,需要找到根本原因,而不仅仅是权宜之计。

服务器运行时为什么会出错 521?

机器处于运行状态并不意味着网络服务器进程也在运行。当 Cloudflare 防火墙规则阻止了 Cloudflare 的 IP 地址、Cloudflare SSL 证书不匹配导致 TLS 握手失败,或者进程正在运行但负载过重无法接受连接时,就会出现 Cloudflare 错误 521。

错误 521 是 Cloudflare 问题还是服务器问题?

服务器出现问题。Cloudflare 错误 521 表示 Cloudflare 正常运行。5xx 范围内的 Cloudflare 错误几乎总是指向源站问题,而 521 错误则完全指向源站方面的问题。

我怎样才能防止 521 错误再次出现?

设置一个直接监控网络服务器进程的服务器宕机检查器,并将 Cloudflare IP 封锁允许列表自动化,使其与 Cloudflare 发布的 IP 范围保持同步。这两个步骤涵盖了导致重复出现错误 521 事件的最常见原因。

原创文章,作者:余初云,如若转载,请注明出处:https://blog.jidcy.com/dynamicip/2175.html

Like (0)
Previous 2026年3月27日
Next 2026年3月27日

相关推荐