
常有人一上来就问抓包工具到底哪个最好用。这个问题其实没法直接回答因为你得先搞清楚“你到底站在哪条路上抓”。同样叫抓包你可以站在电脑网卡旁边看所有经过的原始报文也可以站在App和服务器之间把HTTPS流量解密后看清楚里面的明文还可以直接在手机上塞一个本地转发服务只记录某一个App自己发出去的请求——三种做法要用的工具、平台、难度完全是三回事。这篇文章我会把“免费”和“全平台”作为硬性筛选条件把主流抓包工具分门别类讲清楚重点覆盖Wireshark、mitmproxy、Fiddler系这类全平台方案也会把搜索热词里反复出现的小程序抓包、网课视频抓包、USB抓包、蓝牙抓包这些具体场景单独拎出来拆解。不管你是测试、前端、运维还是刚接触抓包的新手先花十分钟看懂原理再决定装哪个能少走很多弯路。1. 为什么抓包工具这么多选起来反而更纠结1.1 抓包原理其实只有三种先搞清楚再下载工具第一个容易被忽略的点所有抓包工具底层原理就三类理解了它们你就能一眼判断某个工具适不适合你的场景。第一类是原始报文捕获典型代表是Wireshark和tcpdump。它们的思路是在网卡接口上做旁路监听把流经网卡的每一个数据包都复制一份出来然后按TCP/IP协议栈逐层解析。这种方式能看到的东西最全包括TCP三次握手、TLS握手包、DNS查询、UDP报文甚至二进制私有协议但问题也很明显加密流量在它眼里就是一堆乱码只能看到“谁和谁在通信”看不到具体内容。我经常用一句话给新人解释它相当于小区门口的摄像头能拍到谁进出但拍不到快递盒里装的是什么。第二类是中间人代理典型代表是Fiddler、Charles、mitmproxy。工作原理是让客户端把流量先发给代理工具代理工具再代替客户端去和服务器通信。关键在于客户端必须信任代理工具自己生成的CA根证书这样代理才能解密HTTPS重新打包成明文让你看到。这种方式能看到HTTP/HTTPS的完整请求、响应、Cookie、Headers是日常调试Web和App的主力方案。它与“摄像头”的区别是它是快递代收点的安检员会当着你的面把快递盒拆开检查再重新封好送出去。第三类是本地虚拟接口转发典型代表是安卓端的HttpCanary、PCAPdroid。它们不需要电脑直接在手机内部创建一个虚拟网络接口让指定App的流量经过这个接口再转发出去所以你不需要root也能抓到手机App的流量。代价是只能抓本机的、能识别到的应用流量看到的内容一般也是解密后的HTTP/HTTPS明文。它更像公司门卫的登记本只管进入这栋楼的访客管不了马路上的车。1.2 选型不看“哪个火”看“我要站在哪条路上”我见过太多人第一次就下载Wireshark然后一看满屏的TCP包直接劝退或者装了Fiddler之后发现根本解不开HTTPS就断定工具不行。其实是场景和工具没对上。你只需要先回答一个问题我要抓到哪一层的信息这里的判断依据很简单。如果你要调网页接口、查App请求参数、分析小程序流量选代理类工具它们能把明文给你看如果你要排查网络连接问题、看握手过程、抓USB总线流量、分析蓝牙协议选原始报文类工具它们才能看到底层细节如果身边没电脑又想快速看看某个App在偷偷请求什么域名直接装一个手机端的虚拟接口类工具就够了。我整理了一个选型速查表每次给团队新人讲都会贴一遍场景推荐工具抓包原理最适合谁Web页面调试浏览器DevTools内置请求日志前端、测试HTTPS/App接口调试Fiddler、mitmproxy中间人代理后端、测试、移动开发底层包分析、握手排障Wireshark、tcpdump原始报文捕获运维、协议分析安卓手机单机抓包PCAPdroid、HttpCanary本地虚拟接口转发移动测试、普通用户USB、蓝牙、网卡问题Wireshark 系统组件原始报文捕获驱动开发、嵌入式、运维总结成一句口诀就是想看明文就选代理想抓原始报文就选网卡想不用电脑就选手机端。别指望一个工具通吃所有场景我后面会讲多数时候你得让两到三个工具配合着用。2. 全平台免费抓包工具盘点各有什么脾气2.1 全平台常青树Wireshark、mitmproxy、Fiddler Everywhere既然标题要求“全平台”和“免费”我优先推荐三个跨平台主力Wireshark、mitmproxy、Fiddler Everywhere。Wireshark是免费开源界的元老Windows、macOS、Linux全支持界面虽然看上去复杂但它不只是抓TCP/IP还支持USB抓包、蓝牙抓包、读取导出各种日志文件。它的学习曲线主要卡在“显示过滤器”上比如你想只看某个IP的HTTP请求要输入ip.addr 192.168.1.10 and http这个语法如果记不住可以先从图形界面的右键菜单“Apply as Filter”入手。它的缺点是过于底层不适合想快速看HTTP明文的普通用户。mitmproxy是Python生态里的命令行抓包神器同样全平台免费开源。它分为三个组件mitmproxy命令行交互界面、mitmweb浏览器界面、mitmdump纯命令行适合写脚本批量处理。很多人一听命令行就害怕但我反而觉得它是进阶用户最该掌握的工具因为一切都可以脚本化。你可以在Python脚本里对请求做自动断言、改参数、落地成文件这在接口回归测试里非常实用。后面实操部分我会专门演示mitmweb的用法它其实不需要你背任何命令。Fiddler Everywhere是跨平台版本Windows、macOS、Linux都能用界面比经典版现代化很多。个人使用免费商业用途需要购买授权。如果你只想要一个“装完就能点”的图形化抓包工具它是门槛最低的之一。另一个容易混淆的是Fiddler Classic那是只支持Windows的老牌经典版目前仍然免费可用功能和稳定性都没问题很多老教程里说的“Fiddler”其实指的就是它。这里也要提醒一句直接搜Fiddler时要看清楚版本在Mac上装Classic是装不了的要下Everywhere版本。2.2 移动端专用免费工具安卓和iOS各有什么选择移动端抓包最常遇到的问题是“没有电脑、只能用手机”或者“流量只在App里产生电脑上抓不到”。安卓这边我比较推荐PCAPdroid免费开源、免root可以指定抓某一个App的流量也可以导出pcap文件再丢到电脑上让Wireshark分析。新版还内置了简单的HTTP/HTTPS解析能直接看到明文请求。另一个很多老玩家提的是HttpCanary也就是俗称的“小黄鸟”它同样可以免root抓包而且界面做得比较友好有请求重放功能但授权策略变化比较多免费党建议优先考虑PCAPdroid。还有一款老牌的Packet Capture它的原理和PCAPdroid一样属于本地虚拟接口转发但久未更新对现代安卓版本的兼容性一般适合设备比较老旧、系统版本不高的场景。iOS这边情况不太一样系统权限限制比较严单机抓包最常用的方案是装Stream这款工具它能抓HTTP/HTTPS流量操作简洁适合快速看接口返回如果要更复杂的分析一般还是回到电脑端用Fiddler或mitmproxy配合手机设置代理来抓。移动端抓包有个共通点不管是安卓还是iOS只要涉及到HTTPS就绕不开证书信任问题。安卓7.0之后很多App默认不信任用户安装的证书这就导致你装了证书也可能解不开流量。这个问题我放在第四部分实操里细说那里会给出一个在模拟器里把用户证书转成系统证书的命令行方案。2.3 系统自带和浏览器内置的“隐藏抓包能力”很多人忽略了一个事实你身边的浏览器和操作系统本身就带着相当不错的抓包能力根本不用额外装工具。浏览器DevTools的Network面板就是最典型的例子。按F12打开开发者工具切到“网络/Network”面板刷新页面就能看到所有网络请求包括请求头、响应头、Cookie、时间线还支持筛选XHR请求、图片请求、媒体请求。前端调试接口、查看接口返回用这个面板通常比任何第三方工具都快。它唯一的限制是只能看浏览器自己发出的流量抓不了App。系统层面也有不少内置工具。Windows上可以用netsh trace start启动网络跟踪结束后生成ETL文件再用微软的Message Analyzer或Wireshark打开分析macOS上可以用tcpdump命令行直接抓本机网卡流量配合sudo权限使用安卓系统在开发者选项里自带“蓝牙HCI日志”抓包功能抓完生成的btsnoop日志可以丢进Wireshark看蓝牙协议Linux上BlueZ自带的btmon工具也支持记录蓝牙数据。这些内置能力很多时候能救急尤其当你手头不方便装第三方软件的时候。3. 热搜场景逐个击破小程序、网课视频、USB、蓝牙3.1 微信小程序抓包模拟器和代理是标配小程序抓包是很多人入坑抓包的第一站因为小程序不像普通H5页面你没法在电脑浏览器里直接打开看请求。先说一个最省事的场景如果你是在开发自己的小程序打开微信开发者工具它的调试器里自带Network面板能看到所有请求这根本不需要任何外部工具。很多新手不知道这个白白折腾了半天下Fiddler。如果你要抓的是别人做的小程序场景就复杂一些。实际操作上最通吃的方式是“安卓模拟器 电脑端代理工具”。以Windows上常见的MuMu模拟器为例电脑端安装Fiddler Everywhere或mitmproxy并开启HTTPS解密设置监听端口然后在模拟器里把WiFi代理指向电脑的局域网IP和对应端口再安装代理证书最后打开小程序流量就会经过电脑端代理明文请求全部可见。这里有个关键点安卓7.0以上系统默认不信任用户证书。微信和大部分小程序为了安全在Release版本里通常不信任用户层证书所以你在模拟器里装完证书后很可能依然看到TLS握手失败或全是TCP加密包这时候就需要把证书放进系统证书目录。具体命令我在第四章第四节单独给了完整的过程这里先标记一个方向模拟器要带root权限否则很难完成系统证书注入。3.2 网课视频抓包找到视频地址先搞清楚版权边界网课视频抓包这个搜索词很热但我必须先把边界讲清楚抓包调试和下载盗版内容是两码事。一个基本原则是你只能对你拥有访问权限的内容做技术分析目的是排查播放问题、优化播放体验或者下载自己合法购买的课程用于离线学习。任何绕过权限、传播盗版的行为都与本文无关。在这个前提下网课视频抓包的思路其实很统一视频网站或App在看视频时后台一定会请求一个视频地址常见格式有m3u8、mp4、flv。你只需要打开Fiddler或mitmweb代理过滤出包含m3u8、mp4、flv、media的请求找到对应的URL就能定位视频源。如果是m3u8后面通常还会跟着一串ts分片请求这属于正常的切片播放方式并不是异常。比较常见的排查场景是视频播到一半卡顿、某个清晰度无法播放、直播播放不了。这时候用抓包工具对比正常和异常时的请求差异比如看请求状态码是不是206 Partial Content、看返回的Content-Type、看分片URL是否超时比盲目清缓存有效率得多。我自己的习惯是抓到视频地址后先用浏览器直接打开这个地址试一下如果浏览器能播说明源没问题问题多半出在播放器或网络层再往下查就有的放矢。3.3 USB抓包工具哪个最好用分情况别只看名字“USB抓包工具哪个最好用”这个问题其实要拆成两种完全不同的需求。第一种是抓USB总线上的原始数据包。比如你在调试USB外设、U盘主控、Android设备通过USB连接电脑时的通信这种场景推荐Windows上用Wireshark加USBPcap组件。安装USBPcap后Wireshark的接口列表里会出现USBPcap开头的接口选择对应接口就能开始抓USB总线上的URB请求。这个方案免费、全平台里主要支持WindowsLinux上也有usbmon机制但配置门槛高一些。第二种是抓安卓手机本身发出的网络流量尤其是当手机不方便连WiFi代理时。经典做法是手机开启USB调试模式用adb执行命令让手机上的tcpdump抓包抓完把pcap文件拉到电脑上用Wireshark看。这个方案要求手机有root权限因为tcpdump需要读取网络接口。没有root的话可以用PCAPdroid它在手机里本地抓包、导出pcap再用电脑分析免root就能用。还有个常见迷惑操作手机通过USB共享网络给电脑上网时很多人在Wireshark里找不到抓包接口。实际上这时电脑上会出现一个远程NDIS网卡名字类似“Remote NDIS based Internet Sharing Device”你只要在Wireshark里选中这个网卡开始抓包就能看到经过手机共享链路的所有流量。我曾经在一台Windows机器上排查“手机热点USB共享后微信图片加载慢”的问题就是用这个接口抓到是MTU导致的TCP分片调低MTU后立刻恢复正常。这个排查思路比盲目换软件有用得多。3.4 蓝牙抓包怎么搞系统日志优先专业硬件是加分项蓝牙抓包在搜索热度里不算高但技术含量不低而且很多开发者第一次上手完全不知道从哪里下手。实际上最简单的方法还是老套路——用系统自带的蓝牙日志再用Wireshark打开分析。以安卓手机为例打开开发者选项找到“蓝牙HCI日志”或“Bluetooth HCI snoop log”打开后正常连接并使用蓝牙设备操作完后关掉开关系统会把抓到的HCI数据包保存成日志文件通常位于/sdcard/MIUI/debug_log/bt/或/sdcard/btsnoop_hci.log不同品牌路径略有差异。把这个文件导出来在Wireshark里直接用“打开”或选择类型btsnoop就能看到蓝牙HCI事件、L2CAP通道、ATT/GATT操作等详细记录。在Linux上BlueZ提供的btmon命令可以直接-r参数读取btsnoop日志文件也可以配合HCI接口实时抓取。如果你要做更专业的低功耗蓝牙空口分析比如看广播包、扫描周围的BLE设备那需要外接Ubertooth One这类硬件。我在做嵌入式调试时用过一段时间的Ubertooth它能抓到空中的BLE广播包但使用门槛高要装固件、驱动、配套工具链日常抓包没必要上这个多数场景下手机系统日志加Wireshark已经够用了。最后强调一句蓝牙抓包只用于调试自己拥有或有权测试的设备别拿它去搞别人设备的配对数据。4. 实操记录从零搭好一套全平台抓包环境4.1 初始化代理环境和固定端口这一节我用最常用的“电脑代理 安卓模拟器/真机”组合来演示工具选mitmweb和Fiddler Everywhere二选一原理完全一样。先说端口规划。Fiddler默认监听端口是8888mitmproxy默认是8080为了好记我习惯把端口统一设置成8888。在Fiddler里Tools - Options - Connections里设置端口在mitmweb里启动命令直接带上参数mitmweb --listen-port 8888 --set block_globalfalse这里有个特别容易卡住新手的地方block_global选项。mitmproxy默认只允许本机访问如果不是调试本机浏览器而是让模拟器或真机把流量代理过来必须要设置block_globalfalse否则远程设备会被拒绝连接。我还遇到过有人端口被占用导致一直启动失败排查办法很简单换个端口值或先用netstat -ano | findstr 8888看看是谁占了端口。然后你要确认电脑在局域网里的IP。Windows下用ipconfigmacOS和Linux下用ifconfig或ip addr查看记录下来后面手机和模拟器都要填它。假设你的电脑IP是192.168.1.20那整个链路就是模拟器/手机把流量发到192.168.1.20:8888代理工具解密后转发给服务器。4.2 证书安装HTTPS抓包的第一道门槛代理工具能解密HTTPS前提是客户端信任它生成的CA根证书。Fiddler系在启动后会动态生成一个根证书你在电脑上通过它的界面点“Trust Root Certificate”就能把证书装进系统mitmproxy启动后用浏览器访问http://mitm.it页面会提示下载对应设备的证书。安卓模拟器里安装证书稍微麻烦一点。你需要在模拟器的浏览器里访问http://mitm.it下载并安装Android证书。这一步如果只是抓浏览器流量没问题但抓App流量往往不行因为安卓7.0开始普通App默认不信用户证书。解决办法是让安卓系统把证书当成系统证书对待这时候一般需要root权限的模拟器。命令流程我放在4.4节里因为涉及到将证书转换成系统证书目录需要的格式。这里必须记一个安全边界安装第三方CA证书本身是常见调试手段但生产环境里随意把陌生证书装进手机是高风险行为相当于把通信内容的查看权交给了别人。只在你自己的调试设备上做别往主力手机上装。4.3 模拟器和真机设置代理证书装好后接下来把模拟器或真机的流量引导到电脑端代理。以MuMu模拟器为例打开设置里的WiFi长按当前连接的WiFi网络选择“修改网络”把代理设置为“手动”主机名填电脑的IP地址端口填8888。点击保存后模拟器里所有HTTP/HTTPS流量都会优先走这个代理。这里有一个小知识很多安卓模拟器使用NAT网络模式模拟器内访问宿主机时IP不一定是局域网IP而是10.0.2.2这类专用地址。所以如果填电脑IP不行可以试试10.0.2.2加端口如果还不行在电脑上把防火墙临时放行8888端口或者给模拟器切换成桥接网络模式。真机的操作逻辑完全一样在手机WiFi设置里修改代理指向电脑IP和端口。唯一要注意的是手机和电脑必须处于同一局域网跨网段会连不上代理。这个“必须同一网段”的细节不知道坑了多少人我见过有人在公司网络里手机连的是访客WiFi、电脑连的内网WiFiIP写对了仍然不通换到同一个热点下立刻就好了。4.4 用mitmweb快速开始不记命令行也能上手如果你不想在Fiddler的图形界面里点来点去或者你更习惯在浏览器里查看抓包记录mitmweb是最舒服的选择。启动命令就是前面那条mitmweb --listen-port 8888 --set block_globalfalse启动成功后终端会提示Web界面地址一般是http://127.0.0.1:8081。用浏览器打开这个地址你会看到一个表格流经代理工具的每个请求都会实时出现在列表里支持按域名搜索、按状态码过滤点击任意一条请求可以看到完整的Header、Query、RequestBody、ResponseBody。这些功能完全是图形界面的体验但底层是Python的写自动化时又可以无缝切到mitmdump学习曲线非常平滑。实际调试中我经常会在mitmweb的列表里做两件事一是按域名筛选只看目标App的请求二是看状态码抓到一个接口返回500直接点进去看Response Body里的错误信息比在后端翻日志快太多了。4.5 模拟器里把用户证书转成系统证书这一步解决的是安卓7.0以上App默认不信任用户证书的问题。需要模拟器开启root权限以我的MuMu模拟器为例设置里打开root权限重启后先用adb连接模拟器然后执行以下命令。首先把刚才安装的用户证书从系统目录里复制出来。安卓用户证书一般放在/data/misc/user/0/cacerts-added/下你可以先导出为pem文件比如user.pem。然后在电脑上计算证书的文件名安卓系统证书目录要求以证书的subject hash作为文件名并以.0结尾openssl x509 -inform PEM -subject_hash_old -in user.pem | head -1输出结果是一个8位十六进制数字比如9c5f81e4。接着把这个证书文件重命名为9c5f81e4.0再推到系统证书目录adb root adb remount adb push 9c5f81e4.0 /system/etc/security/cacerts/ adb shell chmod 644 /system/etc/security/cacerts/9c5f81e4.0 adb reboot注意两件事第一adb root在一些模拟器上可能提示不支持那就需要在模拟器设置里先开启root再重新插拔USB调试第二不同安卓版本的证书保存路径稍有差异Android 10以上可能是/apex/com.android.conscrypt/cacerts因为系统分区被改为只读挂载方式也会变。这套操作我在不同模拟器上试过大部分情况下都能成功但如果你只是抓浏览器流量或者自己开发的App完全不必动系统证书用户证书就够了。4.6 命令行模式用tcpdump抓安卓真机底层包除了代理抓包有些场景必须用原始报文捕获。当你需要确认TCP连接是否建立、DNS解析是否异常、某个端口是否有数据到达时代理工具是帮不上忙的因为它们已经站在应用层之上了。最经典的组合是adb加tcpdump。手机开启USB调试并root后用adb执行以下命令adb shell su -c tcpdump -i any -s 0 -w /sdcard/capture.pcap这条命令的意思是在任意网络接口上抓包不截断包长-s 0表示抓完整包把结果写入/sdcard/capture.pcap。跑完想结束按CtrlC然后拉取文件adb pull /sdcard/capture.pcap最后用Wireshark打开这个pcap文件。这里有个小坑很多手机上的tcpdump要su权限才能执行如果你看到tcpdump: Not Found先确认su切换到了root再试或者手机里有没有安装tcpdump二进制文件。市面上也有Magisk模块可以装tcpdump搜索“Android tcpdump 静态编译”能找到很多可用版本。5. 常见问题与排查技巧实录5.1 证书装好了还是TLS握手失败这是最高频的抓包问题现象是代理工具里能看到TCP连接但一涉及到TLS就报握手失败或者干脆显示一堆乱码。原因通常是下面几个。第一安卓7.0以上App不信任用户证书。App自身如果配置了android:networkSecurityConfig并且没有显式信任用户证书那你安装的代理证书对它就是无效的。解决办法就是我4.5节写的把证书转成系统证书或者用Android 6及更早的系统版本做调试。第二有些App做了证书校验Certificate Pinning固定了服务器证书指纹即使系统信任你的代理证书App依然拒绝连接。这种情况在银行类、支付类App里很常见解决办法是使用App自己提供的调试版本或者去逆向修改校验逻辑——后者我不建议也没有必要在这里展开。第三手机系统时间不对。TLS证书校验依赖时间时间偏差太大会直接导致证书无效遇到诡异的手握失败先对一下手机时间再复查。5.2 代理一设置就断网所有请求都失败这个问题也常见而且原因通常很简单。第一代理IP或端口填错。填IP时别填模拟器自己的IP要填电脑的局域网IP端口要和工具监听的端口严格一致Fiddler改了端口后要重启监听。第二防火墙拦截。Windows自带的防火墙经常拦住监听端口调试时可以在防火墙入站规则里放行该端口或者临时关闭防火墙测试确认是防火墙问题后再放行对应端口。第三模拟器的网络模式不对。有些模拟器默认NAT模式下模拟器内访问宿主机IP是10.0.2.2但代理地址填局域网IP就不通先确认你到底能不能ping通电脑IP。最后还有一个容易被忽略的不要在代理设置里把“绕过代理”的名单清空有些系统默认会绕过本地地址清空后模拟器自己内部通信也会走代理反而引发死循环。5.3 抓到一堆TCP包但看不到HTTP明文这种情况一般有两个原因。一是你的流量根本没走代理。比如App不走系统代理或者App用了Socket直连而不是HTTP层接口代理工具自然看不到明文。这时候你只能退回到Wireshark抓原始包自己分析私有协议工作量大很多。二是在代理工具里开了HTTPS解密但证书没有被客户端信任代理工具只能加密转发解密环节失败表现出来就是列表里只有CONNECT请求或者TCP流没有真实的HTTP请求。处理方式回到5.1节查证书。这里我多说一句现在很多App的接口其实已经不用普通HTTP了要么用gRPC/WebSocket要么全部走二进制私有协议这类流量无论你用Fiddler还是mitmproxy都不可能直接看到“明文字段”需要配合反编译或协议逆向这已经超出本文的日常调试范畴。5.4 小程序和部分App检测到代理直接拒绝连接现在不少成熟App加入了反抓包策略检测到系统代理后就会拒绝网络请求甚至主动报错“网络异常”。这是客户端在保护自己的通信安全从产品角度是合理的。作为合法的开发者和测试者我应该明确建议你不要想着怎么绕过这类反抓包策略更不要试图对抗银行、支付等敏感App的安全机制。你手里的调试工具应该用于自己开发、自己测试、或者获得授权的场景。如果你是这套App的开发或测试人员应该要求开发提供测试包测试包通常会关闭证书校验和代理检测如果你只是普通用户就别折腾了老老实实用手机自带功能或者找客服比什么都靠谱。根据我的经验遇到反抓包检测90%的情况不是你技术不够而是你试图去突破一个本不该突破的边界。5.5 常见故障速查表现象可能原因处理方法模拟器设置代理后所有页面打不开IP不通、端口被占用、防火墙拦截先用ping测试电脑IP再查端口监听和防火墙放行代理工具能看到CONNECT但看不到HTTP内容证书未信任、App是HTTPS且忽略用户证书安装证书、转系统证书、调整调试环境手机时间不对导致证书校验失败系统时间偏差校准手机时间开启自动同步App检测到网络代理直接弹异常客户端反抓包策略使用官方测试包或不再强行抓包Wireshark抓到的都是TCP乱码流量加密或未解密改用代理类工具解密或接受只能看元数据的现实模拟器root后依然无法写入系统证书系统分区只读或路径随版本变化用adb remount查对应安卓版本的cacerts路径这张表只是高频场景的索引。实际上抓包排障就是一层层剥开先确认链路通不通再确认证书信不信任最后才考虑是不是App故意拦你。按这个顺序排查效率会高很多。6. 我最后想分享的一点经验用抓包工具这么多年我的桌面始终固定放着四个Wireshark看底层和奇怪的协议mitmweb处理带脚本需求的HTTPS代理浏览器DevTools做网页快速定位PCAPdroid应对手机上零散的抓包需求。Fiddler Everywhere也会装但更多是同事不会用mitmproxy时给图形界面用户准备的。如果你想给自己的工作流减负建议参考两个原则。第一不要装齐所有工具再研究从你最近要做的场景反推先装一个代理类工具再装一个抓包类工具足够应付日常90%的需求。第二抓包前先写下你想回答的三个问题比如“哪个域名在超时”“返回的状态码是什么”“请求体里参数对不对”带着问题去抓包看到结果时才知道看什么。我见过太多同学对着满屏的流量发呆不是因为工具不够好而是没想明白自己到底要找什么。工具只是镜子镜子的分辨率再高你也得先知道自己想看清什么。