NetGuard 中文文档 下载 App

VPN 防火墙工作原理:NetGuard 如何在无 Root 下拦截流量

为什么无 Root 防火墙必须用 VPN

Android 系统不开放 iptables 接口给普通应用,唯一能让应用拦截并路由所有网络流量的官方渠道就是 VpnService。Google 在 Android 5.0+ 引入这个接口,本意是让 VPN 客户端建立加密隧道;NetGuard 把它用作流量拦截管道——不加密、不隧道,只做本地路由和过滤。

拦截流程

  1. 用户在 NetGuard 内点击防火墙开关
  2. Android 弹出 VPN 授权对话框,用户确认后系统建立一个本地 VPN 隧道
  3. 系统将所有应用的出站流量(TCP / UDP / ICMP)重定向到这个本地隧道
  4. NetGuard 在隧道出口根据规则判断:允许 → 转发到真实目标;禁止 → 丢弃(sinkhole)
  5. 允许的流量到达 NetGuard 后直接被转发出去,不经过任何外部服务器
应用 → 本地 VPN 隧道 → NetGuard 规则引擎 → 互联网(允许)/ 丢弃(禁止)

两种模式的差异

NetGuard 根据是否启用「流量过滤」(Filter traffic)设置,内部有两种工作模式:

重要限制

Android 的 VPN 机制有几个固有限制,NetGuard 无法绕开:

不是真正的 VPN

要强调一点:NetGuard 不加密流量,也不隐藏你的 IP 地址。它和真正的 VPN(如 WireGuard、OpenVPN)的唯一共同点是都用了 VpnService 接口。它的角色是防火墙,不是代理或隐私隧道。

如果需要同时使用真实 VPN,NetGuard 提供了 SOCKS5 代理出口(见 SOCKS5 代理)作为组合方案。