ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Fiddler安装与抓包实战:HTTPS证书及手机弱网测试

Fiddler安装与抓包实战:HTTPS证书及手机弱网测试 简介Fiddler作为经典的HTTP/HTTPS流量调试工具常被前端工程师、后端开发者和测试人员用于抓包分析、接口联调与性能排查。这份Windows版安装包内置完整运行组件涵盖可执行程序、运行库、配置文件和常用响应模板共90个文件压缩后约5.5MB轻量便携解压即可使用免去自行寻找依赖的环境配置麻烦。包内除主程序外还带有ScriptEditor脚本编辑器、证书生成与信任工具、以及多种请求转发模板方便读者直接修改规则或模拟不同服务端响应。目前已有574人下载学习适合希望系统掌握Fiddler抓包、断点修改、HTTPS解密及自动化测试的初学者和进阶用户。借助这套安装包读者能快速部署调试环境结合官方文档或教程边练边学深入理解网络请求全过程。1. 为什么要用Fiddler它到底能解决什么问题做开发或者测试的朋友应该都遇到过这种场景网页能打开接口却报了诡异的状态码App在WiFi下正常切到4G就崩明明点击了支付按钮请求却压根没发出去。这时候总不能靠瞎猜去定位问题最直接的方式就是把网络请求抓下来看。Fiddler就是干这个用的。Fiddler是一款基于Windows平台的HTTP/HTTPS抓包调试工具它的运作方式是在本机启动一个代理服务所有经过系统代理的请求都会先经过Fiddler再由Fiddler转发给目标服务器。这个过程听起来有点绕打个比方就明白了你本来直接给朋友打电话现在改成先打给总机总机帮你转接而总机这边可以录音、可以查询、可以拦截甚至篡改通话内容。Fiddler就是那个总机它能记录下每一通“电话”的完整内容。我最早接触Fiddler是在几年前做前后端联调的时候后端同事一直说接口没问题前端又坚持说返回的数据不对。两边僵持不下用Fiddler把请求一拦真相立刻明了——前端请求头里少带了一个鉴权字段。这种问题靠开会是解决不了的只有把请求原原本本摆在桌面上大家才能心平气和地说话。这篇文章就是围绕Fiddler安装包展开的实操记录不废话直接讲怎么从零装好它怎么解决HTTPS证书问题怎么做弱网测试以及我在实际使用中踩过的那些坑。不管你是在Windows上调试Web应用还是想抓手机App的包这篇文章都能帮上忙。2. 安装包的选择与完整安装流程2.1 选哪个版本Classic和Everywhere怎么区分先别急着双击安装包Fiddler的版本问题得先搞清楚不然装完了才发现自己需要的功能没有还得重来。目前市面上主流的Fiddler版本有两个大方向Fiddler Classic这是老牌的免费版本也是绝大多数教程和文章里默认提到的那个Fiddler。它功能非常扎实抓包、断点、弱网模拟、请求重发全都有只支持Windows系统。用户量最大网上能找到的各种插件和汉化包也是围绕这个版本做的。Fiddler Everywhere这是后推出的跨平台付费产品支持Windows、macOS、Linux界面更现代但很多在Classic里免费的功能它开始收费了。免费版只提供基础的抓包能力高级功能需要订阅。老实说如果只是日常调试、学习抓包、做移动端联调Fiddler Classic完全够用这也是我在这篇文章里重点讲的对象。除非你需要长期在macOS或者Linux上工作否则没必要在这个阶段花冤枉钱。安装包的获取渠道其实很简单直接去官网下载即可。不过有个细节需要注意官网主页默认推荐的是Fiddler EverywhereClassic的下载入口藏得比较深。你可以直接在官网页面底部找到Fiddler Classic的专属入口或者直接搜索“Fiddler Classic download”进入对应的下载页面。2.2 安装过程中的关键选项和注意事项拿到安装包后双击运行安装过程基本是傻瓜式的“下一步”操作但有三个选项需要额外留意第一安装路径。建议不要使用默认的Program Files目录而是在D盘或E盘单独建一个Fiddler的文件夹。这不是矫情因为后续你会经常修改配置文件、替换汉化文件普通用户权限在Program Files下操作经常被拒绝放在非系统盘能少很多烦心事。第二安装类型选择。安装过程中会问你是给当前用户装还是给所有用户装默认选项一般就能满足需求直接默认即可不用特殊处理。第三首次启动时的更新提示。Fiddler首次启动后会检查更新并弹窗提示下载新版本如果你不想等可以在这个弹窗里选择稍后处理。不过这个更新选项最好保留因为Classic版本虽然官方已停止更新但偶尔还是会推送证书库之类的安全更新。安装完成后桌面会生成Fiddler的图标图标是一只猫头的剪影。如果你看到的图标不是这个那你装的可能是Everywhere版本建议返回上一步重新确认。2.3 汉化操作与常见汉化包的坑很多人在安装完Fiddler之后做的第一件事不是抓包而是找汉化包因为Fiddler的原生界面是全英文的。其实我的建议是如果你有一定的英文基础先用英文界面熟悉一下这个工具的核心菜单位置因为后续你上网查资料、看教程用的基本都是英文术语把“Inspectors”、“AutoResponder”、“Filters”这几个关键单词搞熟比装汉化包更有价值。不过如果你想装汉化包我的实操经验是这样的先从网上下载汉化包注意核对版本号Fiddler Classic的版本号一般显示在“Help - About”里汉化包必须和版本号严格对应否则会出现“部分汉化不完整”或者“菜单错位”的情况。汉化包的安装方式有两种一种是替换文件把汉化包里的文件直接覆盖到Fiddler安装目录的同名文件另一种是运行自动安装脚本脚本会自动帮你完成替换。我个人更推荐前者因为手动替换你能清楚地知道改了哪些文件出问题了也能还原。这里有一个比较常见的坑汉化后部分菜单项会变成空白或者点击后无响应。这大概率是因为汉化包版本不对。解决方式也很简单去下载和当前版本完全匹配的汉化包重新覆盖一遍。但如果汉化包覆盖后Fiddler直接打不开了就用原始的安装包覆盖回去恢复到英文界面别在这一步纠结太久。3. 首次启动与核心配置把抓包能力完全释放3.1 开启系统代理、关闭抓包干扰项的设置安装好Fiddler后默认情况下它并不会立刻开始抓取所有流量。首次启动Fiddler会自动配置系统代理此时打开IE或Edge浏览器访问网页大概率能在Fiddler主界面看到一堆http的请求记录。但你会发现很多依赖本地服务或内部环境的请求可能抓不到或者代理配置后有些网站打不开了这就是核心配置还没调好的表现。打开Fiddler后先到“Tools - Options”里走一遍Connections选项卡确认“Allow remote computers to connect”这个选项。如果你的电脑要作为抓包机让手机或其他设备通过它来抓包就必须勾选这个选项。监听端口默认是8888除非端口冲突否则建议保持默认。HTTPS选项卡勾选“Capture HTTPS CONNECTs”和“Decrypt HTTPS traffic”。勾选后会弹出证书安装的提示这个证书是Fiddler用来解密HTTPS流量用的点击确认安装即可。后面我会详细讲证书的问题这是新手最容易卡住的地方。Gateway选项卡这里保持默认不需要手动设置上游代理。做完这些基础配置后Fiddler才是真正可用的状态。此时你随便刷新一个网站页面会看到左侧的会话列表Web Sessions里出现大量的请求记录每条记录包含了请求的Host、URL、状态码、协议、耗时等信息。你可能会发现一个问题——默认抓包会把浏览器后台的各种请求也一并抓进来包括那些你不关心的静态资源、统计请求、广告请求等整个列表非常杂乱。这个不用急后面用过滤器Filters就能解决。3.2 HTTPS解密证书的原理和安装细节Fiddler最核心的能力就是能解密HTTPS流量这同时也是新手最容易踩坑的地方。它的原理是中间人代理Fiddler在本地生成一个根证书当你访问HTTPS站点时Fiddler用这个根证书动态签发一个对应域名的证书给你浏览器浏览器校验这个证书时会一直追溯到那个根证书而你在安装Fiddler根证书时就已经在系统里把它设为受信任的根证书了所以浏览器会认为这个证书是合法的。听起来很绕但操作上只需要记住一件事要让Fiddler能解密HTTPS就必须在“Tools - Options - HTTPS”里勾选“Decrypt HTTPS traffic”并把Fiddler的根证书安装到系统“受信任的根证书颁发机构”里。证书安装完成后重启一下Fiddler。然后访问任意一个HTTPS网站刷新页面左侧的会话列表里应该能出现带着锁形图标或绿色标记的请求记录。点开任何一条HTTPS请求右侧切换到“Inspectors”面板会看到“TextView”、“Headers”、“Raw”等选项卡这里就能看清这条请求的完整内容了。有一个问题是新手经常遇到的勾选了解密HTTPS后Chrome浏览器可能仍会提示“您的连接不是私密连接”。这通常是因为你没有把证书装到“受信任的根证书颁发机构”或者Fiddler根证书在生成时出了问题。解决方式是到“Tools - Options - HTTPS”里点击“Actions - Reset All Certificates”把旧证书清掉重新生成然后再重新安装信任。3.3 过滤器和会话列表的快速上手Fiddler默认把所有经过代理的请求都记录下来如果不加任何筛选你抓个淘宝首页能抓到两三百条请求绝大多数都是图片、JS脚本、CSS样式、统计埋点。这时候如果要从这么多请求里找到那个关键的接口效率会非常低。Fiddler提供了一个非常好用的工具——过滤器Filters。默认情况下Filters是关闭的你需要点击右下角的“Filters”选项卡勾选“Use Filters”然后设置过滤条件。最常用的过滤方式有三种按主机过滤在“Host”区域选择“Show only the following Hosts”填入你要抓的域名比如api.example.com。这样列表里就只显示来自这个域名的请求。按内容类型过滤在“Request Headers”区域可以勾选“Show only if URL contains”填关键字比如/api/或者填login快速定位登录相关的请求。隐藏静态资源在“Request Headers”区域有多个复选框勾选“Hide if URL contains”并填入.js|.css|.png|.jpg|.gif|.ico这类静态资源后缀就能把这些噪音请求过滤掉。过滤的优先级是高于会话列表的也就是说你设置完过滤条件左侧列表会实时刷新已经抓到的历史会话也会被重新筛选。这个细节很实用。还有一个小技巧过滤器设置完之后记得勾选“Use Filters”旁边的“1234”图标要求是选中工具的列表否则有些版本下过滤不会生效。4. 实战抓包抓电脑端和手机App的完整流程4.1 电脑端浏览器抓包的必经步骤Fiddler装好、配置好证书回到电脑端抓浏览器请求这个环节其实已经不需要额外操作了。打开浏览器随便访问一个网站左侧会话列表就会自动滚动实时显示每一个请求。但我发现很多新手有一个误解以为装了Fiddler之后只有打开Fiddler才抓包关掉它就不抓了。实际不是关掉Fiddler后系统代理会被Fiddler自动恢复所以浏览器的网络会自动恢复正常。Fiddler正常退出时会清理代理设置正常关闭没有影响。但如果Fiddler异常崩溃或者被任务管理器强制结束系统代理就可能残留在8888端口导致后续浏览器无法上网。碰到这种情况去Windows的“设置 - 网络和Internet - 代理”里把“使用代理服务器”开关关闭即可。这是一个很常见、但极少被提及的坑。浏览器抓包的另外一个细节是清缓存。你打开一个本地开发环境页面请求发出去后页面上的数据其实是从浏览器缓存里读出来的Fiddler里根本看不到任何请求。这时候要么按F12打开开发者工具勾选“Disable cache”要么在Fiddler里勾选“Tools - Options - HTTP - Disable Caching”强制关闭缓存确保请求能真实发出去让你抓到。4.2 手机抓包的两大核心操作代理设置与证书安装手机抓包是使用Fiddler的主力场景因为很多接口是App内部发的不抓包根本不知道App干了什么。抓手机包的思路和电脑端类似手机连上电脑所在的同一个局域网然后把手机的网络代理指向电脑的IP和Fiddler的监听端口。操作步骤可以分为三步第一步查看电脑的局域网IP。在命令行里输入ipconfig找到无线网卡或以太网卡的IPv4地址比如192.168.1.5。在Fiddler的“Connections”选项卡里确认“Allow remote computers to connect”是勾选状态。Fiddler左上角会显示一个电脑图标鼠标悬浮上去能看到当前电脑的IP和端口这个信息可以帮助你确认监听正常。第二步手机设置代理。以iPhone为例到“设置 - 无线局域网”找到当前连接的WiFi点击右侧的“i”图标拉到底部选择“配置代理”改为“手动”服务器填电脑的IP端口填8888。Android手机的操作类似在WiFi设置里找到“修改网络”或“代理”选项填入同样的信息。设置完成后手机上随便打开一个App刷一刷Fiddler里应该就能看到来自手机App的请求了。第三步安装并信任证书。上面步骤只能抓HTTP请求如果你想抓HTTPS请求手机上还得安装并信任Fiddler的根证书。用手机浏览器访问http://电脑IP:8888页面上会有一个“FiddlerRoot certificate”的下载链接点击下载并安装。注意不同系统的证书信任机制不太一样。iOS上安装完证书之后还要到“设置 - 通用 - 关于本机 - 证书信任设置”里把Fiddler根证书的开关打开Android 7.0以上的系统默认不信任用户安装的证书App自身不走系统信任链所以可能抓不到HTTPS这种情况需要手机Root并绕过证书校验或者使用支持SSL Pinning的测试方案。这部分内容对新手来说可能有点深了但至少要知道有这回事不然遇到死活抓不到包的情况时找不到原因。4.3 弱网测试的配置方法和参数选择弱网测试是移动端测试的高频需求Fiddler内置了模拟网络速度的功能这也是它在这个场景里比Chrome DevTools更方便的地方。开启方式非常直接在Fiddler菜单栏找到“Rules - Performances - Simulate Modem Speeds”勾选这项之后所有经过Fiddler的请求都会被延时并降低速度模拟出2G/3G网络的效果。之所以叫“Modem Speeds”是因为这个模拟项参考了早期拨号上网的速率下载速度大概在56kbps级别。但这个默认模拟效果其实有点过头实际测试中我们经常需要自定义速度参数。做法是到“Rules - Customize Rules”里打开脚本编辑窗口找到OnBeforeRequest函数里关于SimulateModem的延迟设置以及OnBeforeResponse里的延迟这两个位置分别控制上行和下行的延迟时间。你可以修改delay变量的值来调整延迟毫秒数比如改成300毫秒模拟弱3G网络改成1000毫秒模拟极端弱网环境。修改前建议先按CtrlShiftF搜索关键字“simulatelatency”找到后直接在数字上改就行。改完保存脚本Fiddler会即时生效不需要重启。这里分享一个经验如果只想单独模拟网络延迟而保持带宽不变可以只修改延迟逻辑而不去动带宽限制的代码最终效果会更贴近真实场景。弱网测试的核心关注点有三项页面是否会出现长时间白屏、接口超时后是否有提示和重试机制、弱网下是否有崩溃或内存溢出。这些场景用Fiddler模拟时要记得每测完一个用例就重置代理不然会把弱网状态带到下一个用例中影响测试结果。5. 高频问题与排查指南做了一张速查表把新手经常遇到的问题和对应的解决方式整理在一起方便随时查阅。问题现象可能原因解决方式Fiddler启动后浏览器无法打开任何网页Fiddler非正常退出系统代理残留到系统代理设置中关闭代理或重启Fiddler后再退出一次HTTPS站点的请求显示为灰色隧道Tunnel To未解密HTTPS证书未安装或未信任勾选“Decrypt HTTPS traffic”重新安装并信任根证书浏览器提示证书无效或不在信任列表证书未装到受信任根证书颁发机构重新“Reset All Certificates”再手动安装信手机连上代理后App无法上网或显示网络异常证书未安装或App校验了SSL证书安装并信任根证书Root后的设备可尝试安装Xposed模块绕过证书校验Fiddler里抓不到请求系统代理未开启或浏览器走直连检查Fiddler是否正常运行确认“Tools - Options - Connections - Allow remote computers”勾选状态请求乱码显示不出来响应体是压缩格式gzip/br到“Tools - Options - HTTP”里勾选“Decode compressed HTTP responses”只抓到了Tunnel To请求看不到具体的requestHTTPS CONNECTs加密隧道行为未解密检查是否勾选了“Capture HTTPS CONNECTs”并在系统证书库中安装了证书Filters设置了但没生效过滤器需要勾选“Use Filters”确保Filters选项卡中“Use Filters”复选框是勾选状态上面列表中“请求乱码”的问题也值得展开说下。Fiddler抓取到某些接口响应时如果你看到返回内容是一串类似1f 8b 08 00的十六进制数据并且右侧的TextView里全是乱码这个响应大概率是Gzip压缩过的。此时去“Tools - Options - HTTP”里勾选“Decode compressed HTTP responses”再把抓到的那条请求双击重新看一下响应内容通常就能正常显示了。另一个高频疑问是“Tunnel To”到底代表什么。很多新手看到会话列表里出现一大片“Tunnel To xxx.com:443”以为抓包失败其实不是。这个条目类型表示客户端正在通过Fiddler向目标服务器建立HTTPS隧道此时Fiddler还没有机会看到内部的HTTP请求。当你开启了HTTPS解密后这些隧道请求才会被继续解析展开成真正可见的HTTP请求。如果你没有解密HTTPS就会一直看到这种隧道条目这是非常正常的现象。6. 关于Fiddler的一些个人实操体会使用Fiddler这几年我最大的感触是工具本身很简单但很多人死在第一步的安装配置上。证书相关的问题是最容易让人抓狂的。有一次我帮同事排查手机抓包问题他手机浏览器已经安装了证书Fiddler的列表里也出现了来自手机的请求但就是看不到HTTPS的内容全是灰色Tunnel。折腾了半小时最后发现是他的Android手机系统版本在升级后默认不信任用户证书这种兼容性问题光靠操作层面的调整基本无解只能换方案。如果你是在2024年以后才开始接触Android抓包的先确认手机系统版本和App的网络安全配置再去搞证书能省下大量时间。另外一个心得是Fiddler不要长期挂着。它毕竟是一个中间代理即便不主动抓包进程运行时会占用部分系统资源加了过滤器之后性能也会受影响。我现在的习惯是每天固定时段做联调和测试时才启动Fiddler其他时间一律保持关闭状态这样既能保障日常浏览速度也避免代理残留在系统里。最后再分享一个小技巧在生产环境定位问题时Fiddler经常不适合直接用。因为开启解密功能会影响HTTPS证书链可能会引发线上系统的安全问题。我更推荐在临时搭建的联调环境或测试环境里使用把问题复现出来再抓包然后用Fiddler的“File - Save - All Sessions”把所有会话存下来发给后端同事分析。这个存档能力在实际工作中使用频率非常高比截图和文字描述高效太多了。Fiddler是一个越用越顺手的工具前期把安装、证书、过滤这三个基础功打牢固之后后面无论是接口联调、弱网测试还是分析第三方App的交互逻辑都会一路顺畅。希望这篇记录能帮你顺利度过最磨人的起步阶段。本文还有配套的精品资源点击获取
返回列表