1996 年 8 月 7 日。AOL——当时美国最大的互联网服务提供商,拥有约 600 万拨号上网用户——发生了一次持续 19 小时的全国性服务中断。用户的调制解调器拨号进入、听到一串熟悉的握手音、然后——什么都没有。没有网页、没有邮件、没有 AOL Instant Messenger。600 万人的互联网,停了。
Ngrok 团队在 2026 年写了一篇回顾文章,把这次三十年前的事故从历史档案里拉了出来,逐层拆解。Lobsters 上获得了 37 分。笔者读完的第一反应是:如果把这个故障报告里的日期从 1996 改成 2026,去掉调制解调器和 AOL 的品牌名,它和一个典型的现代云服务 Post-Mortem 的相似度超过 80%。
故障链:从一个配置文件开始
AOL 当时的网络架构是将全国用户通过拨号接入分布在各城市的 POP(接入点),再由 POP 将流量汇聚到数据中心。中间的关键组件是一组负责用户认证和路由的服务器。
出事的是一台认证服务器上的配置文件。运维工程师需要对配置做一个看似无害的修改。按照当时的流程,这类变更需要走审批、测试、分阶段部署。但由于某些原因——Ngrk 的文章没有指明是人还是流程的问题——这个修改在未经过充分测试的情况下被直接部署到了生产环境。
配置文件里有一个拼写错误——或者更准确地说,一个不符合解析器语法的参数值。认证服务器启动时读到了这个错误值,直接拒绝了整个配置文件的加载。认证服务挂了。
这本不应该造成全国性影响。AOL 部署了多台认证服务器,单台故障理论上会被负载均衡自动摘除。但问题出在「一致性」上:变更管理工具——当时的运维自动化还非常原始——将同一个错误的配置文件同步到了所有认证服务器上。全集群同时宕机。
雪崩的第二层:DNS 与重连风暴
如果只是认证服务器挂了,恢复速度取决于运维团队发现并回滚配置的时间。理论上的 RTO(恢复时间目标)应该在 30 分钟以内。
但 AOL 没有迎来 30 分钟的恢复。因为第二个机制启动了:600 万用户的重连风暴。
拨号上网时代的互联网连接不是「长连接」。用户的调制解调器在遇到服务无响应时会自动挂断、重拨、重新认证。600 万人同时重拨意味着什么?意味着 AOL 的拨号接入中继线在几秒内被打满——不是认证服务器的问题了,是物理电话线路被呼叫洪水冲垮。即使用户的重拨不是有意的(大多数调制解调器有自动重拨功能),洪水依然发生了。
而当时处理拨号请求的路由系统在接收到过载信号后,触发了第三层雪崩:DNS 缓存因为认证服务的联动异常而被清空,导致即使有用户成功拨入,也无法解析任何域名。此时整个 AOL 网络进入了一个死循环:用户重拨 → 线路拥堵 → 少数连接成功的用户拿到的是空 DNS → 应用层超时 → 用户挂断重拨。
恢复为什么花了 19 小时
Ngrok 的文章指出,恢复时间如此之长的直接原因是两件事:一是当时的运维团队缺乏「分阶段回滚」的工具和实践——他们没有能力只回滚到最后一个健康版本而不影响其他服务。二是故障诊断本身在重连风暴的环境下极其困难——所有的监控面板都是一片红,区分真正的根因和症状花掉了大部分时间。
但更深层的解释比诊断工具更朴素:1996 年的 AOL 运维团队没有「分布式系统故障预案」。不是他们不够优秀——是当时整个行业都不具备这个意识。19 小时的宕机在当时不是孤例,AT&T 的网络在 1990 年也经历了一次类似的长宕机。今天我们称为「弹性工程」的整门学科,在那时几乎不存在。
换成 2026 年,同一条故障链会怎么走
你可以做一个投射实验:把同样的故障链放在一个现代云服务上。
配置文件错误仍然会发生——人是故障概率分布里最稳定的一环。但现代运维有灰度发布:先部署到一台金丝雀服务器,观察 5 分钟,指标异常则自动回滚。这一步就能在用户感知触及之前挡住。
即使灰度失效,现代负载均衡的故障检测机制(健康检查、熔断器、指数退避重试)会阻止重连风暴——客户端不会在服务端返回 503 时立刻猛击。而没有重连风暴,DNS 缓存就不会被清空,雪崩就会停止在第二层。
更何况,现代基础设施(Kubernetes、Terraform、ArgoCD)可以「一键回滚」到上一个 Git commit,精确到具体的配置文件和代码变更。这 19 小时的恢复时间,在 2026 年可能会收敛到 19 分钟。
Lobsters 的补充:自动化并没有消灭这类故障
Lobsters 的讨论虽然只有 6 条评论,但质量很高。一条评论指出:2026 年的云服务宕机分析报告里,根因占比最高的品类之一仍然是配置变更。灰度发布、自动回滚、IaC——我们做的所有工程努力,都是降低变更在故障边界触发连锁反应的概率。但概率降到零不是工程问题,是哲学问题。
另一条评论把矛头对准了一个更隐蔽的问题:「自动化让我们对系统内部状态的感知力变弱了。1996 年的运维工程师亲眼看着那台服务器死掉,他知道问题在哪里。今天的 SRE 看到的是 Grafana 上一条红线,第一个动作是滚回配置,第二个动作是看 diffs。感知的深度不一定同步提高了。」
这条评论有点武断——但点到了一个事实。工具的进步让我们更快地修复问题,但也让我们更少地理解为什么会出问题。这可能是 AOL 1996 宕机和 2026 年宕机之间,那条真正的连续性线索。
本文基于 ngrok 博客的技术分析和 Lobsters 社区讨论整理。AOL 1996 年宕机的详细技术细节可参考 ngrok 原文及当时的行业媒体报道。