本页目录
网络故障恢复手册
适用拓扑 v2.1(N100 旁路由 + CN-IP 防火墙旁路)。本文按严重程度排布 5 类故障场景,每类给出现象、自动恢复机制和手动干预步骤,末尾附回滚方案。告警覆盖见 monitoring.md——Grafana + Bark 的 13 条规则负责在故障发生时推送到 iPhone。
风险评估总表
| # | 风险 | 严重度 | 自动缓解 | 残余风险 |
|---|---|---|---|---|
| 1 | mihomo/AdGuard 进程挂 | 🔴→🟢 | N100 fail-open daemon,30s 自动切直连 | 30s 检测窗口 |
| 2 | N100 停电 | 🔴→🟢 | BIOS 通电自启,全组件自启,~2min 恢复 | 开机期间无代理 |
| 3 | N100 OS 死(kernel panic/磁盘故障) | 🟡 | 无,手动切 DHCP 网关→.1 | 概率极低,但有单点 |
| 4 | li-home-0 WiFi 断 | 🔴→🟢 | wifi-watchdog 分层自愈(重连→射频→驱动重载) | ~25s 断网 |
| 5 | 小米主路由挂 | 🔴 | 无 | PPPoE/NAT/DHCP/Mesh 全系于一身,暂无热备 |
场景 1:N100 mihomo/AdGuard 进程挂
自动行为:fail-open daemon(procd)每 60s 探测 mihomo API :9090,连续 3 次失败→删 table inet nikki+注入 table inet failopen→全屋切直连。mihomo 恢复后自动切回。
手动干预(daemon 也挂了时):
# 手动 fail-open
# 恢复后
table inet bypass_masq无需处理——独立于 nikki/failopen,fail-open 时它的发夹弯 SNAT 只是冗余、不冲突。nikki 重启后 china_ip 自动重填。
场景 2:N100 停电
自动行为:来电→BIOS 通电自启→开机链:S99nikki(TUN+透明代理)→S99nikki-failopen(60s grace)→docker adguardhome(unless-stopped)。约 2 分钟恢复,无需人工介入。
场景 3:N100 OS 死(kernel panic/磁盘故障)
现象:ping 192.168.31.7 不通且长时间不恢复。区别于停电——N100 有通电自启,不通超过 3 分钟说明 OS 崩溃或硬件故障。
手动恢复:
- 浏览器打开
http://192.168.31.1/→登录小米后台 - 常用设置→局域网设置→网关/DNS 从
.7改为.1 - 保存,等客户端续租或重启客户端
N100 恢复后:确认启动完成(2min)→小米后台改回网关/DNS→.7。
场景 4:li-home-0 WiFi 断
自动行为:wifi-watchdog(systemd timer,每 30s ping .1),分层升级恢复:
| 连续失败 | 动作 | 耗时 |
|---|---|---|
| 1–3 | nmcli connection down/up(重连) | ~10s |
| 4–6 | nmcli radio off/on + rfkill(射频层) | ~20s |
| 7+ | modprobe -r mt7925e → modprobe(驱动重载) | ~25s |
恢复后计数器归零。日志:journalctl -u wifi-watchdog.service。
手动恢复(watchdog 不生效时):
&& &&
# 或驱动重载
&&
长期:将 DERP/rathole 等高可用服务迁到有线 N100,解除 WiFi 单点依赖。
场景 5:主路由挂
# 不通 → 检查电源/指示灯
# 通但无外网 → 路由器后台检查 PPPoE 拨号状态
PPPoE/NAT/DHCP/Mesh root 全系于一台小米路由器,无热备。这是全屋网络最大的单点风险——目前唯一的缓解是光猫桥接无双重 NAT,主路由挂了至少不丢光猫配置。
回滚方案
N100 旁路由整体出问题时,退回到直连或旧旁路由:
- 主路由 DHCP 网关/DNS 改回
.1(直连)或.8(li-home-0 旧旁路由) - 如需恢复 li-home-0 旁路由:
sudo systemctl start mihomo - N100 关机:
ssh root@192.168.31.7 poweroff
相关文档
- network-architecture.md — 完整拓扑与 nftables 结构
- rathole-tunnel.md — 隧道方案与故障治理
- monitoring.md — 监控告警(Bark,iPhone 推送)