PCAPdroid 中文文档 下载 App

防火墙拦截规则 — 按应用、域名、IP 三层构建自定义黑名单

设计思路

PCAPdroid 防火墙把流量可见性(Connections 里能看到谁在联网)和流量阻断(不让它联网)结合在一起——不像系统防火墙那样盲封端口,而是基于你已经看到的流量行为来做决策。

三种规则粒度

规则类型效果适用场景
按应用整个应用的所有出站流量被阻断某些应用根本不需要联网(离线 App)
按域名匹配域名和它的所有子域(如 example.org 会阻断 api.example.org 但不会阻断 other.example.org)应用需要联网,但只想阻止特定第三方(广告 SDK、统计 SDK)
按 IP特定 IP 地址被阻断排查到某个已知恶意 IP,精准拦截

快速添加规则

从 Connections 列表

在 Connections 里长按某条连接 → 弹出菜单选:

这是最常用的方式——先看到一条可疑连接,当场就把它封掉。

从 Apps 视图

Apps 标签页长按某个应用 → 直接把整个应用加入防火墙黑名单。被拦截的应用旁会显示禁止图标(ban 号)。

防火墙状态面板

汉堡菜单 → Firewall 进入防火墙管理:

<img src="images/firewall-drawer.jpg" alt="防火墙状态与规则面板" title="防火墙状态页" />

<img src="images/firewall-block-rule.jpg" alt="添加拦截规则" title="长按连接快速加拦截" />

连接上的拦截标记

被防火墙拦截的连接在 Connections 列表里会显示一个禁止图标(ban 号)。如果想找出所有被拦截的连接,用 Connections 顶栏漏斗图标(Edit Filter)→ Blocked by firewall 筛选。

解除拦截:长按一条被拦截的连接 → 选 Unblock。取消拦截时有两个选项:

已知限制

限制说明
DNS 查询不被应用级拦截Android 的 netd 守护进程代应用做 DNS 解析,PCAPdroid 无法把 DNS 查询准确归属到某个应用
不拦截 Google IPCFirebase 推送通知、AdMob 广告等通过 Google 服务 IPC 传输,不走 PCAPdroid 代理
本地缓存仍能显示应用已经缓存好的页面/图片,拦截后仍能从缓存展示,不代表联网成功
Download Manager 仍会发起Android 系统 Download Manager 可能绕过应用级拦截直接发起下载

Root 模式下防火墙不可用

防火墙功能依赖 VpnService 代理层——所以在 Root 模式下(root capture)不生效。这点一定要记住:Root 模式抓包和防火墙互斥,二选一。