Cloudflare 常见错误代码怎么修?1016、521、1000、403、SSL 和 500 一次排清

接入 Cloudflare 后,网站访问速度和安全性通常会更好,但一旦出现 error 1016error code 521cloudflare error 1000cloudflare 403cloudflare ssl handshake failedcloudflare error 500,很多站长第一反应就是清缓存、暂停代理、停用插件。这样做有时能临时恢复,却很容易错过真正原因,甚至把 DNS、SSL、WAF 和 WordPress 程序错误混在一起。

这篇文章按真实排障顺序来写:先判断请求卡在 DNS、回源连接、SSL 握手、安全拦截,还是 WordPress/PHP 源站程序层;再分别给出可执行步骤。适合 WordPress、WooCommerce、Elementor 网站在迁站、换 IP、启用防火墙、更新证书、修改解析后快速定位问题。

1016 属于 DNS/源站解析问题,优先检查 Cloudflare DNS 记录,而不是先改 WordPress 插件。

排查前先做 4 件事

保存错误页截图,记录 Cloudflare Ray ID、访问 URL、发生时间和访客地区。回想最近 24 小时是否改过 DNS、服务器 IP、SSL 证书、WAF 规则、缓存插件、主题或 PHP 版本。用无痕窗口、手机网络和不同地区检测工具复测,避免只被本地 DNS 或浏览器缓存误导。每次只修改一个变量。一次同时关 WAF、灰云、删插件、改 SSL,即使恢复也不知道是哪一步有效。

错误代码快速对照表

错误代码通常含义优先处理位置error 1016Cloudflare 无法解析源站主机名DNS 记录、CNAME 目标、错误 AAAAerror code 521源站拒绝 Cloudflare 连接Web 服务、80/443 端口、防火墙cloudflare error 1000DNS 指向被禁止的地址或形成回环真实源站 IP、CNAME 循环、内网 IPcloudflare 403访问被 Cloudflare 或源站拒绝WAF、Bot、IP 规则、安全插件cloudflare ssl handshake failedCloudflare 到源站 TLS 握手失败SSL/TLS 模式、源站证书、证书链cloudflare error 500源站程序或服务器内部错误PHP 日志、插件主题冲突、数据库、伪静态

error 1016:先查 DNS,别先动主题

error 1016 常见提示是 Origin DNS error。意思是 Cloudflare 想回源,但找不到可用的源站地址。它常发生在迁站后删除旧解析、把 www 改成 CNAME、使用第三方托管平台、配置负载均衡或误删根域名记录之后。

解决步骤

进入 Cloudflare → DNS,检查 @、www、shop、blog、api 等主机名是否都有正确记录。根域名一般用 A/AAAA 指向主机商提供的真实服务器 IP;www 可 CNAME 到根域名或平台指定 hostname。不要把 ping 域名得到的 Cloudflare 边缘 IP 填回 A 记录,这会引出 1000 或回源异常。如果用了 CNAME,复制目标域名用 nslookup/dig 检查公网是否能解析。只能在服务商内网解析的目标,Cloudflare 不能使用。检查是否残留错误 AAAA 记录。服务器没有 IPv6 却保留 AAAA,可能导致部分地区访问异常。

如果你只遇到 1016,可继续参考 Cloudflare Error 1016 怎么解决?DNS Origin Error 排查教程

error code 521:服务器拒绝 Cloudflare 连接

521 经常显示 Web server is down,但并不一定是服务器整机宕机。更常见的是 Nginx、Apache、OpenLiteSpeed 没有监听端口,云安全组没放行 80/443,或者防火墙、安全插件、主机商 WAF 把 Cloudflare IP 当成异常流量拦截。

521 的关键是源站 Web 服务、端口和防火墙,清缓存通常不是第一步。

解决步骤

短时间灰云或本地 hosts 指向真实源站 IP 测试,确认源站本身是否可访问。登录服务器检查 Web 服务状态:systemctl status nginx/apache2/lsws,确认站点虚拟主机加载成功。检查云服务器安全组、面板防火墙、ufw/iptables/CSF 是否放行 80 和 443。把 Cloudflare 官方 IP 段加入白名单,尤其是使用宝塔、防火墙、Fail2ban、ModSecurity 的站点。查看源站 access log:没有请求说明被网络或防火墙拦住;有请求但 5xx,则继续看 PHP 和程序日志。

如果同时看到 502、503、504,可延伸阅读 Cloudflare 500/502/503 真相:一文理清本质区别

cloudflare error 1000:DNS 指向了不允许代理的目标

cloudflare error 1000 与 DNS 配错高度相关。常见原因包括 A 记录指向 Cloudflare 自己的 IP、127.0.0.1、10.x/192.168.x 内网地址,或者根域名和 www 互相 CNAME 形成循环。1016 是找不到源站,1000 则是目标地址不允许被代理。

核对所有 A/AAAA 记录,只保留真实源站 IP。删除迁站遗留的重复记录、测试记录和旧服务器记录。不要把 CNAME 的解析结果手动复制成 A 记录,按平台文档保持 CNAME 即可。避免 @ 与 www 互相 CNAME。常见做法是 @ 指向源站,www CNAME 到 @,或完全按托管平台要求配置。

cloudflare 403:先判断拦截发生在哪里

403 可能来自 Cloudflare,也可能来自源站。比如 Cloudflare WAF、Bot Fight Mode、Rate Limiting、IP Access Rules 会返回 403;源站 Nginx/Apache deny、Wordfence、iThemes Security、All In One WP Security、主机商 WAF 也会返回 403。

403、SSL 握手失败和 500 都要先定位来源,再做精确调整。

用 Ray ID、访客 IP、路径和时间到 Cloudflare → Security → Events 查询。如果命中 WAF 规则,对 wp-admin、wp-json、支付回调、会员登录等必要路径做精确 Skip,不要直接关闭全站 WAF。如果 Cloudflare 没有安全事件,就去源站 access/error log 和安全插件日志查 403 来源。对管理员固定 IP、支付网关、监控服务和搜索引擎爬虫做必要放行,但不要把整站全放白。

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

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

SSL 握手失败通常对应 525 或 526。很多人只看浏览器地址栏的小锁,却忘了 Cloudflare 和源站之间也要完成 HTTPS 握手。Full (strict) 模式下,源站证书必须有效、未过期、域名匹配,并且证书链完整。

建议使用 Full (strict),但先确认源站证书覆盖根域名和 www。如果使用 Cloudflare Origin Certificate,要把证书和私钥安装到服务器站点配置里,而不是只在 Cloudflare 后台生成。检查源站 TLS 版本和加密套件,老系统或过旧 OpenSSL 可能握手失败。确认 DNS 已指向新服务器,避免 Cloudflare 回源到旧机器上的过期证书。

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

cloudflare error 500:回到 WordPress 和 PHP 日志

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

灰云或 hosts 直连源站测试;绕过 Cloudflare 仍然 500,基本就是源站问题。查看 PHP error_log、wp-content/debug.log、Nginx/Apache error log,重点搜索 fatal error、memory exhausted、permission denied、database error。回滚最近更新的插件、主题、PHP 版本和缓存配置,Elementor、WooCommerce、缓存、安全、支付插件要重点排查。检查 memory_limit、max_execution_time、max_input_vars 和数据库连接,必要时临时启用 WP_DEBUG_LOG。恢复固定链接规则,确认 .htaccess 或 Nginx rewrite 没有语法错误。

推荐的恢复顺序

DNS:记录是否存在、是否重复、是否指向真实源站,是否有错误 AAAA 或 CNAME 回环。回源:Web 服务是否运行,80/443 是否开放,Cloudflare IP 是否被防火墙拦截。SSL:Cloudflare SSL 模式、源站证书、证书链、TLS 版本和回源 IP。安全:Cloudflare Security Events、WAF、Bot、Rate Limiting、源站安全插件。WordPress:debug.log、插件主题冲突、缓存、数据库、伪静态和 PHP 配置。

总结

处理 Cloudflare 常见错误代码,关键不是死记代码,而是按链路分层。error 1016 先修 DNS;error code 521 查源站连接和防火墙;cloudflare error 1000 纠正禁止地址或 CNAME 回环;cloudflare 403 分清 Cloudflare 与源站拦截;cloudflare ssl handshake failed 回到源站证书和 TLS;cloudflare error 500 则看 WordPress、PHP 和服务器日志。按这个顺序处理,通常比反复清缓存、盲目停插件更快、更稳。

延伸阅读

Cloudflare Error 1016 怎么解决?DNS Origin Error 排查教程SSL证书握手失败:深入解决 Cloudflare 525 错误Cloudflare 500/502/503 真相:一文理清本质区别常见 WordPress 故障修复

Leave a Reply

您的电子邮箱地址不会被公开。 必填项已用 * 标注