移动端抓包实战:Wireshark配置与HTTPS解密全攻略
1. 项目概述为什么移动端抓包是必备技能在移动互联网时代App不再是孤岛它无时无刻不在与后端服务器、第三方服务、CDN节点进行着海量的数据交换。作为一名开发者、测试工程师或安全研究员你是否曾遇到过这样的场景App某个功能突然异常前端同事说接口没问题后端同事说日志正常问题到底出在哪或者你想分析某个App的网络行为了解其数据流向和协议格式却无从下手。这时移动端抓包就成了你手中最锋利的“手术刀”。Wireshark这款久负盛名的网络协议分析工具无疑是这把手术刀中的“瑞士军刀”。它功能强大、协议支持全面但很多朋友一提到用它抓取手机流量就觉得步骤繁琐、配置复杂尤其是面对iOS设备时更是望而却步。实际上一旦理清思路整个过程会变得清晰而高效。本文将手把手带你完成在Android和iOS两大移动平台上使用Wireshark进行抓包的全套配置不仅告诉你每一步怎么做更会深入解释背后的原理分享我踩过的坑和总结的实战技巧。无论你是想调试自家App还是进行安全评估这篇文章都能让你从入门到精通。2. 核心思路与方案选型代理抓包 vs. 镜像抓包在开始动手之前我们必须先理解移动端抓包的两种核心思路代理抓包和流量镜像或称为端口镜像。这两种方案的选择直接决定了后续的配置复杂度和抓包效果。2.1 代理抓包方案解析代理抓包是目前最主流、最便捷的方式。其核心原理是让移动设备的所有HTTP/HTTPS流量都经过一个我们指定的“中间人”即代理服务器进行转发。Wireshark就运行在这个代理服务器所在的电脑上监听代理端口从而捕获所有流经的流量。它的工作流程通常是这样的在电脑上启动一个代理服务常用Fiddler、Charles或Wireshark自身监听。将手机连接到与电脑相同的Wi-Fi网络。在手机的Wi-Fi设置中手动配置代理指向电脑的IP地址和代理端口。此时手机发出的网络请求会先到达电脑的代理再由代理转发到真正的目标服务器回包路径反之。Wireshark在电脑上抓取本地网卡或环回地址上该代理端口的流量。这种方案的优势非常明显配置简单无需root或越狱大部分App的HTTP(S)流量都能抓到。过滤方便可以直接在代理工具或Wireshark中按域名、IP过滤。便于解密HTTPS配合安装代理的CA证书可以解密HTTPS流量内容这是关键后文会详述。但它的局限性也需要了解无法捕获非HTTP(S)流量例如一些游戏使用TCP/UDP自定义协议、音视频流媒体协议如RTMP、QUIC或者系统底层的心跳包可能不走系统代理。App可能绕过代理一些安全意识较强的App会检测并禁用系统代理使用自己的网络库直连。需要设备与电脑在同一网络对网络环境有一定要求。2.2 流量镜像端口镜像方案解析当代理方案失效时我们就需要更底层的方案——流量镜像。这种方案不改变手机的流量路径而是在网络链路中的某个节点通常是路由器或网关上复制一份经过的所有数据包发送到运行Wireshark的电脑上。实现方式主要有两种路由器支持端口镜像这是最理想的情况。如果你的路由器尤其是一些企业级或刷了OpenWrt等第三方固件的路由器支持该功能可以在路由器管理界面将连接手机的Wi-Fi端口的流量镜像到连接电脑的LAN端口。在电脑上创建虚拟Wi-Fi热点使用电脑的无线网卡创建一个Wi-Fi热点让手机连接到此热点。然后利用一些工具如Npcap驱动配合Wireshark或AirPcap等来捕获经过这块虚拟网卡的所有流量。Windows的“移动热点”功能结合Wireshark抓取“本地连接* X”虚拟网卡就是一种简易实现。镜像方案的优势在于捕获所有流量无论是HTTP、HTTPS、TCP、UDP还是其他任何协议只要经过该网络链路都能被抓到真正做到“一览无余”。对App透明App无法感知和绕过因为它根本没有改变手机的出口。其缺点也很突出配置复杂依赖路由器功能或需要复杂的软件配置。HTTPS内容仍是密文即使抓到了HTTPS包由于没有进行“中间人”解密其应用层数据仍然是加密的需要额外的私钥才能解密条件苛刻。可能带来性能开销镜像大量流量可能影响网络性能。方案选型建议对于绝大多数应用层调试和分析代理抓包方案是首选。它平衡了易用性、功能性和解密能力。因此本教程将重点详解基于代理的抓包配置并在最后补充流量镜像方案的思路作为进阶参考。我们会分别针对Android和iOS的特性给出具体的配置路径和避坑指南。3. 基础环境准备与核心工具工欲善其事必先利其器。在开始手机配置前我们需要在电脑端打好基础。这里以Windows/macOS平台为例Linux思路类似。3.1 Wireshark的安装与关键配置首先前往Wireshark官网下载并安装最新稳定版。安装过程中有一个至关重要的选项必须勾选安装NpcapWindows或ChmodBPFmacOS。这是允许Wireshark捕获网络数据包的核心驱动/组件没有它抓包功能将无法使用。安装完成后打开Wireshark我们先进行几项关键配置设置抓包过滤器Capture Filter在开始捕获前可以设置一个过滤器以减少噪音。例如如果你电脑的IP是192.168.1.100打算在8888端口开代理可以设置过滤器为host 192.168.1.100 and port 8888。这样只会抓取进出你电脑8888端口的包非常干净。但初期为了排查问题可以不设过滤器抓全部流量再分析。配置协议解析Wireshark默认会尝试解码各种协议。确保Analyze - Enabled Protocols中HTTP、SSL它包含TLS/HTTPS的解密设置等是开启状态。熟悉界面主界面主要分为“捕获接口列表”、“捕获数据包列表”、“数据包详情树”、“原始数据字节流”几个区域。抓包后我们主要会在“数据包详情树”中逐层展开查看从以太网帧到应用层的数据。3.2 代理服务器的选择与设置虽然Wireshark可以直接监听一个端口作为代理但更常见的做法是使用一个专门的代理工具因为它通常提供了更友好的HTTPS解密证书管理和请求重放等功能。这里推荐两款你可以任选其一Fiddler Classic (Windows)老牌且强大配置简单。安装后打开Tools - Options - Connections记住默认的8888端口可修改并勾选Allow remote computers to connect允许远程连接这是关键。然后在HTTPS选项卡中勾选Decrypt HTTPS traffic它会提示你安装Fiddler的根证书到电脑受信任的根证书颁发机构。这一步必须做它是后续手机安装证书的基础。Charles Proxy (跨平台)界面更现代功能与Fiddler类似。安装后打开Proxy - Proxy Settings设置HTTP代理端口如8888。同样在Proxy - SSL Proxying Settings中添加需要解密的域名如*:*表示全部并确保Enable SSL Proxying打开。Charles也会生成一个根证书你需要通过Help - SSL Proxying - Install Charles Root Certificate将其安装到电脑的信任库。选择哪一款如果你主要用WindowsFiddler免费且足够如果你需要跨平台或更喜欢其UICharles是很好的选择。它们在本教程中的核心作用是一致的提供一个代理服务器端口并生成一个用于HTTPS解密的CA根证书。3.3 获取电脑的本地IP地址这是手机配置代理时必须用到的信息。在命令提示符CMD或终端中输入Windows:ipconfig找到“无线局域网适配器 WLAN”或“以太网适配器”下的IPv4 地址。macOS/Linux:ifconfig或ip addr找到对应网卡下的inet地址。通常是一个192.168.x.x或10.x.x.x的内网地址。记下它例如192.168.1.100。注意请确保你的电脑和手机连接的是同一个Wi-Fi网络。如果电脑用的是有线网络手机用Wi-Fi只要它们处于同一子网通常由同一台路由器分配IP也可以通信。你可以用手机ping一下电脑的IP来测试连通性。4. Android设备抓包配置全流程Android系统相对开放配置流程标准化程度高但不同版本和厂商定制系统仍有细节差异。4.1 配置系统Wi-Fi代理进入手机的设置-WLAN长按当前已连接的Wi-Fi网络选择修改网络或类似选项。在高级选项可能需要点击“高级选项”或展开图标中将代理设置为手动。代理服务器主机名填写你在3.3步骤中获取的电脑IP地址如192.168.1.100。代理服务器端口填写你在Fiddler或Charles中设置的端口如8888。保存设置。此时手机所有的HTTP流量应该已经路由到你的电脑代理了。你可以在电脑的代理工具Fiddler/Charles中看到手机的请求开始出现。但HTTPS请求会显示为Tunnel to ...或证书错误因为还未安装解密证书。4.2 安装HTTPS解密证书CA证书这是解密HTTPS流量的关键。由于代理工具充当了“中间人”它需要用自己的CA证书为每个访问的站点签发一个“假”的证书手机必须信任这个CA证书才能正常建立连接并让解密成为可能。通用方法Android 7.0之前及部分定制系统在手机浏览器中访问代理工具提供的证书下载地址。这个地址通常是Fiddler:http://电脑IP:端口例如http://192.168.1.100:8888。打开后页面会有一个链接下载FiddlerRoot certificate。Charles:chls.pro/ssl。在手机浏览器中输入此地址会自动下载charles-proxy-ssl-proxying-certificate.pem证书文件。下载完成后系统会提示安装证书。你需要在设置-安全性与位置信息或更多安全设置 -加密与凭据-从存储设备安装证书或安装证书中找到下载的证书文件通常在Downloads目录然后安装为CA证书。安装时系统可能会要求你设置锁屏密码如果尚未设置这是Android的安全策略。Android 7.0 的挑战与解决方案从Android 7.0 (Nougat) 开始系统引入了一项名为“网络安全配置”的变更。默认情况下App特别是targetSdkVersion 24的App将不再信任用户安装的CA证书只信任系统预装的证书。这意味着即使你安装了Fiddler/Charles的证书很多App的HTTPS流量依然无法解密。解决此问题有几种途径修改App的网络安全配置仅限你拥有源码的App在App的res/xml目录下创建network_security_config.xml文件并在AndroidManifest.xml中引用它配置其信任用户证书。这对于调试自家App是标准做法。将CA证书安装到系统证书目录需要Root权限这需要将证书文件重命名并放到/system/etc/security/cacerts/目录并设置正确的权限。过程复杂且有风险不推荐普通用户操作。使用低版本Android模拟器或测试机这是最省事的方案。准备一台系统版本低于7.0的物理测试机或模拟器如Android 6.0上述用户证书方法完全有效。对未Root的物理手机尝试“平行空间”等虚拟环境有些虚拟化App会创建一个独立环境其内部的网络安全策略可能更宽松可以尝试在这些环境中安装代理证书。实操心得对于日常调试我强烈建议准备一台专用于抓包的Android 6.0测试机或使用Android Studio的模拟器创建时选择较低API版本。这会为你省去大量兼容性麻烦。如果必须用高版本手机抓取第三方App流量可能需要结合流量镜像方案见第7章但无法解密HTTPS内容。4.3 验证抓包效果与初步过滤配置完成后在手机上打开浏览器访问一个HTTP网站如http://neverssl.com和一个HTTPS网站如https://www.baidu.com。回到电脑上的Wireshark在接口列表中选择你电脑正在使用的物理网卡Wi-Fi或以太网或者loopback环回如果代理工具和Wireshark都在本机。开始捕获。你应该能看到大量的数据包。为了快速找到手机流量可以在Wireshark顶部的过滤栏输入ip.addr 你的手机IP。手机IP可以在手机Wi-Fi设置中查看或通过代理工具Fiddler/Charles的连接列表看到。找到HTTP请求协议列显示HTTP展开详情树你可以清晰地看到GET /请求、Host头、以及服务器的响应状态码和内容。对于HTTPS请求如果你成功安装了证书在Wireshark中你需要配置SSL/TLS解密密钥。在Fiddler/Charles中HTTPS请求的内容可以直接看到。在Wireshark中对于代理抓包由于流量在到达Wireshark时已经是解密后的经过代理工具所以通常直接就是HTTP协议。如果你用镜像抓包抓到了TLS包则需要配置RSA密钥来解密这非常复杂代理方案完美规避了此问题。5. iOS设备抓包配置全流程iOS系统以其封闭性和安全性著称抓包配置的步骤与Android有所不同但逻辑是相通的。5.1 配置Wi-Fi代理iOS的代理设置入口更统一进入设置-无线局域网点击当前已连接Wi-Fi右侧的i信息图标。滑动到最底部找到配置代理选择手动。在服务器栏填入电脑的IP地址端口栏填入代理端口如8888。点击右上角的存储。5.2 安装HTTPS解密证书这是iOS抓包的核心步骤且比Android更直观但多了一步“完全信任”的操作。下载证书同样在iOS设备的Safari浏览器中访问证书下载地址Fiddler:http://电脑IP:端口例如http://192.168.1.100:8888。Charles:chls.pro/ssl。Safari会提示“此网站正尝试下载一个配置描述文件。您要允许吗”点击允许。下载完成后系统会自动跳转到设置或者你手动进入设置顶部会出现已下载描述文件的提示点击进入。点击右上角的安装输入设备密码再次点击安装完成证书安装。关键一步启用完全信任。仅仅安装还不够必须手动启用对根证书的完全信任。进入设置-通用-关于本机-证书信任设置。在“针对根证书启用完全信任”列表中找到你刚刚安装的证书例如“Fiddler Root”或“Charles Proxy…”打开其开关。如果不执行第5步iOS App在发起HTTPS请求时会因证书链验证不通过而失败表现为连接错误或白屏你只能抓到TCP握手包而看不到HTTP内容。5.3 应对App Transport Security (ATS) 限制与Android的网络安全配置类似iOS也有自己的安全机制——App Transport Security (ATS)。从iOS 9开始ATS默认强制要求App使用HTTPS并对HTTPS连接有严格的安全要求如TLS版本、密码套件等。第三方代理工具签发的证书可能不完全满足ATS的要求导致某些App特别是未正确配置ATS例外的App无法通过代理连接网络。解决方案对于自己开发的App在Info.plist中配置ATS例外允许不安全的HTTP连接或降低安全要求仅用于调试环境。例如添加NSAllowsArbitraryLoads键。对于无法修改的App可以尝试关闭代理使用流量镜像方案见第7章。或者有些网络调试工具如Stream可以直接在iOS设备上安装一个VPN配置文件来捕获流量这绕过了系统代理和ATS的限制是另一种思路。5.4 验证与排查配置完成后在iOS上打开Safari访问网页。在Charles或Fiddler中你应该能看到清晰的HTTP/HTTPS请求列表。在Wireshark中同样使用ip.addr 你的手机IP过滤器来观察流量。如果遇到问题一个常见的排查顺序是检查连通性在iOS上确保能ping通电脑IP。检查代理设置确认设置-无线局域网-代理中的IP和端口无误。检查证书信任再次确认设置-通用-关于本机-证书信任设置中对应的根证书已启用完全信任。检查代理工具确认Fiddler/Charles正在运行且Allow remote connections已开启防火墙没有阻止相关端口。重启大法有时候重启代理工具、重启Wireshark、甚至重启手机和电脑能解决一些玄学问题。6. Wireshark高级过滤与协议分析技巧成功抓到包只是第一步从海量的数据包中快速找到你需要的信息才是Wireshark的真正威力所在。这里分享几个最常用、最高效的过滤和分析技巧。6.1 捕获过滤器 vs. 显示过滤器这是两个核心概念作用阶段不同捕获过滤器 (Capture Filter)在抓包开始之前设置语法遵循BPFBerkeley Packet Filter。它决定了哪些包能被抓取到内存中。优点是节省内存和CPU避免抓到无关流量。缺点是设置过于严格可能漏掉关键包。语法示例host 192.168.1.5 and port 80。显示过滤器 (Display Filter)在抓包之后设置语法是Wireshark自有的更强大灵活。它只改变显示的内容不会丢弃已抓取的包。我们绝大部分时间都在使用显示过滤器。6.2 常用且强大的显示过滤器掌握这些过滤器能极大提升效率按IP和端口过滤ip.addr 192.168.1.5显示所有源或目的IP是该地址的包ip.src 192.168.1.5仅显示源IPip.dst 192.168.1.5仅显示目的IPtcp.port 443显示TCP源或目的端口是443的包tcp.srcport 8080仅显示TCP源端口按协议过滤http显示所有HTTP协议包tls或ssl显示所有TLS/SSL握手及应用数据包dns显示DNS查询和响应包icmp显示ping命令的ICMP包组合条件过滤http and ip.addr 192.168.1.5该IP的HTTP流量tcp.port 443 and tls.handshake.type 1显示所有Client Hello包用于分析TLS握手http.request.method POST显示所有HTTP POST请求按包内容过滤字符串搜索http contains login在HTTP协议中搜索包含“login”字符串的包tcp contains GET /api在TCP负载中搜索适用于非标准端口的HTTP6.3 追踪TCP流与HTTP流这是分析一个完整会话的神器。右键点击一个TCP包或HTTP包 -追踪流-TCP流或HTTP流。Wireshark会自动过滤出该TCP连接的所有包并将应用层数据重组在一个单独的窗口中显示完整的请求和响应对话。这对于分析API调用、下载上传过程非常直观。窗口中的红色和蓝色文本分别代表两个方向的数据流。6.4 统计与图表功能辅助分析统计-对话查看所有通信对IP:Port - IP:Port之间的流量统计快速找出哪个连接流量最大、包最多。统计-HTTP-请求/应答序列以时间线方式展示HTTP请求和响应便于分析请求顺序和耗时。统计-捕获文件属性了解抓包文件的基本信息如持续时间、平均包速率等。统计-IO图表可以生成流量随时间变化的曲线图对于分析流量波动、发现异常峰值非常有用。6.5 解密HTTPS流量针对镜像抓包场景如果你使用的是流量镜像方案抓到的HTTPSTLS流量在Wireshark中默认是加密的。要解密它理论上需要获取到服务器的私钥这在生产环境中几乎不可能。但在一种特殊情况下可以做到调试本地开发环境或你拥有私钥的测试服务器。在Wireshark中进入编辑-首选项-Protocols-TLS或SSL。在(Pre)-Master-Secret log filename中指定一个文件路径如C:\sslkey.log。在运行你的客户端如浏览器、App或服务器时设置环境变量SSLKEYLOGFILE指向同一个文件路径。例如在启动Chrome时可以设置此变量。Wireshark会自动读取该文件中的密钥并解密对应的TLS流量。注意此方法仅适用于你能控制客户端或服务器环境的情况。对于抓取手机上的第三方App流量此路不通。这也是为什么代理抓包在代理层解密对于应用层调试更为实用的原因。7. 进阶流量镜像抓包方案实操当代理方案遇到阻碍时如App禁用代理、需要抓取非HTTP流量流量镜像方案是终极武器。这里介绍两种相对可行的实操方法。7.1 利用支持端口镜像的路由器这是最标准、对设备影响最小的方案但依赖硬件。确认路由器支持登录你的路由器管理后台通常是192.168.1.1在“高级设置”、“系统工具”或“网络设置”中寻找“端口镜像”、“端口监控”或“SPAN”功能。配置镜像一般需要指定两个端口源端口连接手机的Wi-Fi所对应的物理端口或SSID。目的端口连接电脑的网线所对应的物理端口。将电脑用网线连接到目的端口并在Wireshark中选择对应的有线网卡开始抓包。手机连接Wi-Fi所有流量都会被复制一份发送到你的电脑。7.2 在Windows/macOS上创建虚拟热点并抓包这是一种软件方案无需特殊路由器。创建热点Windows 10/11设置-网络和Internet-移动热点打开热点并设置名称密码。记住此时用于共享的网络连接比如你的有线网卡会创建一个新的虚拟网卡。macOS通过“系统偏好设置” - “共享” - “互联网共享”将你的以太网共享给Wi-Fi。这会创建一个虚拟接口。连接手机让手机连接到这个新创建的Wi-Fi热点。Wireshark抓包在Wireshark的接口列表中找到对应的虚拟网络适配器在Windows上名称可能包含“本地连接*”或“VirtualBox”等在macOS上可能是bridge100之类的。选择它并开始捕获。关键点通过这种方式你电脑的这块虚拟网卡能看到手机与外界通信的所有流量。但请注意电脑本身如果也通过这个热点上网其流量也会被捕获可以使用显示过滤器not ip.addr 你的电脑IP来排除自身流量。7.3 镜像方案的局限与应对HTTPS内容加密这是最大局限。你只能看到TCP/IP层的元数据如连接建立、传输速率、数据包大小序列而无法直接看到HTTP请求和响应的具体内容。分析重点在于行为分析例如发现App在后台与某个非常用IP建立了大量小包通信可能是心跳或上报或者连接了某个可疑域名。数据量巨大镜像会捕获所有流量数据文件增长迅速。务必使用捕获过滤器如not arp and not port 53过滤掉ARP和DNS广播包来精简数据。分析角度在无法解密的情况下可以关注dns查询了解App访问了哪些域名。tls.handshake观察TLS握手过程了解连接的服务器和使用的加密套件。tcp.analysis查看TCP重传、零窗口、重复ACK等分析网络质量。流量时序和大小模式推断应用行为。8. 常见问题排查与实战心得移动端抓包的路上坑不少这里汇总了一些典型问题和我积累的实战经验。8.1 抓不到任何包检查代理配置确认手机Wi-Fi代理的IP和端口绝对正确。端口是否被其他程序占用可以在电脑上用netstat -ano | findstr :8888Windows或lsof -i :8888macOS/Linux检查。检查防火墙电脑的防火墙可能阻止了外部对代理端口的连接。临时关闭防火墙或添加入站规则允许该端口。检查网络环境确保手机和电脑在同一子网。如果公司网络有多个VLAN或做了客户端隔离代理可能无法连通。尝试使用手机开热点让电脑连接手机热点然后电脑开代理手机配置代理为电脑IP通常是192.168.43.1或类似。这是最可靠的“同一网络”环境。代理工具未监听确认Fiddler/Charles已启动并正确配置了监听远程连接。8.2 能抓到HTTP包但抓不到HTTPS包/HTTPS报错证书未安装或未信任这是最常见原因。回顾第4.2和5.2节确保证书已正确安装并在iOS上启用了完全信任。App使用了证书绑定一些金融类、高安全要求的App会使用SSL Pinning证书绑定。它会将服务器证书的公钥或哈希值硬编码在App内仅信任特定的证书。此时即使你安装了代理的CA证书App也会拒绝连接。对付此情况通常需要逆向修改App涉及越狱/Jailbreak和动态调试已超出基础抓包范畴。ATS/网络安全配置限制如5.3节所述检查并尝试对应方案。8.3 抓到的包杂乱无章难以找到目标流量善用显示过滤器这是Wireshark的核心技能。首先用ip.addr [手机IP]过滤出手机流量。如果想看特定App可以先在手机上操作该App同时在Wireshark中观察新增的、目标IP陌生的流量然后针对该IP或端口进行过滤。先看DNS在过滤器中输入dns查看手机发起了哪些域名解析请求这能快速定位App使用的后端服务域名。使用“追踪流”找到一个疑似目标包右键“追踪TCP流”能立刻将整个会话提取出来非常清晰。8.4 性能问题与抓包文件管理长时间抓包导致文件巨大在捕获-选项中可以设置“捕获文件”选项如“多个文件每X兆字节换一个新文件”或“每X秒换一个新文件”便于管理。使用捕获过滤器如果只关心特定IP或端口务必在开始前设置捕获过滤器能极大减少系统负载和文件大小。及时保存和清理抓包完成后及时将需要的包另存为并关闭不用的捕获文件释放内存。8.5 个人实战心得双机搭配效率翻倍我习惯用一台电脑专门运行Fiddler/Charles进行HTTP(S)层的查看、断点和重放同时用另一台电脑或同一台电脑的另一个Wireshark实例进行原始网络包的捕获和分析。两者结合一个看应用层内容一个看网络层行为互补性极强。模拟器是好帮手对于Android开发Android Studio的模拟器抓包极其方便。只需在电脑上设置好代理然后在模拟器的“设置” - “网络和互联网” - “高级” - “代理”中设置为“同一网络”并填入10.0.2.2这是模拟器内部对宿主机的特殊映射和代理端口即可。无需担心证书兼容性问题模拟器镜像通常可轻松安装用户证书。关注非HTTP流量不要只盯着HTTP。很多App的即时消息、推送、音视频通话使用TCP长连接或UDP。当你发现HTTP层面一切正常但功能仍异常时在Wireshark中过滤tcp或udp观察是否有连接异常断开、重传过多、或收到异常响应码如ICMP不可达。保存过滤表达式将常用的复杂过滤表达式如(http or tls) and ip.addr手机IP保存下来下次直接点击使用省时省力。在Wireshark过滤栏输入表达式后点击右侧的书签图标即可保存。理解TCP重传在Wireshark中TCP重传包会用黑色背景或特殊标记显示。如果看到大量重传说明网络质量差这是导致App卡顿、加载慢的常见原因比在应用层日志里瞎猜有效得多。