NetGuard 中文文档 下载 App

NetGuard 被系统意外停止:后台管理与 Watchdog 解决方案

两种"停止"需要区分

NetGuard 停止运行有两种完全不同的情况,解决方法不同:

情况表现原因
被系统杀死(不是崩溃)防火墙开关保持开启状态,但拦截规则不生效Android 电池优化 / Doze / 国产 ROM 后台策略
应用崩溃(crash)NetGuard 突然退出,Android 弹出"NetGuard 已停止"通知Android VPN 实现 bug 或内核 bug

情况一:被系统杀死

症状

原因

Android 6.0+ 的 Doze 和 App Standby,加上国产 ROM 的激进后台策略,会强制停止看似空闲的后台应用。虽然 NetGuard 是前台服务,但国产 ROM 经常绕过前台服务保护直接杀掉。

解决方案

这和「电池优化与 Doze」页面的内容完全相同——在 Android 系统设置里把 NetGuard 的电池优化、自启动、关联启动、后台活动全部设为允许。国产 ROM 每款都有自己的后台管理页面,需要逐一找到并配置。

验证

做完后台设置后,锁屏静置 1~2 小时,再解锁打开被禁止的应用——如果它们仍然无法联网,说明后台策略已生效。

情况二:应用崩溃(crash)

症状

原因

开发者在 FAQ 里坦诚:NetGuard 自身很少崩溃("NetGuard rarely crashes"),绝大多数崩溃来自 Android 系统层面的 bug:

  1. Android VPN 服务实现 bug(三星、某些 LineageOS 构建等)
  2. Android Linux 内核 bug(某些内核版本的网络栈有问题)
  3. VpnService.protect() 函数在某些 Android 版本上有 bug(会导致原生层崩溃)

提供的解决办法

  1. 重启设备——临时恢复,等待下次崩溃
  2. 导出 NetGuard 设置 → 清除 NetGuard 数据 → 导入设置 → 重新启用防火墙
  3. 向 Android 系统 / ROM 厂商报告 bug——NetGuard 开发者无法修复底层系统 bug

需要开发者协助时

NetGuard 开发者可以帮你分析崩溃日志,但需要:

  1. logcat 日志:从 PC 用 adb 抓取的完整 logcat 输出
  2. 崩溃时间点:崩溃发生的精确时间
  3. 完整步骤:崩溃前你做了什么操作

抓取 logcat 的方法(需要 PC + adb):

adb logcat -d > netguard-crash.txt

Watchdog 机制

NetGuard 自带一个 Watchdog(看门狗)功能,每隔 10~15 分钟(可配置)检查自己的运行状态。如果发现防火墙被停止了,Watchdog 会自动重启。

主菜单 → 设置 → 高级选项 → ✅ Watchdog。

Watchdog 有以下限制:

开机自启失败

如果设备重启后 NetGuard 不会自动恢复防火墙:

  1. 确认防火墙开关在重启前是开启状态——NetGuard 只有在关闭状态下被重启才会自动恢复
  2. 确认 NetGuard 安装在内部存储——SD 卡安装的应用不会收到 RECEIVE_BOOT_COMPLETED 广播
  3. 确认国产 ROM 允许 NetGuard 自启动——在自启动管理里找到 NetGuard 并开启

快速排查清单

检查项状态操作
NetGuard 电池优化❌ 关闭系统设置里设为不优化
国产 ROM 自启动✅ 开启MIUI / OPPO / 华为等各自的自启动管理
国产 ROM 关联启动✅ 开启某些 ROM 需要额外设置
国产 ROM 后台活动✅ 允许后台策略 / 省电策略设为无限制
Watchdog✅ 开启设置 → 高级选项
Always-On VPN✅ 主开关开,子选项❌关VPN 设置里确认
防火墙开关✅ 保持开启重启前确认
安装位置内部存储不安装到 SD 卡