被 Cloudflare 522 教育了一次:一次完整排查记录(含判断思路)

最近线上一个站点频繁出现 Cloudflare 522,刚开始以为是服务器资源不够,结果一路排查下来发现根本不是这么回事。 这篇记录把整个排查过程、判断逻辑、容易误判的点、以及最终原因梳理一下,给遇到类似问题的朋友一个参考。

一、522 到底是什么? Cloudflare 官方解释:

522 = 连接源站超时( Connection timed out )

本质是:

Cloudflare 节点已经接收到用户请求 Cloudflare 尝试连接你的源站服务器 在规定时间内没有完成 TCP 建立

也就是说: 不是 Cloudflare 问题,是 Cloudflare 到你服务器之间的链路出问题。 重点是:

不是页面慢,是“连不上”

二、常见误区 很多人第一反应是:

服务器挂了? CPU 100%? 内存爆了? Nginx 崩了?

但实际上 522 更多时候和以下有关:

源站防火墙拦截了 Cloudflare IP 源站带宽跑满 TCP backlog 满 丢包严重 线路回程异常 云厂商侧网络抖动

服务器本身未必有问题。

三、第一步:确认服务器是否“真的挂了” 先从最简单的开始。 在服务器上执行: top

看:

CPU 是否打满 load average 是否异常 是否有异常进程

然后: free -m

确认内存没有被打爆。 接着看 Nginx: systemctl status nginx

如果 nginx 正常,CPU 正常,内存正常,说明:

服务器没挂

四、第二步:是否防火墙拦了 Cloudflare Cloudflare 有固定 IP 段。 可以用: iptables -L -n

或者 ufw status

确认没有限制 CF IP 。 有时候 fail2ban 会误封。

五、第三步:是否 TCP 队列满 这一步很多人忽略。 查看: netstat -an | grep SYN_RECV | wc -l

如果大量 SYN_RECV ,说明半连接队列爆了。 再看: sysctl net.core.somaxconn

如果值太小(默认 128 ),在高并发下可能不够。 可以调整: net.core.somaxconn = 65535 net.ipv4.tcp_max_syn_backlog = 65535

六、第四步:是否带宽跑满 执行: iftop

如果带宽已经满载,比如 100M 打满。 Cloudflare 连过来就会超时。 很多人忽略:

100M 带宽在高峰时段其实很容易满。

尤其是:

视频站 下载站 被扫站

七、第五步:用 mtr 看丢包 这是关键。 在本地执行: mtr -rw 你的服务器 IP

看:

是否某一跳开始丢包 是否晚高峰严重 是否回程绕路

有一次排查发现:

回程绕美西

延迟从 20ms 变成 180ms 。 Cloudflare 到源站那一段开始丢包。 服务器本身完全正常。

八、真实案例:问题不在服务器 那次问题最终定位:

CPU 20% 内存正常 nginx 正常 带宽没满 TCP 队列正常

但 mtr 显示: 某骨干节点开始 20% 丢包。 而且:

晚上 8 点之后必出 522

典型线路拥堵。

九、Cloudflare 522 和 524 的区别 很多人混淆。

522:TCP 连不上 524:连上了,但响应超时

524 更像后端慢。 522 更像网络层问题。

十、如何系统判断 522 原因? 我后来总结一个判断流程: 1️⃣ 本机资源正常? 2️⃣ nginx 是否监听? 3️⃣ 防火墙是否拦 CF ? 4️⃣ TCP 队列是否满? 5️⃣ 带宽是否满? 6️⃣ mtr 是否丢包? 7️⃣ 是否固定时间段出现? 只要按顺序走,不会乱。

十一、一个关键点:线路稳定性比延迟更重要 很多人只看 ping 延迟。 其实:

稳定性 > 低延迟

20ms 但偶尔丢包,比 40ms 稳定更糟。 尤其是被 Cloudflare 代理后,回程异常更容易触发 522 。

十二、几个实用优化建议 ① 开启 keepalive keepalive_timeout 65;

② 调整 worker_connections worker_connections 65535;

③ 调整系统文件数 ulimit -n 100000

④ 合理选择线路 这个真的比堆配置重要。

十三、结论 522 不等于服务器不行。 大多数时候是:

网络层问题 带宽瓶颈 回程异常 丢包

真正需要学会的是:

用数据判断,而不是凭感觉。

十四、我的教训 那次我第一反应是:

加配置

结果完全没用。 真正解决问题的是:

换了一条更稳定的线路

服务器规格没变。 问题消失。

如果有人最近也在被 522 折磨,可以按上面的顺序排查。 别一上来就重装系统,也别盲目升级配置。 大概率不是你想的那个问题。