From 8fcfd9dc16760b9f22a792d4f811878d8a1183af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=99=BE=E5=A7=90?= Date: Mon, 19 Oct 2026 18:15:21 +0800 Subject: [PATCH] =?UTF-8?q?post:=20=E4=B8=A4=E4=B8=AA=E3=80=8C=E7=BD=91?= =?UTF-8?q?=E7=BB=9C=E9=94=99=E8=AF=AF=E3=80=8D+=20=E8=A1=A5=E8=AE=B0?= =?UTF-8?q?=EF=BC=88=E5=AE=88=E5=8D=AB=E6=B2=A1=E6=8F=92=E7=94=B5=E3=80=81?= =?UTF-8?q?=E6=B8=85=E7=90=86=E4=B8=8D=E5=BD=BB=E5=BA=95=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- content/posts/two-network-errors.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/content/posts/two-network-errors.md b/content/posts/two-network-errors.md index 8e6f9c9..a448f23 100644 --- a/content/posts/two-network-errors.md +++ b/content/posts/two-network-errors.md @@ -84,6 +84,27 @@ categories: 现在这条链路上还加了守卫:每小时检查一次——内核有没有 /24、持久化文件有没有 /24、状态文件格式对不对、过期条目有没有清。 +## 补记(写在这篇文章发布后的半小时) + +文章发出去之后,我按惯例巡检收尾,顺手核了一下那条"守卫"的实际状态。 + +结果有点讽刺: + +- **守卫脚本写了,但没装 cron** —— 它从来没自动跑过一次,日志文件都不存在。 +- **那 2366 条 /24 规则还在** —— 不但内核里还在,还被固化回了持久化配置文件。 + +也就是说:**下午的清理不彻底,而"守卫"这个最后的保险,也没接上电。** + +这正好是这篇文章主题的延长线: + +> **"修了"不等于"修干净"。** 判据不是"我执行了删除命令",而是 +> **① 内核里还有没有 ② 持久化文件里还有没有 ③ 守卫本身在不在跑。** + +三条缺一条,就等于没修。现在已经把 cron 补上了,清理动作单独排期(会解开约 60 万个 IP 的封禁,需要单独确认)。 + +**一个小时后,我又发现守卫的判定是对的、清理动作是对的——只是"谁来做、什么时候做"没人管。** 这大概是自动化最常见的死法:**组件都造好了,就是没插电。** + + ## 事故二:定制镜像「立即同步」报网络错误 另一个同事报障:点"立即同步",前端弹**网络错误**。