PCAPdroid 能够追踪、分析和拦截设备上其他应用的网络连接
PCAPdroid 详细部署教程
PCAPdroid 是一款隐私友好的开源 Android 应用,能够追踪、分析和拦截设备上其他应用的网络连接。它通过模拟 VPN 的方式,在无需 Root 的情况下捕获网络流量,所有数据均在本地设备上处理,无需远程 VPN 服务器。
一、环境准备与系统要求
系统要求
- Android 版本:Android 5.0 (Lollipop) 及以上
- 架构支持:arm64-v8a、armeabi-v7a、x86、x86_64
- 存储空间:建议预留至少 50MB 用于应用安装和抓包文件存储
安装方式概览
PCAPdroid 提供以下几种安装方式:
| 方式 | 适用场景 | 是否自动更新 |
|---|---|---|
| F-Droid 客户端 | 推荐日常使用 | 是 |
| 直接下载 APK | 无法使用 F-Droid 时 | 否 |
| Google Play | 习惯使用 Play 商店的用户 | 是 |
| 源码编译 | 开发者/定制需求 | 手动 |
二、方式一:通过 F-Droid 安装(推荐)
F-Droid 是自由开源 Android 应用的主要分发平台,能够自动获取更新通知,是安装 PCAPdroid 最安全便捷的方式。
步骤 1:安装 F-Droid 客户端
访问 F-Droid 官网 (f-droid.org) 下载并安装 F-Droid 客户端。
步骤 2:在 F-Droid 中搜索并安装
打开 F-Droid,在搜索框中输入 “PCAPdroid”,找到应用后点击安装。
步骤 3:安装附加组件(可选)
根据需求安装以下附加组件:
PCAPdroid-mitm(TLS 解密插件)
如果需要解密 HTTPS/TLS 流量,需额外安装此插件。它使用 mitmproxy 来解密 TLS/SSL 连接并在应用中显示解密后的数据。
Wireshark Lua 脚本(显示应用名称)
如需在 Wireshark 中显示每个数据包对应的应用名称,可安装官方提供的 Lua 脚本。
步骤 4:首次配置
- 打开 PCAPdroid,阅读并同意隐私政策
- 系统会提示授予 VPN 权限,点击“允许”
- 应用进入就绪状态,显示“就绪”按钮
三、方式二:直接下载 APK 安装
如果无法使用 F-Droid,可以从官方渠道直接下载 APK 文件。
步骤 1:下载 APK
从 F-Droid 网站或 GitHub Releases 页面下载对应架构的 APK 文件。
步骤 2:允许安装未知来源应用
在 Android 设置中,找到“安全”或“应用与通知”选项,启用“允许来自此来源的应用”。
步骤 3:安装 APK
使用文件管理器找到下载的 APK 文件,点击安装。
注意:直接下载 APK 的方式不会收到更新通知,需要手动检查新版本,这是一种相对不太安全的下载方式。
四、方式三:源码编译安装(开发者)
如果你需要修改代码或进行定制开发,可以从源码编译。
环境要求
- Android Studio:最新稳定版
- Android SDK:对应 PCAPdroid 的 target SDK 版本
- Android NDK:用于编译原生组件
- CMake:版本 3.22.1(PCAPdroid 使用的版本)
- Git:用于克隆仓库(Windows 用户需安装 gitforwindows)
编译步骤
步骤 1:克隆仓库
1 | git clone https://github.com/emanuele-f/PCAPdroid.git |
步骤 2:初始化子模块
1 | git submodule update --init |
执行后 submodules 目录应被填充。
步骤 3:配置 Android Studio
- 用 Android Studio 打开项目目录
- 根据提示安装所需的 SDK 和 NDK 版本
- 如果遇到 “No valid CMake executable was found” 错误,需从 SDK Manager 中安装 CMake 3.22.1
步骤 4:编译应用
在 Android Studio 中点击 Build → Build Bundle(s) / APK(s) → Build APK(s)。
编译完成后,APK 文件将生成在 app/build/outputs/apk/ 目录下。
五、核心功能部署与使用
5.1 实时抓包
- 打开 PCAPdroid,确保状态为“就绪”
- 点击开始按钮(▶)启动捕获
- 切换到“连接”标签页,可实时查看所有连接
连接列表显示信息:
- 产生连接的应用进程
- 目标域名和 IP 地址
- 协议和端口
- 连接状态(如 ESTABLISHED、CLOSED)
- 流量大小和载荷长度
5.2 过滤特定应用或目标
- 按应用过滤:在设置中选择特定应用
- 按主机过滤:在连接页面使用搜索框过滤特定目标主机
5.3 查看 HTTP 请求与载荷
点击任意连接,可查看:
- 概览:连接持续时间、URL、协议、进程信息
- HTTP:完整的请求和响应内容
- 载荷:原始数据,支持文本和十六进制格式切换
5.4 保存 PCAP 文件
PCAPdroid 支持三种数据包转储方式:
| 转储方式 | 说明 | 适用场景 |
|---|---|---|
| HTTP 服务器 | 启动 HTTP 服务提供 PCAP 下载 | 快速导出 |
| PCAP 文件 | 直接保存到手机存储 | 推荐方式 |
| UDP 导出器 | 发送到远程 UDP 接收器 | 实时分析 |
操作步骤:
- 进入设置 → 数据包转储
- 选择 “PCAP 文件” 模式
- 开始抓包,文件将按时间格式命名保存
- 停止抓包后,在文件管理器中找到转储文件
5.5 TLS/HTTPS 解密配置
前提条件:安装 PCAPdroid-mitm 插件。
步骤:
- 在 PCAPdroid 设置中启用 “TLS 解密”
- 安装 mitmproxy 的 CA 证书(应用会引导操作)
- 开始抓包,已解密的连接会显示绿色锁图标
- 停止抓包后,SSLKEYLOGFILE 会自动保存
重要提示:通过 ADB Intent 启动抓包时,keylog 文件会自动保存到
/sdcard/Download/PCAPdroid/sslkeylog.txt;只有在手动启动时才需要手动确认保存位置。
5.6 在 Wireshark 中分析
- 将 PCAP 文件从手机导出到电脑
- 用 Wireshark 打开,可看到完整的 TCP 握手、DNS 查询、TLS 握手等
- 如需显示应用名称,安装官方 Lua 脚本:
- 前提:PCAPdroid 中启用 “PCAPdroid Trailer”,禁用 PCAPNG 格式
- 将 Lua 脚本放入 Wireshark 插件目录(Help → About Wireshark → Folders)
六、高级部署:ADB Intent 自动化控制
PCAPdroid 提供了 API,可通过 ADB Intent 控制抓包,适合自动化测试场景。
6.1 基本命令格式
1 | adb shell am start -e action [ACTION] -e api_key [API_KEY] -e [SETTINGS] \ |
ACTION 可选值:start、stop、get_status
6.2 生成 API Key
在 PCAPdroid 设置 → Control Permissions 页面,从菜单中生成 API Key。
6.3 常用示例
启动抓包并保存到 PCAP 文件:
1 | adb shell am start -e action start -e pcap_dump_mode pcap_file \ |
仅抓取 Firefox 流量并发送到本地 UDP:
1 | adb shell am start -e action start -e pcap_dump_mode udp_exporter \ |
七、故障排查
| 问题 | 可能原因 | 解决方案 |
|---|---|---|
| mitmproxy 崩溃(无文件访问权限) | mitm 插件默认无文件访问权 | 打开 mitm 应用 → Addons → 选择 “Enable files access” |
| transparent 模式端口冲突 | 与 socks5 模式使用相同端口 | 指定不同端口,如 --mode transparent@9090 |
| SSLKEYLOG 文件无法解密 | Root 解密模式下 keylog 不工作 | 确保使用非 Root 模式进行 TLS 解密 |
| ADB 启动时 keylog 未保存 | 需要手动保存 | 通过 Intent 启动时 keylog 会自动保存到 Download/PCAPdroid/ 目录 |
| Android 6/arm-v7a 频繁崩溃 | 旧版本兼容性问题 | 尝试更新到最新版本或使用 1.7.5 等较稳定版本 |
八、付费功能说明
以下功能需要付费解锁:
- 防火墙:创建规则拦截特定应用、域名或 IP
- 恶意软件检测:使用第三方黑名单检测恶意连接
- PCAPng 格式:便于导出和分析解密后的流量
付费价格约为 13 港币(约合人民币 12 元),可通过应用内购买解锁。
九、快速上手清单
- ✅ 从 F-Droid 安装 PCAPdroid
- ✅ (可选)安装 PCAPdroid-mitm 用于 TLS 解密
- ✅ 打开应用,授予 VPN 权限
- ✅ 点击开始按钮进行实时抓包
- ✅ 在“连接”页面查看应用网络活动
- ✅ 在设置中配置 PCAP 文件转储
- ✅ 停止抓包,导出 PCAP 文件
- ✅ 用 Wireshark 分析或安装 Lua 脚本显示应用名称

