361 361Sale WordPress Care by Openbyt · WordPress 修复与运维

Cloudflare 报错别乱改:1016、521、1000、403、SSL 握手失败和 500 的修复顺序

Harry
, , ,
Cloudflare Error 1016 Origin DNS error 错误页截图

WordPress 网站接入 Cloudflare 后,最容易让人紧张的不是速度变慢,而是突然出现 error 1016error code 521cloudflare error 1000cloudflare 403cloudflare ssl handshake failedcloudflare error 500。这些错误看起来都在 Cloudflare 页面上出现,但真正原因可能在 DNS、源站端口、SSL 证书、防火墙,也可能是 WordPress 插件或 PHP 报错。

很多站长会先清缓存、暂停 Cloudflare、关闭全部插件。这样有机会短暂恢复,却容易把问题扩大:SSL 模式被改乱、WAF 被长期关闭、真实源站 IP 暴露,最后仍然不知道是哪一步修好的。本文按“用户访问链路”来排查:先看域名解析,再看 Cloudflare 能不能连到源站,然后看 SSL、403 拦截和 WordPress 500 日志。

Cloudflare Error 1016 Origin DNS error 错误页截图
Cloudflare 1016 的重点在 DNS 记录和源站主机名,通常不需要先动 WordPress 主题。

先用 3 分钟定位:错误发生在哪一层

Cloudflare 的作用像一层反向代理。访客先到 Cloudflare,再由 Cloudflare 回源到你的服务器。因此排障时不要只盯着错误代码,而要问四个问题:域名是否能解析到正确源站?Cloudflare 是否能连接 80/443?HTTPS 回源证书是否可用?请求是否被 WAF、Bot 规则或源站安全插件拦截?

  1. 记录错误页上的 Ray ID、访问路径、发生时间和访客地区。后面查 Cloudflare Security Events 时会用到。
  2. 用手机 4G、无痕窗口、不同地区测试一次,排除本地 DNS 或浏览器缓存。
  3. 每次只改一个设置。例如只改 DNS,不同时改 SSL 和插件;只放行 Cloudflare IP,不同时关闭全部安全规则。
  4. 如果是生产站,先保存当前 DNS、SSL/TLS、WAF 规则截图,方便回滚。

常见错误代码对照:先查哪里最省时间

错误典型症状优先检查
error 1016Origin DNS error,Cloudflare 找不到源站DNS A/CNAME/AAAA 记录、CNAME 目标
error code 521Web server is down,源站拒绝连接Web 服务、80/443、防火墙、Cloudflare IP 白名单
cloudflare error 1000DNS 指向被禁止的地址或循环真实源站 IP、内网地址、CNAME 回环
cloudflare 403访问被拒绝,后台/接口/登录页常见Cloudflare WAF、Bot、源站安全插件
cloudflare ssl handshake failed525/526 或握手失败SSL 模式、源站证书、证书链、TLS
cloudflare error 500页面返回内部错误PHP、插件主题、数据库、伪静态、服务器日志

error 1016:DNS 找不到源站

1016 的本质是 Cloudflare 无法把某个主机名解析到可回源的地址。它常发生在迁站、删除旧记录、把 www 改成 CNAME、使用 SaaS 平台绑定域名,或误删子域名解析之后。用户看到的是 Cloudflare 错误页,但 WordPress 后台、Elementor、WooCommerce 本身通常不是第一嫌疑。

具体解决步骤

  1. 打开 Cloudflare 后台 DNS,检查 @、www、shop、blog、api 等正在访问的主机名是否存在记录。
  2. 根域名一般用 A/AAAA 指向主机商提供的真实服务器 IP;www 可 CNAME 到根域名,或按托管平台要求 CNAME 到指定 hostname。
  3. 不要把浏览器或 ping 看到的 Cloudflare 边缘 IP 填回 A 记录,这不是你的源站 IP。
  4. 如果 CNAME 到第三方平台,复制目标域名用 dig/nslookup 检查公网是否能解析。只能内网解析的地址,Cloudflare 无法回源。
  5. 删除无效 AAAA。服务器没有 IPv6 却保留错误 AAAA,可能导致部分地区或部分路径异常。

如果站点只出现 1016,可以看站内的 Cloudflare Error 1016 怎么解决?DNS Origin Error 排查教程,里面有更细的 DNS 排查思路。

error code 521:源站拒绝 Cloudflare 连接

521 常被理解成“服务器宕机”,但真实情况更细:Nginx/Apache/OpenLiteSpeed 没运行,站点没有监听 443,云安全组没放行端口,宝塔/CSF/Fail2ban/主机商 WAF 把 Cloudflare IP 当异常流量拦截,都会触发 521。

Cloudflare Error 521 Web server is down 截图
521 排查重点是 Web 服务、端口、防火墙与 Cloudflare IP 白名单。

具体解决步骤

  1. 临时用 hosts 指向真实源站 IP,或短时间灰云测试,确认源站是否能直接打开。生产站操作前要记录当前设置。
  2. 登录服务器执行 systemctl status nginx、apache2 或 lsws,确认 Web 服务运行,配置文件没有语法错误。
  3. 检查云厂商安全组、服务器防火墙、宝塔防火墙、ufw/iptables/CSF,确保 80 和 443 对 Cloudflare 可达。
  4. 把 Cloudflare 官方 IP 段加入白名单。使用安全插件或主机商 WAF 的站点尤其要做这一步。
  5. 看 access log:如果完全没有 Cloudflare 请求,多半被网络或防火墙拦截;如果有请求但返回 5xx,再继续查 PHP 和程序日志。

同时遇到 502、503、504 的站点,可继续读 Cloudflare 500/502/503 真相:一文理清本质区别

cloudflare error 1000:DNS 指向了不允许代理的地址

1000 与 1016 都和 DNS 有关,但方向不同。1016 是“找不到可用源站”,1000 往往是“你填的地址不允许这样代理”。常见错误包括 A 记录指向 Cloudflare 自己的 IP、127.0.0.1、10.x/192.168.x 内网地址,或者 @ 与 www 互相 CNAME 形成循环。

  1. 逐条核对 A/AAAA,只保留真实公网源站 IP。
  2. 删除迁站遗留的旧 IP、测试记录和重复记录,避免 Cloudflare 随机回源到错误机器。
  3. 如果平台要求 CNAME,不要把 CNAME 解析出来的结果手工改成 A 记录。
  4. 避免根域名与 www 相互指向。常见配置是 @ 指向源站,www CNAME 到 @,或完全按平台文档配置。

cloudflare 403:先分清是 Cloudflare 拦截,还是源站拦截

403 的麻烦在于来源很多。Cloudflare WAF、Bot Fight Mode、Rate Limiting、IP Access Rules 会返回 403;源站的 Nginx deny、Apache 规则、Wordfence、iThemes Security、All In One WP Security、主机商防火墙也会返回 403。不要一看到 403 就全站关闭 WAF。

Cloudflare 403 SSL handshake failed error 500 排查清单截图
403、SSL 握手失败与 500 要分层排查,避免把安全规则和程序错误混在一起。

具体解决步骤

  1. 用 Ray ID、访客 IP、访问路径和时间,到 Cloudflare → Security → Events 查询是否命中规则。
  2. 如果命中 WAF,对 wp-admin、wp-login.php、wp-json、支付回调、会员登录等必要路径做精确 Skip,而不是直接关掉全站防护。
  3. 如果 Cloudflare 没有安全事件,查看源站 access/error log 和安全插件日志,确认是否由 WordPress 插件或服务器规则拦截。
  4. 对支付网关、监控服务、管理员固定 IP 和必要 API 做白名单,但不要把全部国家、全部请求都放行。

使用 Wordfence 的站点,可以结合 Wordfence Security 插件安装配置指南 检查安全插件与 Cloudflare 规则是否重复拦截。

cloudflare ssl handshake failed:源站证书也要正确

SSL 握手失败通常对应 525 或 526。很多人只检查浏览器小锁,却忽略 Cloudflare 到源站之间也要建立 HTTPS。特别是在 Full (strict) 模式下,源站证书必须有效、未过期、域名匹配、证书链完整。

  1. 优先使用 Full (strict),但先确认源站证书覆盖 example.com 和 www.example.com。
  2. 如果使用 Cloudflare Origin Certificate,要把证书和私钥安装到服务器虚拟主机里,不是只在 Cloudflare 后台生成。
  3. 检查源站 TLS 版本、SNI 和证书链。老系统、旧 OpenSSL 或错误中间证书都可能握手失败。
  4. 确认 DNS 已经指向新服务器,避免 Cloudflare 回源到旧机器上的过期证书。

SSL 还可能引发循环跳转,可参考 Flexible SSL 模式的致命误区Cloudflare SSL 设置引发 TOO_MANY_REDIRECTS 的解决方案

cloudflare error 500:回到 WordPress、PHP 和服务器日志

500 通常不是 Cloudflare 自己故障,而是源站返回内部错误。WordPress 站点常见原因包括插件更新后的 fatal error、主题 functions.php 冲突、PHP 版本不兼容、内存不足、数据库连接异常、.htaccess 损坏、Nginx rewrite 写错、文件权限异常。

  1. 先灰云或 hosts 直连源站。绕过 Cloudflare 仍然 500,基本就是源站问题。
  2. 查看 PHP error_log、wp-content/debug.log、Nginx/Apache error log,重点搜索 fatal error、memory exhausted、permission denied、database error。
  3. 回滚最近更新的插件、主题、PHP 版本和缓存配置。Elementor、WooCommerce、缓存、安全、支付插件要优先排查。
  4. 检查 memory_limit、max_execution_time、max_input_vars、数据库连接和磁盘空间。必要时临时开启 WP_DEBUG_LOG,修复后再关闭前台 debug 输出。
  5. 重新保存固定链接,或检查 .htaccess / Nginx rewrite 是否有语法错误。

一套更稳的恢复顺序

  1. DNS:确认记录存在、没有重复、没有错误 AAAA、没有 CNAME 回环,且指向真实源站。
  2. 回源:确认 Web 服务运行、80/443 开放、Cloudflare IP 没被拦。
  3. SSL:确认 SSL/TLS 模式、源站证书、证书链、TLS 版本和回源 IP。
  4. 安全:查询 Security Events,再检查源站 WAF 和 WordPress 安全插件。
  5. WordPress:看 debug.log、PHP 日志、插件主题冲突、数据库、缓存和伪静态。

总结

处理 Cloudflare 常见错误代码,最重要的是不要把所有问题都归咎于 Cloudflare。error 1016 先查 DNS;error code 521 查源站连接和防火墙;cloudflare error 1000 修正禁止地址或 CNAME 循环;cloudflare 403 分清 Cloudflare 与源站拦截;cloudflare ssl handshake failed 检查源站证书和 TLS;cloudflare error 500 回到 WordPress、PHP 与服务器日志。按链路一层层排查,比盲目清缓存、停插件、改 SSL 模式更安全。

延伸阅读

需要工程师帮你判断?

把症状、错误提示和最近改动发过来。

我们先判断风险、可能原因和安全下一步,再决定是否需要登录后台或服务器。

开始初诊

需要把这篇文章里的排查落到你的网站上吗?

把网址、错误提示、最近改动和影响范围发过来。我们先判断风险、备份状态和安全下一步;涉及数据库、支付、订单或安全问题时,不建议直接在生产站连续试错。

免费初诊 · 无需注册 · 先判断风险 提交后再决定是否修复
可上传错误截图、后台报错或页面异常截图,帮助更快判断。
提交前提醒先保留备份和错误提示,不要在生产站连续试错。