Android 上的 PCAPdroid、NetGuard、RethinkDNS 和 TrackerControl 可以借 VpnService 在本机建立虚拟网络接口,从而记录或过滤其他 App 的连接。本篇先观察,再做一条小规则,最后完全撤销。它不会安装解密证书,也不拦截银行、聊天或他人的流量。
你会完成什么#
- 选择一个无敏感数据的用户 App,记录固定动作的连接基线。
- 把包名、时间、域名/SNI、IP 和用户动作关联起来。
- 用一个本地 VPN 防火墙阻断测试 App 或一个非核心目标。
- 重做同一动作比较差异,并确认撤销后系统网络恢复。
先看结论#
| 你的目标 | 建议工具 | 原因 |
|---|---|---|
| 看 App 连接到哪里、导出 PCAP | PCAPdroid | 观察和证据导出能力清楚,免 Root 即可工作 |
| 简单按 App 禁止 Wi-Fi/移动网络 | NetGuard | 规则模型直接,适合第一次防火墙实验 |
| DNS、连接日志与 WireGuard/代理合一 | RethinkDNS | 功能丰富,但配置面更大 |
| 聚焦已知追踪器分类 | TrackerControl | 将连接按追踪服务解释,适合隐私盘点 |
| 已经必须使用公司或个人 VPN | 暂不启用第二个 VpnService | Android 同一用户/资料同时只能有一个活动 VPN |
心智模型#
测试 App
↓ IP 数据包
Android VpnService / 本地 TUN
├─ 记录:包名、DNS/SNI、IP、时间
├─ 允许:转发到网络
└─ 阻断:丢弃并写入日志
↓
对照功能 → 删除规则 → 停止 VPN → 验证恢复
“VPN”图标不一定代表流量被送到远程公司。上述工具可以在设备本地处理数据。但它们仍拥有观察流量的敏感位置,且会占用系统唯一的 VPN 插槽;来源、权限和日志保存方式都必须审查。
工具清单#
| 工具 | 角色 | 什么时候用 | 来源与注意 |
|---|---|---|---|
| PCAPdroid | 记录连接元数据、规则与 PCAP | 建立基线和导出证据 | 免 Root 模式用本地 VPN;Root 模式能力不同 |
| NetGuard | 按 App/地址允许或拒绝网络 | 第一次做简单阻断 | 不能与另一 VPN App 链式共存 |
| RethinkDNS | DNS、应用防火墙、代理和连接追踪 | 需要统一管理多类网络策略 | 选项多,先导出配置并只改一项 |
| TrackerControl | 识别并控制追踪连接 | 关注第三方追踪器时 | 分类可能误判,阻断后要测试功能 |
| Android VPN 设置 | 查看活动 VPN、Always-on 和阻断无 VPN连接 | 开始前和回滚后 | 企业/工作资料策略可能禁止修改 |
| Wireshark | 在电脑离线阅读导出的 PCAP | 需要更深分析时 | 本篇不做 TLS 中间人解密 |
项目全景:隐私、防火墙与权限的 16 个项目,一个不漏#
以“先看流量、再选控制层、最后验证隐私收益”为主线,比较 hosts、DNS、本地 VPN、root 代理、ADB 加固与隔离方案;Linux 和投资同名误收项目放入边界核查,不伪装成 Android 工具。
| 技术路线 | 项目数 | 处理等级 | 在主题任务中的位置 |
|---|---|---|---|
| hosts 与 DNS 黑洞 | 4 | 候选路线 | 从 systemless hosts、Pi-hole/Unbound 和设备端 DNS 过滤讲起,说明命中域名、误拦截回退、缓存刷新以及 YouTube 广告域名难以稳定阻断的现实边界。 |
| 本地 VPN 防火墙与抓包 | 4 | 候选路线 | 比较 Athena、PCAPdroid、Bharat Sentinel、FireWall-Blocks 等按应用阻断路线,先采集基线再写规则,并解释 Android 同时只能有一个 VPN 服务的冲突。 |
| Root 代理转发与无 Root VPN 代理 | 2 | 候选路线 | 用 RProxid/VProxid 对照 root 透明转发与 VPN 用户态转发,围绕路由范围、DNS 泄漏、断连保护和恢复默认网络讲选择。 |
| 白名单、阻断清单与规则来源 | 1 | 候选路线 | 把 MicrosoftDomains 等域名资料当作规则输入而非可执行工具,教新手检查更新日期、粒度和所有者,再以小批量规则验证,避免整域误杀。 |
| ADB 隐私加固、沙箱与本地密钥 | 3 | 候选路线 | 在网络规则之外介绍 ADB 权限收敛、应用隔离与本地优先保险库;逐条备份原设置,避免把“身份伪装”误写成绕过风控教程。 |
| 跨平台与同名误收项目 | 2 | 边界复核 | 逐项注明 Linux 加密根分区、Root Ventures 投资资料等为何不属于 Android 隐私防火墙;保留链接与一句定位,但不给安装步骤,并建议迁类。 |
1. hosts 与 DNS 黑洞 · 4#
从 systemless hosts、Pi-hole/Unbound 和设备端 DNS 过滤讲起,说明命中域名、误拦截回退、缓存刷新以及 YouTube 广告域名难以稳定阻断的现实边界。
本组共 4 项:4 个源项目、0 个 Fork,其中 0 项已归档。新手应先从“未归档的源项目”核对 README 和 Release,再用 Fork 追溯设备适配或历史差异;分组本身不等于推荐安装。
| 项目 | 上游定位与识别信号 | 状态与采用前检查 |
|---|---|---|
| pass-with-high-score/blockads-android | 主题用途:将 pass-with-high-score/blockads-android 纳入「hosts 与 DNS 黑洞」候选路线,根据 adblocker · android · block-ads · Kotlin 核对功能、平台与版本适配。 上游自述(保留原文):Block ads system-wide on Android using local VPN-based DNS filtering. No root needed. No data collection. | 未归档源项目 · ★ 1582 · GPL-3.0 · 2026-07-04。活跃候选:先核对 README、最新 Release、目标版本与已知问题。 |
| DesktopECHO/Pi-hole-for-Android | 主题用途:将 DesktopECHO/Pi-hole-for-Android 纳入「hosts 与 DNS 黑洞」候选路线,根据 adb · adblocker · android · Shell 核对功能、平台与版本适配。 上游自述(保留原文):Pi-hole/Unbound Raspbian APK Installer for Android 5.0+ devices (requires root) | 未归档源项目 · ★ 638 · 协议未声明 · 2025-12-26。活跃候选:先核对 README、最新 Release、目标版本与已知问题。 |
| origamiofficial/youtube-updater-for-pi-hole | 主题用途:将 origamiofficial/youtube-updater-for-pi-hole 纳入「hosts 与 DNS 黑洞」候选路线,根据 pi-hole · pi-hole-blocklist · pi-hole-blocklists · Shell 核对功能、平台与版本适配。 上游自述(保留原文):Quick and dirty script that may help with YouTube ads. Run this as root in your Pi-hole and cron it. This is not ideal and not as good as running a proper ad blocker in a browser, but for things like AppleTV it seems to work well enough. | 未归档源项目 · ★ 36 · 协议未声明 · 2023-03-12。活跃候选:先核对 README、最新 Release、目标版本与已知问题。 |
| akshayalix/systemless-hosts | 主题用途:将 akshayalix/systemless-hosts 纳入「hosts 与 DNS 黑洞」候选路线,根据 adblocker · android · hostsfile · Shell 核对功能、平台与版本适配。 上游自述(保留原文):Ad Blocker for android with hosts | 未归档源项目 · ★ 4 · MIT · 2023-05-22。活跃候选:先核对 README、最新 Release、目标版本与已知问题。 |
2. 本地 VPN 防火墙与抓包 · 4#
比较 Athena、PCAPdroid、Bharat Sentinel、FireWall-Blocks 等按应用阻断路线,先采集基线再写规则,并解释 Android 同时只能有一个 VPN 服务的冲突。
本组共 4 项:4 个源项目、0 个 Fork,其中 0 项已归档。新手应先从“未归档的源项目”核对 README 和 Release,再用 Fork 追溯设备适配或历史差异;分组本身不等于推荐安装。
| 项目 | 上游定位与识别信号 | 状态与采用前检查 |
|---|---|---|
| emanuele-f/PCAPdroid | 主题用途:将 emanuele-f/PCAPdroid 纳入「本地 VPN 防火墙与抓包」候选路线,根据 android · capture-traffic · decryption · Java 核对功能、平台与版本适配。 上游自述(保留原文):No-root network monitor, firewall and PCAP dumper for Android | 未归档源项目 · ★ 4257 · GPL-3.0 · 2026-07-17。活跃候选:先核对 README、最新 Release、目标版本与已知问题。 |
| Kin69/Athena | 主题用途:将 Kin69/Athena 纳入「本地 VPN 防火墙与抓包」候选路线,根据 android · dns · dynamic-colo · Kotlin 核对功能、平台与版本适配。 上游自述(保留原文):Athena is a Material You (Material 3) firewall and ad blocker that works seamlessly on both rooted and non-rooted devices. | 未归档源项目 · ★ 664 · GPL-3.0 · 2026-01-26。活跃候选:先核对 README、最新 Release、目标版本与已知问题。 |
| shynoiddev/FireWall-Blocks | 主题用途:将 shynoiddev/FireWall-Blocks 纳入「本地 VPN 防火墙与抓包」候选路线,根据 adblocking · android · android-firewall · Kotlin 核对功能、平台与版本适配。 上游自述(保留原文):Android firewall app using Shizuku and VPN modes. and no root required. This app can block internet access of any other apps. | 未归档源项目 · ★ 196 · NOASSERTION · 2026-07-09。活跃候选:先核对 README、最新 Release、目标版本与已知问题。 |
| shreyaskapale/Bharat_Sentinel | 主题用途:将 shreyaskapale/Bharat_Sentinel 纳入「本地 VPN 防火墙与抓包」候选路线,根据 android · firewall · security · Dart 核对功能、平台与版本适配。 上游自述(保留原文):Sentinel is non-root firewall and antivirus for Android. | 未归档源项目 · ★ 5 · BSD-3-Clause · 2021-08-04。活跃候选:先核对 README、最新 Release、目标版本与已知问题。 |
3. Root 代理转发与无 Root VPN 代理 · 2#
用 RProxid/VProxid 对照 root 透明转发与 VPN 用户态转发,围绕路由范围、DNS 泄漏、断连保护和恢复默认网络讲选择。
本组共 2 项:2 个源项目、0 个 Fork,其中 0 项已归档。新手应先从“未归档的源项目”核对 README 和 Release,再用 Fork 追溯设备适配或历史差异;分组本身不等于推荐安装。
| 项目 | 上游定位与识别信号 | 状态与采用前检查 |
|---|---|---|
| ProxidBean/VProxid | 主题用途:将 ProxidBean/VProxid 纳入「Root 代理转发与无 Root VPN 代理」候选路线,根据 android · proxifier · vpn 核对功能、平台与版本适配。 上游自述(保留原文):Proxifier alternative tool on Android - non root version | 未归档源项目 · ★ 88 · 协议未声明 · 2024-06-22。边界命中:先读 README,确认它确实属于当前任务,再决定是否使用。 |
| ProxidBean/RProxid | 主题用途:将 ProxidBean/RProxid 纳入「Root 代理转发与无 Root VPN 代理」候选路线,根据 android · proxifier · root 核对功能、平台与版本适配。 上游自述(保留原文):Proxifier alternative tool on Android - root version | 未归档源项目 · ★ 64 · 协议未声明 · 2024-06-21。边界命中:先读 README,确认它确实属于当前任务,再决定是否使用。 |
4. 白名单、阻断清单与规则来源 · 1#
把 MicrosoftDomains 等域名资料当作规则输入而非可执行工具,教新手检查更新日期、粒度和所有者,再以小批量规则验证,避免整域误杀。
本组共 1 项:1 个源项目、0 个 Fork,其中 0 项已归档。新手应先从“未归档的源项目”核对 README 和 Release,再用 Fork 追溯设备适配或历史差异;分组本身不等于推荐安装。
| 项目 | 上游定位与识别信号 | 状态与采用前检查 |
|---|---|---|
| HotCakeX/MicrosoftDomains | 主题用途:将 HotCakeX/MicrosoftDomains 纳入「白名单、阻断清单与规则来源」候选路线,根据 dns · domains · domainwhiltelisting · PowerShell 核对功能、平台与版本适配。 上游自述(保留原文):This repository lists all active Microsoft domains / no URLs and no sub-domains / for the purpose of Whitelisting in various systems and apps / This is for my personal use but then decided to publish it on GitHub for others to use as well | 未归档源项目 · ★ 53 · MIT · 2026-04-26。边界命中:先读 README,确认它确实属于当前任务,再决定是否使用。 |
5. ADB 隐私加固、沙箱与本地密钥 · 3#
在网络规则之外介绍 ADB 权限收敛、应用隔离与本地优先保险库;逐条备份原设置,避免把“身份伪装”误写成绕过风控教程。
本组共 3 项:3 个源项目、0 个 Fork,其中 0 项已归档。新手应先从“未归档的源项目”核对 README 和 Release,再用 Fork 追溯设备适配或历史差异;分组本身不等于推荐安装。
| 项目 | 上游定位与识别信号 | 状态与采用前检查 |
|---|---|---|
| TanvirHossain2/NEXTVM | 主题用途:将 TanvirHossain2/NEXTVM 纳入「ADB 隐私加固、沙箱与本地密钥」候选路线,根据 android · anti-detection · app-isolation · Kotlin 核对功能、平台与版本适配。 上游自述(保留原文):Next-generation Android virtual environment engine. Run any app in an isolated sandbox — no root required. Multi-instance, identity spoofing, anti-detection, native hooks. | 未归档源项目 · ★ 20 · Apache-2.0 · 2026-03-10。活跃候选:先核对 README、最新 Release、目标版本与已知问题。 |
| OutrageousStorm/android-privacy-hardener | 主题用途:将 OutrageousStorm/android-privacy-hardener 纳入「ADB 隐私加固、沙箱与本地密钥」候选路线,根据 adb · android · android-tools · Python 核对功能、平台与版本适配。 上游自述(保留原文):🔒 Harden Android privacy in 5 minutes via ADB. Revokes tracking permissions, disables telemetry, applies hardened settings. No root required. | 未归档源项目 · ★ 5 · 协议未声明 · 2026-05-20。活跃候选:先核对 README、最新 Release、目标版本与已知问题。 |
| regaan/LockRoot | 主题用途:将 regaan/LockRoot 纳入「ADB 隐私加固、沙箱与本地密钥」候选路线,根据 android · cybersecurity · encryption · Swift 核对功能、平台与版本适配。 上游自述(保留原文):Local-first password manager focused on privacy, secure vault storage, and premium offline-first security experience. | 未归档源项目 · ★ 5 · AGPL-3.0 · 2026-05-22。活跃候选:先核对 README、最新 Release、目标版本与已知问题。 |
6. 跨平台与同名误收项目 · 2#
逐项注明 Linux 加密根分区、Root Ventures 投资资料等为何不属于 Android 隐私防火墙;保留链接与一句定位,但不给安装步骤,并建议迁类。
本组共 2 项:2 个源项目、0 个 Fork,其中 0 项已归档。它们的平台、用途或分类存在边界,只作逐项核验,不当作默认安装候选。
| 项目 | 上游定位与识别信号 | 状态与采用前检查 |
|---|---|---|
| rootvc/investment-memos | 主题用途:将 rootvc/investment-memos 作为「跨平台与同名误收项目」边界条目,通过 仓库名、README 与发布记录 核对它实际是否属于本教程。 上游自述(保留原文):Investment memos for Root Ventures deals | 未归档源项目 · ★ 50 · 协议未声明 · 2023-03-15。边界条目:先核对实际平台、用途和分类理由,不作为默认安装源。 |
| phantom-node/cryptreboot | 主题用途:将 phantom-node/cryptreboot 作为「跨平台与同名误收项目」边界条目,通过 initramfs · kexec · luks · Ruby 核对它实际是否属于本教程。 上游自述(保留原文):Convenient reboot for Linux systems with encrypted root partition. | 未归档源项目 · ★ 36 · MIT · 2026-03-04。边界条目:先核对实际平台、用途和分类理由,不作为默认安装源。 |
开始前#
选一个你自己安装、无需登录、即使暂时断网也不会造成损失的测试 App,例如开源天气客户端的空白测试配置。记录 App 包名、版本、当前 VPN、Private DNS、Wi-Fi/移动网络状态。关闭其他非必要 VPN;若公司 VPN、家长控制或工作资料强制 VPN 不可停,本实验应改用备用设备。
规定一个可重复动作,例如冷启动后停留首页 60 秒。不要在捕获期间打开邮件、银行、聊天或密码管理器。PCAP 和连接日志也可能包含敏感域名,保存前要确认位置。
操作步骤#
1. 记录网络与 App 基线#
在系统 VPN 设置确认没有未知活动 VPN,截图或文字记录当前状态。记下测试 App 包名和版本。关闭测试 App,等待后台进程停止;保持其他应用不操作,以减少噪声。
在 PCAPdroid 中选择本地捕获模式和测试 App 过滤器。第一次不启用阻断、TLS 解密、远程接收或第三方黑名单。
2. 捕获一次固定动作#
开始捕获,立即执行预定动作,并在 60 秒后停止。按包名查看连接,记录 DNS 名称或 SNI、目标 IP/ASN、首次时间、连接次数,以及当时 UI 行为。系统服务代发或 CDN 共享会造成归属不确定,保留“未知”。
导出一份基线摘要;只有需要在电脑离线分析时才导出 PCAP,并将其视为敏感数据。
3. 选择最小阻断目标#
优先选择“整个测试 App 暂时禁网”,因为它容易理解和回滚。如果工具和证据能稳定识别一个明显非核心的测试域名,也可以只阻断该目标,但不要以域名里含 ads/metrics 就断言恶意。
在 NetGuard、RethinkDNS 或 PCAPdroid 支持的防火墙中只创建一条规则。启用前导出/截图原配置,并确认没有开启 Always-on 的“无 VPN 阻断所有连接”。
4. 重复动作并比较#
清除测试 App 的最近任务,按相同步骤和时长重做一次。记录被阻断的日志、页面表现、错误消息、加载时间和其他连接变化。若 App 完全不可用,说明目标可能是核心依赖;这不是“规则失败”,而是依赖证据。
同时打开一个无敏感信息的网页,确认其他 App 网络未被意外切断。不要为解决测试失败一次添加多条允许规则。
5. 删除规则并恢复网络#
删除唯一规则,停止本地 VPN 服务,确认状态栏 VPN 图标消失。再次执行测试动作,连接和功能应接近基线。检查系统 VPN、Private DNS 和 Always-on 设置与开始前一致,然后按需删除 PCAP/日志。
验证#
| 检查项 | 成功标准 | 需要重做的情况 |
|---|---|---|
| 基线 | 固定动作、时长、包名和主要连接均有记录 | 捕获时同时使用了许多其他 App |
| 规则范围 | 只有一个测试 App/目标被阻断 | 添加了整机黑名单或多条规则 |
| 对照 | 同一动作在规则前后有可解释差异 | 两次测试条件不同 |
| 旁路影响 | 其他测试网页和系统网络正常 | 全机断网、推送或通话异常 |
| 回滚 | 规则删除、VPN 停止、设置与连接恢复 | 仅关闭防火墙界面 |
排错#
| 现象 | 常见原因 | 安全处理 |
|---|---|---|
| VPN 授权按钮不可用 | 已有 VPN、工作资料策略或 vpndialogs 被禁用 | 不绕过策略;先恢复系统 VPN 组件或改用备用设备 |
| 开始后全机断网 | 白名单模式、错误 DNS 或“无 VPN 阻断” | 立即停止本地 VPN并恢复导出的配置 |
| 日志只有 IP 没有域名 | 加密 DNS、缓存或直接 IP 连接 | 保留未知,不开启 TLS 解密来强行识别 |
| 阻断域名后 App 完全失效 | 共享 API/CDN 或认证依赖 | 删除该规则,改为按 App 暂时禁网演示 |
| 防火墙后台被杀 | OEM 电池管理限制 | 按项目官方说明设置必要后台权限;不要承诺开机前零泄漏 |
完成清单#
- 我使用了无敏感账号的测试 App 和固定动作。
- 我记录了开始前的 VPN、DNS、包名和版本。
- 我先做基线,再只添加一条可逆规则。
- 我比较了规则前后功能、连接和旁路影响。
- 我没有安装 CA 或解密敏感 TLS 流量。
- 我删除了规则、停止 VPN并验证网络与系统设置恢复。