拓冰建站拓冰建站
首页 / 资讯中心 / 正文

手机抓包全流程实战:从流量引导到Wireshark HTTPS解密

1. 手机抓包为什么总有人扑空先说清楚流量真正走过的那条路做网络调试的人迟早会遇到一个需求App 上线前突然出现某个接口调用失败后端查了半天说没收到请求前端拍着桌子说代码没问题。这时候最有效的办法就是自己把手机上的流量抓出来看看请求到底有没有发出去、发到了哪个地址、带了什么参数。而这个动作在电脑上很简单在手机上却常常让人一头雾水——Wireshark 打开网卡列表全是乱码明明手机在拼命刷抖音接口列表却干干净净像是手机根本不联网一样。先别急着怀疑 Wireshark 坏了问题出在抓包位置上。电脑抓包是在网卡上做“旁听”只要流量经过这块网卡网卡就能复制一份出来交给 Wireshark。但手机的流量路径完全不一样手机通过 Wi-Fi 连到无线路由器再经光猫、运营商网络走向互联网这一路上和你的电脑网卡没有半点关系。除非你让手机的网络流量主动经过电脑否则电脑上的 Wireshark 永远看不到手机的任何数据包。这也是我在这篇文章开头必须讲清楚的第一件事手机抓包的本质不是“把 Wireshark 安装好就完事”而是人为地让手机流量绕到电脑网卡上来。搞懂了这一点后面所有的方案都是围绕“怎么把流量引过来”做文章。常见做法有三类手机开 USB 网络共享USB tethering让电脑成为手机的上网出口电脑开一个 Wi-Fi 热点让手机连上这个热点上网在电脑上跑一个代理服务让手机把 HTTP/HTTPS 请求转发到这个代理代理再替手机发出去。三条路本质上都是为了同一个目标让手机发出的每一个包都从电脑的某块网卡上经过。哪条路适合你取决于你是想抓视频流、想抓某个 App 的接口还是想分析加密协议——细节后面会逐个展开。总之记住一个判断标准如果 Wireshark 里列表是空的先别找过滤条件先确认手机流量到底有没有经过这台电脑。2. 环境准备把电脑端和手机端的状态调整到能开工理解了流量路径接下来就是把工具链搭好。这个环节很多人会忽略一个细节Wireshark 只是“显示层”真正在电脑上负责采集数据包的是它底层的抓包驱动。Windows 上常见的是 Npcap 或者 WinPcapWireshark 安装程序通常会带一个选项让你一并装上。如果你安装的时候手快取消了 Npcap那么之后打开 Wireshark 大概率会提示“找不到捕获接口”列表里一片空白。安装 Npcap 的时候我建议勾选“Support raw 802.11 traffic”这类选项虽然普通抓包用不到但在某些无线网卡环境下需要这个能力才能看到 Wi-Fi 层。另外Windows 上 Npcap 默认只允许管理员权限下抓包所以后面启动 Wireshark 的时候最好右键以管理员身份运行。这一点很多人会栽跟头普通权限打开 Wireshark接口列表能显示但点开始抓包之后一个包都收不到折腾半天最后发现是权限问题。手机端要做的准备工作相对简单但也要区分系统安卓机需要先进入“开发者选项”打开 USB 调试。不同品牌的入口不太一样常见的是连续点击“设置 - 关于手机 - 版本号”七次然后回退到设置列表就能看到开发者选项了。这一步在 USB 共享网络方案里不是必须的但在需要配合 adb 命令查看路由表、杀掉进程时很关键。苹果手机没有 USB 共享网络给电脑的选项通常只能走 Wi-Fi 热点或者代理方案。注意 iOS 上安装信任证书的路径比较隐蔽需要去“设置 - 通用 - 关于本机 - 证书信任设置”里手动打开完全信任开关否则装了证书 HTTPS 也解密不了。还有一个很多人问的问题要不要装分包软件我的建议是先在手机上装一个轻量的连通性测试工具比如 ping 或者网络调试类 App。先确认手机能通过电脑上网再开 Wireshark否则你很难判断问题是出在网络路径还是出在过滤条件。这个步骤看似多余实际能帮你省掉大量排查时间。3. 两条实操路径USB 共享网络和电脑 Wi-Fi 热点怎么选工具就绪之后就到了最关键的环节把手机流量拉到电脑上来。我在实际排查中用到最多的是两条路径先讲清楚它们的原理、操作和适用场景。3.1 USB 共享网络最稳、最不容易丢包的选择USB 共享网络的原理很简单手机把电脑当成自己的“外置网卡”手机的所有网络流量从 USB 数据线出去到电脑上被对应的一块虚拟网卡接管然后电脑再通过自己的物理网卡帮手机转发到互联网。这意味着手机每发出一个包这块虚拟网卡都会复制一份Wireshark 选择这块网卡就能完整看到手机的全部流量。实际操作步骤手机用数据线连接电脑打开“设置 - 移动网络或连接与共享 - USB 网络共享”。不同品牌名称略有差异但在某个地方一定能找到“USB 共享网络”或“USB 网络共享”的开关打开即可。电脑上打开 Wireshark点击首页的网卡列表找那个名字里带“Remote NDIS based Internet Sharing Device”或者类似字样的接口。选定接口直接开始抓包这时候手机上所有流量包括 Wi-Fi 和 4G/5G 流量只要走了 USB 这条出口都会出现在 Wireshark 里。这个方案最大的优点是稳定、链路短、很少丢包。USB 数据线本身不会像无线信号一样受干扰手机上跑视频直播这类高流量业务也能稳住。最大的缺点是共享后手机只能用电脑所在网络上网而且部分手机在开启 USB 共享后自己就断了 Wi-Fi你要抓的 App 如果限定只能在 Wi-Fi 下工作比如局域网控制类的智能家居 App这条路就行不通了。3.2 电脑 Wi-Fi 热点无线覆盖广但坑也最多如果你的台式机或者笔记本有无线网卡另一个方案是让电脑开一个 Wi-Fi 热点让手机连上这个热点。这样从手机到电脑 AP 这一段是无线到了电脑网卡上流量同样会被 Wireshark 捕获。Windows 上开热点的方式比较多新版本系统直接在“设置 - 网络和 Internet - 移动热点”里打开即可可以设置一个 SSID 和密码手机连上就能上网。Mac 上则在“系统设置 - 通用 - 共享 - 互联网共享”里配置。这个方案适合需要手机和电脑处于同一局域网、同时又能抓包的场景。比如抓智能家居 App手机必须连着家里路由器控制设备但你又想在电脑上观察控制指令的报文。此时可以让电脑同时连着路由器并把自己的 Wi-Fi 热点打开把手机热点设置成电脑的热点这样手机发出的局域网控制流量就会经过电脑网卡。不过 Wi-Fi 热点方案有个明显的坑无线网卡一般只支持同时做一块网卡的工作开了热点之后这块网卡自己连接 Wi-Fi 的能力就得舍弃掉。所以电脑要从有线网卡上网或者插一块额外的 USB 无线网卡专门开热点。很多人在这里踩坑说打开了移动热点后电脑立刻断网原因就是电脑本身在用 Wi-Fi 上网开热点把唯一的 Wi-Fi 通道占了这时改用网线连路由器就能解决。3.3 关于代理方案适合 HTTPS 调试但不适合全流量分析还有一类方案是开代理也就是别人嘴里常说的“手机代理抓包”。手机设置代理后发的 HTTP/HTTPS 请求会先发给代理再由代理转发给目标服务器。这样在电脑上跑一个代理程序就能看到请求内容。这类工具比较常见很多做接口调试的同事一上来就推荐这类方案。我的建议是如果只是抓某个 App 的 HTTP 接口代理工具没问题如果想分析底层 TCP 行为、网络握手、数据包重传代理并不适合因为代理本身在中间做了大量处理看到的数据已经不是最原始的流量了。所以下面的内容还是以 Wireshark 为主代理方案只做辅助参考。4. HTTPS 解密与证书处理不搞定这个抓包就只是看热闹流量成功经过电脑之后你打开 Wireshark 一看大概率会看到一个极其“劝退”的画面列表里全是 TLS application data点开一个包里面全是乱码根本看不出内容。这是正常的因为现在绝大多数 App 的接口都启用了 HTTPS。4.1 为什么抓到的包全是“乱码”TLS 加密在做的事就是让传输层以上的内容全部加密。Wireshark 抓到的 TCP 包里面HTTP 请求行、请求头、请求体全部被加密成了看起来像随机字节的东西。只有在两端握手时交换的 Client Hello、Server Hello、证书等少数包能读懂后面的 APPLICATION DATA 全是密文。所以如果你只想看“这个请求发给谁、谁回应的”这种基本信息加密与否根本不影响——IP、端口、TCP 连接信息都在明文里。但如果你想看“App 到底发了什么参数”就必须想办法拿到会话密钥。4.2 证书安装与 TLS 密钥记录两条落地方案第一条路是安装调试证书让 Wireshark 能配合代理解密 HTTPS。由于在电脑上抓包时手机请求直接经过电脑网卡Wireshark 本身不会阻止 TLS 握手手机和目标服务器之间建立的是一条真实的加密通道Wireshark 没有窃听密钥就无法解密。此时常用的做法是引入一个本地代理代理把自己的证书作为“中间人”和手机通信手机信任这个证书之后代理就能看到明文。具体就是把代理生成的 CA 证书导出传到手机上安装并信任。安卓和 iOS 的操作细节差异在上文提过这里再强调一遍安卓 7.0 以后普通 App 默认不信任用户安装的 CA 证书你需要把证书装到系统证书目录里或者用调试模式运行 App否则中间人解密依然失败。第二条路是直接让 Wireshark 通过 TLS 会话密钥文件来解密适合能拿到服务端密钥的场景。做法是在启动 Wireshark 之前设置环境变量比如在 Windows 上设置SSLKEYLOGFILE为某个路径让浏览器或应用把每次会话的密钥写入这个文件然后在 Wireshark 的“编辑 - 首选项 - Protocols - TLS”里指定这个文件路径。这个方案不用装证书也不需要代理介入但对 App 本身有要求只有支持导出密钥的客户端才能这么做。所以实际项目里我更推荐第一种方案尤其适合分析自家 App 的 HTTPS 接口。4.3 证书明明装了还是提示不信任这是一个高频问题。表现是代理工具里可以看到 HTTPS 请求但页面提示证书不受信任。排查顺序我建议这样走手机系统时间是否准确。证书有有效期如果手机时间和电脑时间差太多系统直接认为证书过期是否在“证书信任设置”里打开了完全信任iOS 特有问题是否装进了系统证书目录安卓 7.0 特有问题需要 root 或使用 testkey 构建的 userdebug 系统才能写入系统分区代理工具是否用的最新版本部分老版本证书生成算法不符合现行规范。这四步能解决绝大多数“解密失败”的问题。剩下的疑难杂症比如某个特定 App 做了证书固定Pinning那就不是简单的证书设置能解决的一般需要结合应用逆向或者调试模式处理超出这篇文章的范畴不展开讲。5. 打开 Wireshark 之后过滤语法与请求定位实战流量进来了加密也解开了接下来就该展示真正的技术了在一堆跳动的数据包里快速定位到你关心的那一条请求。这一步对手速和语法熟练度都有要求我见过太多人抓了 10 分钟包最后盯着 1 万个包发呆不知道从何下手。5.1 先过滤地址和端口把范围缩到最小手机上的流量往往是很杂的后台推送、日志上报、统计埋点、系统更新请求混在一起。上手第一步先过滤目标服务器地址或端口。如果你知道 App 调用的接口域名可以先在手机上 ping 一下拿到 IP然后用 Wireshark 的显示过滤器里直接写ip.addr 14.215.177.38这会显示出所有和这个 IP 有关的包不管方向是上行还是下行。如果服务端使用的端口很固定也可以加端口条件tcp.port 443结合ip.addr和tcp.port可以快速锁定一条链路的完整会话。这里要注意区别ip.addr x.x.x.x是显示过滤器Display Filter在 Wireshark 顶部输入框使用而捕获过滤器Capture Filter是在正式开始抓包前设置的语法类似host 14.215.177.38它的作用是直接不采集不相关的包节省抓包性能。两者功能不同不要混用。5.2 认识一次 HTTP 请求在 Wireshark 里的完整样子当你想抓某个 App 的登录接口目标 IP 已经过滤出来了你会在列表里看到类似这样的结构客户端发 SYN 包请求建立 TCP 连接标志位是[SYN]服务端回 SYNACK确认连接建立客户端发 ACK三次握手完成接下来客户端发 TLS Client Hello服务端回 TLS Server Hello、证书等最后才是加密的 Application Data 包。很多人在 Wireshark 里找“HTTP 请求”时直接搜索http结果一片空白。那是因为现在几乎全是 HTTPS协议标记为TLS根本不会以http标记。想看解密后的明文请求可以在 TLS 解密已经配置好的前提下直接右键某条 TLS 数据包选择“追踪流 - TCP 流”弹出窗口里就会显示拼好的明文 HTTP 请求和响应。这个功能非常实用比一条条看包效率高得多。5.3 时间相关的两个实用设置热搜词里有个“wireshark 如何调整 time 为北京时间”这确实是高频需求。Wireshark 默认显示的是 UTC 时间不是本地时间。改法很简单菜单栏“视图 - 时间显示格式 - 自定义”或者在“首选项 - 时间显示格式”里选“绝对日期和时间本地 时区”。设置完成后列表里的时间就和手机上的时间对应上了排查问题时你才知道 App 里的某个报错提示和抓包里某个包的时间是不是匹配。另外我建议在抓包期间顺便记一下手机上的操作时间点比如 14:30:05 点击了登录按钮14:30:07 界面弹了报错。抓完包后通过时间过滤找到这个时间段内的所有流量能极大缩小分析范围。显示过滤器支持时间范围像这样frame.time 2026-01-15 14:30:03 frame.time 2026-01-15 14:30:09这个用法在排查偶发性超时问题的时候特别好使。5.4 一个小众但好用的技能按特征字符串定位请求假如你对接口域名和服务端 IP 一无所知也有一个土办法直接用 App 的某个独特字段做字符串搜索。先打开“编辑 - 查找分组”在“字符串”输入框里输入“login”或某个接口特征选择“包字节”。如果流量里有这个字符串无论它是明文请求参数、还是 HTTP 头里的路径、或是 TLS 握手里的 SNIServer Name Indication都能帮你定位到相关数据包。尤其是 SNI它是 TLS Client Hello 里的明文信息即使流量是加密的通过搜索域名也能找到目标服务器 IP。这个技巧在第一次接触陌生 App 时特别管用。6. 抓不到包、抓不全包时按这个顺序查整个流程都走了一遍有时候结果还是令人抓狂Wireshark 开着手机上刷了半天列表里一个包都没有或者只有零星几个包。这种问题我经历过太多次这里直接给你一套排查链路按顺序走能省下大把时间。6.1 第一步确认手机真的走了电脑出口最常见的原因是手机还在走自己的移动网络或者原来连的路由器根本没有把流量导向电脑。检查方法很简单在手机上关掉移动数据、断开原来的 Wi-Fi只保留 USB 共享网络或者电脑热点然后用浏览器打开一个网页如果网页打不开说明手机上网路径不对Wireshark 当然抓不到包。有人说自己的手机开了 USB 共享后依然能上网但 Wireshark 还是没包这一步也很可能出在网卡选择上那台机器的虚拟网卡有好几块你抓的是 Ethernet 物理网卡但手机流量实际走的是 Remote NDIS 虚拟网卡。解决方法是回到 Wireshark 的捕获接口列表把所有接口都开始抓包跑十几秒然后看哪一个接口有包在增长锁定正确的接口。6.2 第二步确认 Wireshark 没漏包排除了网络路径问题后如果接口列表里包数量正常跳但还是看不到你关心的那几个包那就考虑是不是被显示过滤器“藏”起来了。很多人把捕获过滤器和显示过滤器都写了比如写了个port 80但手机和服务器实际用的是 443 端口自然什么都看不到。这种情况先在显示过滤器输入框旁边点一下“清除”把当前过滤器删了再看源 IP 列表里有没有手机的 IP。还有一种可能是 Wireshark 没有进入混杂模式。在捕获接口页面双击接口开始抓包前可以先“选项”里确认“启用混杂模式”是勾选状态。特别是接了交换机、路由器镜像口的环境不打开混杂模式只能抓到发给自己网卡的包交换机没做镜像时基本等于零。不过在我们上面提到的 USB 共享网络和电脑热点方案中手机流量天然会到达电脑网卡混杂模式很少成为瓶颈。6.3 第三步分析包确实存在但内容缺失还有一种情况包抓到了但是感觉“少了一半”。比如只看到 TCP 三次握手后面没内容了或者只有上行包没有下行包。这多半是抓包位置有问题。以 Wi-Fi 热点方案为例如果电脑无线网卡的驱动对 802.11 封装处理不完整手机发出的包到了电脑上只剩一个空壳某些帧会被 Wireshark 无视。另一个典型问题是 MTU 引发的丢包手机和电脑热点的 MTU 协商不一致时大包会直接丢弃。你可以把热点的 MTU 改成 1400 试试多数情况下能缓解。我之前遇到过一个情况手机连电脑热点后刷短视频只能加载开头一小段后面的请求全部超时。查了 Wireshark 发现大量[TCP Retransmission]后来把热点 MTU 调到 1400问题立刻解决。6.4 第四步重新确认代理和证书是否介入如果你在抓包过程中用了代理工具但只抓到了 CONNECT 请求看不到真正的内容这通常意味着代理只做了正向代理没有劫持 TLS。这时你需要检查代理端是否启用了 SSL 解密/Certificate Pinning 绕过功能。根据我的经验这一类问题大多不是配置不对而是忘了让手机信任代理的证书。手机端去把证书重新装一遍之后明文内容就能看到了。7. 从抓包到接口分析我习惯的分析流程与最后提醒写到这里工具层面的内容基本讲完了。最后分享我自己在项目里摸索出的一套分析流程非常适合团队协作排查问题。拿到一个 App 的抓包任务我从来不是上来就打开 Wireshark。我先把 App 装上打开手机的开发者模式和网络日志记录然后做一遍完整的功能操作把每个操作的时间点记在备忘录里。之后才开始抓包。抓包时我会把 Wireshark 的文件输出设置打开按时间分段保存为 pcapng 文件分段大小设置为 100 MB这样即使抓了半小时文件也不会臃肿到打不开。分析阶段我习惯先看整体连接情况确认没有异常重传和连接失败再按时间点逐段过滤。每个操作对应的网络请求我会在 TCP 流视图里仔细看一遍请求头和响应体不只是看有没有请求还要看响应码和耗时。很多时候前后端“扯皮”的问题在这里一眼就能定责200 秒内返回还是 2 秒内返回在 Wireshark 里几乎不需要争论。还有一个小建议抓包文件一定要保存好并及时备份。pcapng 文件本身不大而且后续随时可以重新打开分析不需要重新抓一次。团队协作时把 pcapng 文件、操作时间表、最终结论一起发给同事大家能基于同一份数据讨论效率比口头沟通高得多。最后提醒一句抓包涉及用户通信内容只在你自己有权限的设备和服务器上做不要拿抓包工具去分析别人的流量。这个边界是职业底线也是合规底线别越线。工具本身是中性技能怎么用用在哪才是真正体现专业性的地方。尤其建议初学者把本文第 6 节的排查链路背下来每次抓包失败先对号入座而不是反复重装 Wireshark。等你熟练了这套流程手机抓包就不再是一件“碰运气”的事情而是一条标准化的操作路径——从流量怎么引进电脑到看到包之后怎么定位到具体请求每一步都有章可循。这套思路对你日后排查局域网设备、分析推送协议、调试智能硬件都有直接帮助。
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门