fiddler如何抓包:先配置代理再开启捕获即可抓取网络请求
最开始接触fiddler如何抓包的时候,纯粹是工作被逼的,需要排查小程序的接口报错,网上一堆复杂教程看得人头大,跟着乱操作半天,要么抓不到任何数据,要么只能抓到电脑网页的包,手机端的请求始终空白,折腾了整整一下午。
直接点开Fiddler的捕获按钮就开始等数据,屏幕上只有寥寥几个电脑系统的后台请求,自己打开的网页、APP操作完全没有记录。当时下意识以为是软件没装好,反复卸载重装了三次,版本换来换去,从最新版换到旧版本,问题依旧,完全没找对症结所在。
后来盯着软件界面愣了很久,才发现问题出在最基础的配置上。默认状态下,Fiddler只开启了电脑本地的抓包权限,没有开放代理端口,手机设备根本连不上电脑的抓包通道,不管怎么操作设备,数据都不会同步过来。
打开Fiddler的工具设置,找到Connections选项,勾选允许远程设备连接,端口保持默认的8888不变,这个端口不用随意修改,改了反而容易出现端口冲突。接着查看电脑的本地局域网IP,确保手机和电脑连接的是同一个无线网络,这一步是很多人都会忽略的点,双网络环境下所有配置都是无效的。
手机打开WiFi设置,手动设置代理,服务器地址填电脑的局域网IP,端口输入8888,保存之后,手机随便点开一个网页,Fiddler界面瞬间跳出密密麻麻的请求数据。这一下终于打通了抓包通道,电脑、手机的所有网络请求都能正常抓取。
很多人抓包失败,还有个很关键的隐藏问题,HTTPS加密请求无法解析。最开始配置完代理后,能抓到普通的HTTP明文包,但大部分APP和网页的加密请求全是乱码,显示的内容全部无法读取,根本没法排查接口问题。
进到HTTPS设置界面,勾选解密所有流量的选项,安装Fiddler的根证书,电脑端和手机端都要分别安装。电脑端直接在设置弹窗里一键安装即可,手机端需要打开浏览器,输入电脑IP加端口,进入证书下载页面手动安装,安装后还要确认证书处于信任状态,不然加密包依旧解析失败。
配置全部完成后,不用一直开着全局捕获,没必要的后台请求会干扰排查。需要抓包的时候,点击左上角的Captures开启捕获,操作对应的软件、网页、小程序,操作完成后立刻关闭捕获,避免多余数据堆积。
抓到数据包之后,不用纠结复杂的解析方式,直接点击对应的请求条目,右侧切换Inspectors面板,上方是请求参数,下方是返回数据,接口的地址、传参、响应结果、报错状态码都能一目了然。遇到接口报错,直接查看返回的错误信息,就能精准定位是参数错误、服务器异常还是网络问题。
中途试过一次关掉软件后重新打开,直接开启捕获又抓不到手机包。排查后发现,电脑每次重启后局域网IP会变动,代理地址没有同步更新,设备自然无法连接抓包通道。之后每次重启软件,都会先核对一遍电脑IP,重新修改手机代理配置,保证通道一直通畅。
现在排查网络接口问题,全程就是固定的一套极简操作,打开软件、核对代理配置、确认证书生效、开启捕获操作设备,整套流程下来几十秒就能搞定,没有多余的繁琐步骤,所有网络请求都能精准抓取解析。