首次启动与 VPN 授权:NetGuard 必须的系统权限
为什么必须授权 VPN
NetGuard 的防火墙功能完全依赖 Android 的 VpnService 接口。当你在 NetGuard 内打开防火墙开关时,应用需要向 Android 系统申请建立本地 VPN 隧道的权限——这是 Android 的安全模型设计:任何应用要拦截网络流量,必须经过用户显式授权。
第一次启动流程
- 打开 NetGuard 应用
- 看到主界面,顶部防火墙开关处于关闭状态(灰色)
- 点击顶部防火墙开关 → 系统弹出 VPN 授权对话框
- 在对话框中勾选「总是允许此连接」(如果有此选项)
- 点击「确定」
- 状态栏出现一个钥匙图标和 NetGuard 图标,表示 VPN 已建立
- 防火墙开关变为开启状态,图标点亮

无法勾选「总是允许」怎么办
有些 Android ROM(特别是三星、华为等国产定制系统)会让「总是允许」选项变灰或直接隐藏,这意味着每次启动 NetGuard 都要重新手动授权。
解决方案:
方法一:Always-On VPN 设置
- 进入 Android 系统「设置 → 网络和互联网 → VPN」
- 找到 NetGuard,点击右侧齿轮图标
- 开启「始终保持 VPN 开启」(Always-On VPN)
- 重要:Android 8.0 Oreo 及以上,不要开启「阻断未使用 VPN 的连接」(Block connections without VPN)——这个选项会同时阻断 DNS 解析,导致所有应用无法联网(详见 常见问题:Always-On VPN 阻断流量)
方法二:授予 VpnDialogs 组件权限部分旧版 Android(尤其是三星)会在启动初期强制要求手动再次确认 VPN 连接,这是 Android VPN 实现的 bug,NetGuard 无法完全规避。可尝试:
- 重启设备
- 在 Android 设置中找到 NetGuard,清除所有数据后重新启动授权流程
- 如果设备 root,可执行:
adb shell pm enable --user 0 com.android.vpndialogs(如果此组件被禁用了的话)
其他启动失败场景
点击确定没反应 / 无法点击 OK
可能有一个半透明覆盖层挡住了 VPN 对话框——常见于「护眼模式」「亮度调节悬浮窗」(如 Twilight、Lux Brightness、Night Mode 等应用)。临时关闭这些应用后再试。
VPN 服务被系统自动停止
某些 Android 版本(如 LineageOS 部分构建、GrapheneOS)存在 VPN 实现 bug,会导致 VPN 启动后立刻被系统强制停止或重启。解决办法:
- GrapheneOS:进入「设置 → 网络和互联网 → VPN → NetGuard 齿轮」,关闭「阻断未使用 VPN 的连接」
- LineageOS:在 NetGuard「设置 → 高级选项」中启用「流量过滤」(Filter traffic),可能绕过 bug
授权安全
用户可能担心把 VPN 权限交给 NetGuard 会不会导致上网数据被第三方窃取。几点事实:
- NetGuard 建立的是本地 VPN 隧道,流量不离开设备
- 即使启用了流量过滤,NetGuard 也只做规则判断和转发,不加密、不复制、不上传到任何服务器
- NetGuard 是开源的(GPLv3),任何人都可以审查源码验证行为
- 官方明确声明「No calling home, No tracking, No analytics」
防火墙已启用但部分应用仍显示无权限
有些应用(尤其是系统应用)不声明 INTERNET 权限,但这不影响 NetGuard 对它们进行管控。NetGuard 默认显示设备上所有应用,包括不声明 INTERNET 权限的——因为 Android 随时可能通过应用更新给它们加上 INTERNET 权限,在 NetGuard 里提前配置好就不用临时应对了。