当访问网站时遇到 521 错误(Web Server Is Down),说明浏览器已经成功连接到 Cloudflare,但 Cloudflare 无法连接到你的网站服务器(源站)。这并不是 Cloudflare 的问题,而是源站服务器拒绝或无法建立连接。
一、521 错误的常见表现
访问网站提示:“Error 521: Web server is down”
Cloudflare 面板状态正常,DNS配置无误
使用浏览器或命令行 curl 测试显示连接失败
二、521 错误的常见原因
1. 源服务器未运行
Apache、Nginx 或其他 Web 服务未启动或崩溃系统重启后服务未自动启动
解决方案:
登录服务器后台,确认 Nginx / Apache 是否正在运行
常用命令: systemctl status nginx systemctl start nginx
2. 防火墙阻止了 Cloudflare IP
源服务器上的防火墙(如 UFW、iptables、CSF 等)拦截了 Cloudflare 的请求 IP
服务器认为 Cloudflare 的访问是攻击,自动封锁
解决方案:
确保 Cloudflare 的所有 IP 已添加至防火墙白名单
官方 IP 地址段参考:https://www.cloudflare.com/ips/
添加命令示例(以 UFW 为例): sudo ufw allow from 173.245.48.0/20 sudo ufw allow from 103.21.244.0/22
3. 网站监听的端口或IP配置错误
Web 服务监听的是本地 IP(如 127.0.0.1),而非公共 IP
配置文件限制了某些端口或连接来源
解决方案:
检查 Nginx/Apache 的监听配置,如 listen 80; 或 listen [IP]:80;
修改为: listen 80; server_name yourdomain.com;
4. SSL 设置不兼容
Cloudflare 与源站之间启用了不兼容的加密模式
源站未正确配置 SSL,但 Cloudflare 启用了“完整”或“严格”加密
解决方案:
登录 Cloudflare 面板 → SSL/TLS 设置
将加密模式调为:灵活(Flexible):源站无 HTTPS
完整(Full):源站支持 HTTPS 但证书非可信
严格(Strict):源站有有效证书
5. 临时性网络中断或超载
源站 CPU、内存占用过高,无法响应
数据中心临时故障
解决方案:
检查服务器资源使用情况 top / htop
重启服务器尝试恢复
三、如何诊断 521 错误
使用命令行测试源站是否在线: curl -I http://yourdomain.com curl -I http://your_server_ip
检查防火墙日志是否封禁 Cloudflare IP
查看服务器 Web 服务日志: tail -f /var/log/nginx/error.log
四、总结建议
确保服务器 Web 服务正常运行
将 Cloudflare 所有 IP 加入防火墙白名单
检查监听配置与端口设置
正确配置 SSL 模式匹配
出现 521 可通过 curl、自检命令快速定位问题
如使用的是腾讯云、阿里云、宝塔面板等,可以从面板查看防火墙设置与 Web 服务状态。若仍无法排查问题,建议暂时暂停 Cloudflare(直连源站)以确认是否为服务器问题。