开发同学应该都遇到过这种情况:想看看手机上一个 App 的流量,第一反应是找抓包软件,搜"手机软件抓包"出来的答案却是两个画风——一半是装在电脑上的(Charles、Fiddler 这些,配代理连手机),另一半是能直接装在手机上的 App。两类都能抓,但原理、限制、上手路径完全不是一回事。这篇先把两条路三条线摆开,再逐条讲清各自边界。
| 你的目标 | 选哪类 | 代表 |
|---|---|---|
| 手机独立抓包,不常开电脑 | 手机抓包 App(本地 VPN) | HttpCanary、Stream、PCAPdroid |
| 电脑上深度分析,要断点改包重放 | 电脑代理软件 | Charles、Fiddler、Proxyman |
| 免装证书,要抓绑定/自研加密的 App | 电脑网卡式工具 | TraceEagle 这类 |
先讲清三条线的取流位置:手机 App 类靠系统的"本地 VPN"——流量先经过自己进程,记录完再放行,免 root、免电脑,代价是 HTTPS 要装证书信任,而高版本安卓默认不信任用户装的证书;电脑代理类把手机流量指到电脑的端口上,解密能力强、能改包,但 App 不走系统代理就抓不到;网卡式直接从手机网卡层取流量、自动解密,不用装证书,对绑了证书的 App 还能用应用层抓包从内部拿明文。三条线的差别就一个:流量从哪过。
一、装手机上的抓包 App:图的是独立和快
安卓这边的选择不少:HttpCanary 是老牌,界面直白,HTTP 请求的查看、过滤、重放都有;PCAPdroid 开源免费,能把流量导成 PCAP 文件丢给电脑分析;iOS 上 Stream、Reqable 这类走同一套本地 VPN 原理。操作路径基本一致:装上 → 授权"本地 VPN"→ 开抓,不需要电脑,走到哪抓到哪。
边界要提前知道三条。第一,明文 HTTP 直接看,HTTPS 要装 CA 证书让 App 信任——高版本安卓默认只信任系统层证书,用户装的证书对它等于不存在,装进系统层需要 root,这一步卡掉不少人。第二,App 做了证书绑定的话,装上证书也白搭,这类 App 在手机 App 类的视角里就是密文或断连。第三,本地 VPN 抓的是走系统网络的流量,个别 App 直连不经过,也看不到。验证方法:开抓后让 App 产生请求,列表里能点开明文,才算链路通了。
手机 App 类还有个实用点:按应用过滤。开抓后只挑目标 App 的会话看,不用在整机流量里翻;多数这类工具支持会话导出,现场排查时把一条请求的完整信息发给同事,比截图省事。
二、电脑上的代理软件:调试与改包的主场
Charles、Fiddler、Proxyman 这类的玩法是:手机和电脑连同一个 Wi-Fi,手机 Wi-Fi 设置里把代理指到电脑的 IP 和端口,再在手机上装电脑签发的根证书。配置完成后,手机上所有走系统代理的 HTTPS 流量都能解密。
这类软件的长处不在"抓",在"改":断点拦截、请求改写、重放,是接口联调和功能验证的标准动作。边界也清楚:App 不走系统代理(自己实现网络栈、直连服务器)就完全看不见;换了个网络要重新配代理地址;装证书那一步同样绕不开高版本安卓的证书信任问题。它适合的场景是:你有明确的调试目标,需要反复改请求验证服务端行为——这时候代理软件是效率最高的形态。
配置时的几个常见坑:代理地址填电脑的局域网 IP,别填 127.0.0.1(那是手机自己);证书要在同一个 Wi-Fi 下安装,用流量网络时代理不生效;装完证书记得去系统设置里开启信任。这三处有一处对不上,现象都一样:配了,但抓不到。
三、电脑上的网卡式工具:免证书路线
第三类是网卡式工具,以 TraceEagle 为代表:手机用数据线连电脑(或跑模拟器),工具直接从设备网卡层抓取流量并自动解密——全程不做中间人、不往手机装证书,高版本安卓"不信任用户证书"的限制对它不存在。
实际操作:连接设备 → 选抓法(网卡抓包/网卡密钥)→ 开抓,手机上操作 App,明文实时滚出来。碰到证书绑定、自带加密组件的顽固 App,在 TraceEagle 里切应用层抓包,直接从 App 内部取明文,代理类拿不下的目标在这里有兜底。模拟器场景也走这条线:设备列表自动识别,选中即抓,手机和模拟器可以分开抓互不干扰。代价也直白:要电脑在身边,还要按设备准备(安卓整机抓法需要已 root 设备,模拟器一般一键开启)。它适合的场景是:目标 App 不配合证书和代理、你想少配置直接看流量。
问:手机 App 类抓包需要 root 吗? 答:开抓不需要,本地 VPN 授权就够;想装 CA 到系统层让 HTTPS 能被解开才需要 root——没有 root 的机器,手机 App 类对 HTTPS 基本只能看运气,果断换电脑端方案。
问:iOS 上有能直接抓包的吗? 答:有。Stream、Reqable 这类 iOS 版同样走本地 VPN 原理,安装后要信任它的 CA 描述文件;证书绑定的 App 一样抓不到,这类目标得靠电脑端网卡路线。
问:三类都要备齐吗? 答:不用。多数人的刚需是"看明文",电脑网卡式或代理式二选一就能覆盖;手机 App 类是出差、现场排查时的补充,装上不吃亏,但别指望它突破证书绑定。
手机软件抓包没有通吃的一件,区别在流量从哪过:手机 App 走本地 VPN,电脑代理靠端口,网卡工具直接读设备——想要什么结果,决定装哪一类。
三类收一下:图快图独立,手机 App 类够用;要断点改包、做接口联调,电脑代理软件是主场;目标 App 不认证书、不做中间人,网卡类兜住剩下的场景。把"流量从哪过"这个原理记住,下次面对"手机软件抓包有哪些"这类问题,答案自己就能推出来——先定自己的目标,再在三条线里挑,比逐个工具试装省事得多。