摘要

  • Cloudflare 在 17 时 56 分 57 秒开启故障记录,最初把 Tunnel 标为重大中断。
  • 多个客户报告隧道性能下降或完全不可用,私有资源因此无法访问。
  • 故障在 18 时 28 分被识别,18 时 52 分进入监控,20 时 44 分宣布解决。
  • 后续说明把已知影响限定为部分客户,并明确其他 Cloudflare 服务不受影响。
  • Cloudflare 没有公布根因或客户数量;问题持续的客户被要求重启cloudflared连接器。

状态页看到的是供应商的组件,企业用户看到的是自己的应用。前者从红色变为绿色,只能说明 Cloudflare 不再观察到需要保持故障状态的中央问题;后者还需要验证身份认证、私有域名、路由、连接器与目标应用能否一起工作。

三个状态词不能互相替代

最初公告称多个客户的 Tunnel 性能下降或完全中断,组件先进入重大中断,随后转为部分中断。18 时 28 分的“已识别”表示工程团队已经找到可实施修复的方向;18 时 52 分的“监控中”表示修复已经部署但仍需观察;20 时 44 分的“已解决”表示公共故障记录关闭。

从首条记录到关闭约为两小时四十八分钟。但这不是每个客户的精确停机时间。公开记录没有提供国家、连接器版本、受影响流量比例、私有应用种类或单个客户的恢复时间,也没有给出最终根因。

因此,不能把“多个客户”写成全球所有 Tunnel 用户,也不能因为故障涉及访问路径就推断是路由、软件升级或攻击。未知信息本身就是报道边界。

重启建议把最后一段恢复交还给客户

Cloudflare Tunnel 从客户环境主动向 Cloudflare 建立出站连接,用户再通过这个路径访问没有公开地址的私有资源。这样可以减少直接暴露源站,但连接器进程、供应商控制层和私有路由也共同成为访问链条的一部分。

若 Cloudflare 要求重启,运维团队不能只确认进程存在。它需要检查连接器是否真正连上服务、冗余实例是否位于不同主机和出口、私有路由是否正确发布、身份策略是否放行,以及代表性应用是否能够返回正常结果。

重启还应逐个进行。若所有连接器同时停止,本来用于恢复的操作会制造新的中断。运行手册应记录重启对象、操作时间、连接恢复时间和应用端验证结果。

公告没有解释为什么部分连接器可能需要这一步。重启建议不能证明缓存损坏、状态异常或某个具体缺陷;它只能证明中央修复以后,客户侧仍可能存在残余恢复工作。

同一天四条告警不能拼成一个根因

Cloudflare 的接口还记录了 7 月 28 日西部北美的 Durable 实体错误、伊斯坦布尔网络性能问题和法兰克福 HTTP 530 错误。它们涉及不同产品、地区和时间:Durable 实体记录的是 26 分钟区间,伊斯坦布尔有独立的识别与监控过程,法兰克福说明的是地区性错误时段。

公开材料没有把这些记录与 Tunnel 故障连接起来。同一天出现多条告警可以提示运营压力,但时间接近不是因果证据。若把四件事写成一次全球性 Cloudflare 故障,就会抹掉供应商实际公布的产品和范围边界。

稳妥的结论更窄:Tunnel 发生了自己的私有访问故障,经过自己的修复流程,并留下自己的连接器重启建议;其他告警只是当天背景。

私有访问监控必须站在用户一侧

把 Tunnel 当作传统 VPN 替代方案的企业,需要拥有独立探针。探针应该从至少两个地点执行真实登录,解析私有域名,经过身份策略,最后请求实际应用。只有连接器心跳而没有应用结果,会把部分故障误报为健康。

冗余也要经过故障演练。两个部署在同一台主机、使用同一网络出口、由同一发布流程更新的连接器,可能同时失败。真正的多路径需要分离主机、出口和变更风险,并为最关键资源准备另一条访问办法。

本次公告没有足够数据比较不同架构的表现。它能证明的是,客户不能把“恢复验证”全部外包给 Cloudflare 状态页。

事后报告还应回答什么

有价值的后续说明应披露触发条件、受影响客户或流量比例、为何需要重启,以及检测、隔离或回滚机制会怎样改变。它还应区分中央服务修复时间与客户实际恢复时间。

在这些答案出现前,企业可以先改进自己控制的部分:部署真正独立的连接器,建立端到端探测,设计分阶段重启,并让“应用可访问”而不是“状态页绿色”成为关闭事件的标准。

20 时 44 分关闭的是 Cloudflare 的公共时钟。每个客户的时钟,只有在私有资源重新响应时才真正停止。

来源