在使用 Cloudflare 时,521 错误(Web Server Is Down)是一个常见但易被误判的问题。很多站点会出现这样的情况:DNS 解析正常、服务器看似在线,切换为灰云访问一切正常,但一旦启用橙云代理就立刻报 521。实际上,这并非 Cloudflare 本身故障,而是源站在代理模式下无法与 Cloudflare 正常建立连接。理解橙云与灰云的访问路径差异,是定位和解决 521 错误的关键。

一、Cloudflare 521 错误的真实含义
1.1 521 错误到底表示什么
Cloudflare 对 521 错误 的定义是:
Cloudflare 可以接收到访客请求,但在尝试与源站服务器建立 TCP 连接时失败。
这通常意味着:
- Cloudflare → 源站 的连接被拒绝,或无法建立
- 问题发生在 网络 / 防火墙 / Web 服务层
- DNS 解析本身是正常的
1.2 521 并不等同于“服务器宕机”
以下情况都会触发 521:
| 场景 | 是否可能 |
|---|---|
| 服务器真正宕机 | 是 |
| 防火墙阻止 Cloudflare IP | 是 |
| Web 服务未监听端口 | 是 |
| 只允许直连 IP | 是 |
| WAF / 安全插件拦截 | 是 |
关键不在于服务器是否在线,而在于是否允许 Cloudflare 连接。
二、橙云 / 灰云的本质区别
2.1 橙云与灰云是什么
在 Cloudflare DNS 中,每条记录都有一个云朵状态:

| 状态 | 显示 | 实际含义 |
|---|---|---|
| 橙云 | Proxied | 启用 Cloudflare 代理 |
| 灰云 | DNS only | 仅 DNS 解析,直连源站 |
这是一个是否经过 Cloudflare 中转的开关。
2.2 橙云状态下的访问路径
访问路径:访客 → Cloudflare 节点 → 源站服务器

此时:
- 源站看到的访问 IP 是 Cloudflare 节点
- 防火墙必须允许 Cloudflare IP 段
- Web 服务必须正常监听端口
2.3 灰云状态下的访问路径
访问路径:访客 → 源站服务器(直连)

此时:
- Cloudflare 不参与转发
- 不会出现 Cloudflare 错误页面
- 也不会出现 521 错误
三、为什么 521 只会在橙云状态下出现
原因非常明确:521 的前提是 Cloudflare 尝试连接源站。
- 灰云:Cloudflare 不连接源站 → 不可能 521
- 橙云:Cloudflare 必须连接源站 → 失败就 521
因此在排查时只要出现“灰云访问正常、切换橙云立即 521”的情况,基本可以直接判断问题出在源站对代理访问的配置上,而不是 DNS 或 Cloudflare 服务本身。

四、橙云场景下 521 的高频原因
4.1 防火墙未放行 Cloudflare IP(最常见)
表现
- 灰云访问正常
- 橙云立即 521
- 服务器日志无请求或只有拒绝记录

正确做法
- 放行 Cloudflare 官方 IP 段
- 放行端口至少包括:
80(HTTP)443(HTTPS)
Cloudflare IP 列表需定期同步,不可手写固定 IP。
4.2 Web 服务未监听公网端口
常见错误包括:
- 仅监听
127.0.0.1 - 未监听
80 / 443 - Web 服务未启动或异常退出
推荐做法(通用、安全):
- 监听
0.0.0.0:80 - 监听
0.0.0.0:443

4.3 错误理解“隐藏源站 IP”
以下做法非常容易导致 521:
- 禁止所有非本地 IP
- 屏蔽海外 IP
- 仅允许自己 IP 访问
Cloudflare 节点大多为海外 IP,会被一并拦截。
4.4 安全插件 / WAF 误拦截
包括但不限于:
- 宝塔防火墙
- 系统级防护规则
- 第三方安全插件
凡是基于 IP、ASN、国家的规则,都需确认 Cloudflare 是否被误伤。
五、利用橙云 / 灰云定位 521 的实操流程
5.1 第一步:切换为灰云验证源站
- 登录 Cloudflare 控制台
- DNS → 找到对应记录
- 切换为 灰云(DNS only)
- 等待 1–2 分钟后访问网站

- 可访问 → 源站正常
- 不可访问 → 源站自身问题
5.2 第二步:切回橙云
- 切回 橙云(Proxied)
- 刷新页面
如果立刻出现 521,可确认问题发生在 Cloudflare → 源站。
5.3 第三步:按顺序排查
推荐顺序:
- 防火墙是否放行 Cloudflare IP + 80/443
- Web 服务监听状态
- 安全插件 / WAF
- 系统与 Web 日志
六、橙云的正确使用建议
6.1 防火墙层面
- 不直接屏蔽海外 IP
- 不只允许个人 IP
- 应:
- 放行 Cloudflare IP
- 把安全策略交给 Cloudflare
6.2 Web 服务层面
- 正常监听公网端口
- 不基于来源 IP 做粗暴限制
- 使用
CF-Connecting-IP获取真实访客 IP

6.3 运维建议
- 灰云仅用于排查
- 生产环境长期使用橙云
- 每次安全策略变更后,必须测试橙云访问
把症状、错误提示和最近改动发过来。
我们先判断风险、可能原因和安全下一步,再决定是否需要登录后台或服务器。