Fiddler抓包实战:从代理原理到HTTPS解密与弱网测试 📅 发布时间:2026/9/7 5:31:26 👁 浏览次数: 简介Fiddler绿色中文版v5.0是一款面向Web开发与调试人员的抓包代理工具免安装即可使用支持IE、Chrome、Firefox、Safari、Opera等主流浏览器可清晰监测浏览器与服务器之间的HTTP/HTTPS请求响应过程帮助定位接口异常、分析数据包与排查网络问题。压缩包共89个文件大小6.54MB其中35个dll提供核心运行库与扩展功能12个exe及辅助工具用于证书配置、进程管理等dat文件内置常用响应模板pdb文件保留调试符号便于二次开发或深入排查。目前已有2484人学习下载。资源保持Fiddler完整功能同时省去安装步骤适合前端、后端及测试人员在日常联调与抓包分析场景中快速使用。内置的ResponseTemplates与Scripts目录还可辅助自定义响应、编写自动化规则进一步提升调试效率。 Fiddler这个工具做开发的人早晚都会遇到。不论你是前端、后端、测试还是运维排查个接口问题、看个请求返回值、模拟个弱网环境都绕不开它。我最早接触Fiddler是为了看一个Web项目的Ajax请求到底返回了什么折腾了一下午的浏览器F12怎么看都觉得不够痛快后来换成Fiddler瞬间就通透了。这么多年下来我已经把Fiddler当成了自己电脑里的常驻工具市面上关于它的教程零零散散但大多只讲了某个点没有形成一套完整的实操路径所以我根据自己的使用经验从安装配置到手机抓包从接口调试到弱网测试把Fiddler绿色中文版最常用的这套玩法完整梳理一遍看完可以直接照着操作。1. Fiddler到底在做什么你为什么要学会它1.1 一句话讲清楚Fiddler的原理Fiddler本质上是一个跑在你自己电脑上的代理服务。它启动之后会监听本机的8888端口之后你电脑上发出的HTTP和HTTPS请求都会默认先经过它再由它转发到服务器。服务器响应回来的时候也要先经过Fiddler再返回到你的客户端。这个过程就像快递中转站你的包裹不是直接从A送到B而是必须经过一个你自己能随时拆开检查的中转点。你可能会问为什么这些请求会老老实实地经过Fiddler因为Fiddler会在系统层面帮你设置一个本地代理127.0.0.1:8888而绝大多数的Windows应用和浏览器都遵循系统代理的设置。所以我们常说开着Fiddler就能抓包背后其实是代理自动生效了。理解了这一点你也就知道为什么有时候Fiddler没退出浏览器就上不了网——因为这个中转站突然停了数据没人转发了。1.2 为什么不用浏览器F12也不用Wireshark很多新手都会困惑浏览器自带开发者工具F12不也能看网络请求吗为什么还要单独装个Fiddler答案是F12只能看到浏览器自身发出的请求而Fiddler能看到这台电脑上所有走HTTP协议程序的请求。比如桌面客户端、小程序调试工具、模拟器里的APP这些流量F12统统看不到但在Fiddler里全都一览无余。再看Wireshark它确实强大但它是在网卡层面做数据包分析的输出的数据结构比较底层说句实话日常调试HTTP接口用它就是高射炮打蚊子——大材小用而且上手门槛高。Fiddler在HTTP/HTTPS这一层做了非常友好的解析直接列出URL、状态码、耗时、请求头、响应体几乎不需要额外学习成本。简单整理一下几个工具的差别工具抓包层级上手难度是否支持修改请求适用场景浏览器F12HTTP层仅浏览器低支持但不灵活纯Web前端调试Wireshark网卡数据包层高不太方便网络协议分析FiddlerHTTP/HTTPS层中非常灵活全端HTTP调试、移动端抓包、弱网模拟如果你是做接口联调、测试环境排查、APP调试这一类工作Fiddler就是这三个选项里性价比最高的一个。2. 绿色中文版v5.0的安装与第一道配置2.1 绿色版是什么为什么选它所谓绿色版就是指软件免安装解压之后直接运行不往系统注册表里写东西也不会偷偷在后台塞服务。我平时推荐用绿色版的理由很简单一是方便携带放U盘或者网盘里换电脑随时能用二是避免卸载不干净的问题安装版有时卸载完还会残留注册表项看着心里别扭。Fiddler Classic的版本号一直停留在5.0.x系列所以你看到的Fiddler绿色中文版v5.0实际就是Fiddler Classic 5.0的整合打包版集成了汉化资源文件和必要的运行库。这里要特别说明Fiddler在新版本上已经推出了Fiddler Everywhere界面更现代、功能也更丰富但它是付费授权模式而且某些操作逻辑反而不如Classic顺手。对于绝大多数调试场景Classic完全够用轻量、稳定配合汉化包就是中文界面。下载和使用的过程有几个地方值得提醒建议从比较可信的软件站或程序员常用工具聚合站下载下载后如果压缩包还附带安装说明按照说明操作即可。个别杀毒软件可能对汉化补丁报毒这属于比较常见的误报情况。出现这类现象时不要急着运行可以换一个来源重下。绿色版解压后建议把整个文件夹放到一个固定位置比如D盘根目录或者工具目录不要放在系统盘和用户临时目录里否则后续保存脚本文件、证书导出会受权限限制。2.2 HTTPS解密配置这一步不做等于白抓Fiddler默认能直接抓到HTTP请求但HTTPS请求如果不做额外配置在会话列表里会显示成一把小锁点开内容全是加密乱码什么都看不到。每天都有大量人卡在这一步。要解密HTTPS本质上是要建立中间人信任Fiddler自己生成一个根证书并让你把这个根证书安装到系统的受信任根证书列表里。之后Fiddler与服务器之间建立真正的加密连接而你的客户端与Fiddler之间建立另一个由根证书签发的加密连接。打开菜单栏的Tools Options HTTPS勾选Decrypt HTTPS traffic按提示安装根证书即可操作路径如下打开Fiddler进入Tools工具菜单选择Options选项切到HTTPS标签页勾选Capture CONNECTs和Decrypt HTTPS traffic弹出证书安装提示一路点是或者Trust完成确认。我遇到过多次安装完证书仍然抓不到HTTPS的情况绝大多数原因是只勾了选项但证书安装弹窗被忽略了。证书没装上中间人信任关系就不成立自然解不开加密流量。如果你使用的是绿色汉化版菜单名称显示的是中文逻辑是一样的找到解密HTTPS通信并勾选即可。3. 抓包界面的核心操作从认字段到改请求3.1 看清会话列表和Inspectors面板Fiddler启动后中间那块占了大半面积的区域就是会话列表。每一行代表一个HTTP请求默认按时间顺序排列。常用字段有#(序号)、Result(状态码)、Protocol(协议)、Host(域名)、URL(请求路径)、Body(请求体大小)、Caching、Content-Type等。双击任意一行就能在右侧或底部的Inspectors(检查器)面板里看到这个请求的详细内容包括请求头、请求体、响应头、响应体。新手看这个界面最容易不知所措不知道从哪里下手。我建议你固定一个操作习惯先在左侧会话列表点选一个请求然后在Inspectors面板里先看上方的请求部分再看下方的响应部分把请求参数和返回值对应起来看。用久了你会发现排查前端页面问题80%的时间都在做这一件事确认前端有没有把参数发对后端有没有把数据返对。界面最下方还有一个命令行QuickExec输入命令可以快速过滤会话例如直接输入?baidu.com回车会话列表就只显示URL中包含baidu.com的请求非常方便。这个命令行我几乎每天都在用。3.2 设置断点修改请求和响应的核心神技Fiddler最让人上头的功能就是断点。先说最简单的全局断点在Fiddler界面按F11在左侧请求列表最下方会出现一条红色的提示Request breakpoint...,此时你发出的任何HTTP请求都会先被暂停不发送到服务器你在Inspectors里修改完请求参数后点击Run to Completion放行请求才会真正发出去。实际使用中全局断点用得少因为太暴力每个请求都断一次会严重拖慢效率。更多时候我只对响应打断点操作方法是在菜单栏的Rules(规则)里找到Automatic Breakpoints(自动断点)选择After Responses(响应之后)。这样当服务器返回数据时Fiddler会先接住响应等你在Inspectors里改完响应内容再放给客户端。前端联调阶段我经常用这个功能把接口返回值改成各种极端字段来验证前端页面的容错情况不需要后端做任何配合测试效率直线上升。断点功能在绿色汉化版里的菜单名字可能略有差异但基本路径都是规则 自动断点 选择断点时机不要被界面差异影响。3.3 用Composer从零构造一个请求Composer是Fiddler右上角的标签页它的作用是手工构造一个HTTP请求并发送不需要经过任何页面。接口联调的时候我经常用它来测一下如果我把某个参数改成这个值后端会怎么处理操作步骤很简单进入Composer标签页选择请求方式比如GET或POST填入完整的URL再填写Headers和Body。点击右上角的Execute(执行)按钮请求会立即发出返回结果会出现在左侧会话列表中点开即可查看响应内容。使用Composer可以有效测接口的边界参数而不必每次都去页面上点来点去。有一点要提醒勾选了HTTPS解密后Composer里填写的HTTPS地址也能正常抓取和解密这个问题曾经困扰过我很久一度以为Composer不支持加密请求后来发现只是证书信任的问题。3.4 弱网测试模拟2G/3G的卡顿体验弱网测试应该是测试人员最熟悉的需求Fiddler默认自带了一个模拟调制解调器的功能。在Rules(规则)菜单中勾选Performance(性能) Simulate Modem Speeds(模拟调制解调器速度)就相当于给所有请求加了一个固定延迟和低速限制页面瞬间就变卡了可以直观感受网络差时的加载状态。但这个默认速度只能模拟一种固定情况觉得不够用的话可以自己调整参数。Fiddler允许通过脚本配置弱网延迟点击菜单FiddlerScript打开脚本编辑器搜索OnBeforeRequest在里面加入一段自定义延迟保存后立即生效if (m_SimulateModem) { // 上行延迟单位是毫秒数值越大越慢 oSession[request-trickle-delay] 300; // 下行延迟模拟服务器返回慢 oSession[response-trickle-delay] 150; }这段代码的意思很好理解模拟拨号网络时每上传一个数据块延迟300毫秒每接收一个数据块延迟150毫秒。想要更极端的弱网环境把数值调大就行。修改完成后重新勾选Simulate Modem Speeds选项新参数就会生效。实测下来这个方式模拟APP弱网表现比真机开飞行模式还稳定因为每一秒的网络波动都是一致的测试结果更有可比性。4. 手机抓包和模拟器配置从APP拿数据的关键4.1 手机抓包三步就能跑起来抓手机APP的流量是Fiddler一个非常高频的使用场景。很多人在这一步被劝退但实际上操作逻辑很简单让手机通过Fiddler代理发出请求并信任Fiddler的根证书。前提条件是你的手机和电脑连接同一个局域网电脑最好用网线连接如果是无线网环境偶尔会有隔离问题导致手机连不上电脑遇到再做调整。然后按下面三步走查看电脑IP。在Fiddler里点击菜单栏的Online(在线)或直接在命令行输入ipconfig找到当前网卡的IPv4地址记下来。开启手机代理。在手机WiFi设置里找到当前连接的无线网进入代理设置选择手动服务器填电脑IP地址端口填8888。安装根证书。在手机浏览器地址栏访问http://电脑IP:8888页面会显示Fiddler的证书下载页面点击FiddlerRoot certificate下载并安装。证书安装完成后重新打开APP在Fiddler会话列表里就能看到来自手机的请求了。这里有个常见的坑Android 7.0及以上版本部分APP默认不信任用户安装的证书所以会抓不到这些APP的HTTPS流量。这属于正常的系统安全机制通常你需要调试的是自己开发的APP在项目里配置信任用户证书或使用debug版本的APP就可以解决。4.2 雷电模拟器和Fiddler联调很多做移动端开发或测试的同学习惯用雷电模拟器在模拟器里调试APP同样可以配合Fiddler抓包。模拟器本质上就是一个运行在电脑上的Android系统所以配置思路和手机一样只是入口不同。在雷电模拟器里先打开设置里的WiFi长按当前网络进入修改网络把代理设置成手动主机名填电脑IP端口填8888。然后和手机一样在模拟器内置浏览器里访问http://电脑IP:8888下载证书。做完这两步后模拟器里的APP流量就能被Fiddler抓到了。在网络模拟这块有一个细节我踩过多次坑后总结出来如果模拟器提示无法连接到网络先别急着检查APP先用模拟器自带的浏览器随便开个网页能打开就说明代理配置和Fiddler服务本身没问题问题在APP自身打不开则说明代理配置有误或电脑防火墙拦截了8888端口的入站连接。按这个思路排查能节省大量时间。5. 常见问题排查和避坑建议5.1 高频问题的排查速查表从我的实际经验和同事交流的情况来看Fiddler使用过程中遇到的问题高度集中在几个方面我整理成一张表遇到问题直接对号入座问题现象可能原因解决办法开启Fiddler后所有浏览器都打不开网页Fiddler作为系统代理在运行但监听服务异常退出Fiddler看是否能恢复若恢复则重启Fiddler检查端口8888是否被占用能抓到HTTP请求但HTTPS请求全是CONNECT且无内容未安装根证书或未勾选HTTPS解密在Options HTTPS中重新勾选Decrypt HTTPS traffic并安装证书手机可以上网但Fiddler看不到手机请求手机代理没配对或防火墙拦了端口确认电脑IP和端口完整填写临时关闭系统防火墙或在入站规则中允许8888端口APP打开提示证书验证失败APP自身校验证书不信任Fiddler根证书仅调试自己开发的APP并加入信任证书配置会话列表出现大量无关请求未设置过滤条件系统所有HTTP请求都被捕获在Filters标签勾选Use Filters按域名或进程过滤5.2 善用过滤器保住你的精力抓包最怕什么最怕开启后会话列表里几百行不相关请求乱飞。就算不密集抓包仅仅是开着Fiddler看网页流量也会以肉眼可见的速度刷屏。默认情况下你必须自己动手设置过滤条件否则找一条目标请求就像大海捞针。在Fiddler右侧的Filters(过滤器)标签页勾选Use Filters然后在Host区域选择Show only the following hosts并填上目标域名点一下操作就会立即生效。经过这一步会话列表里只剩下你需要关注的域名请求。对于我这个日常做接口调试的人来说这个设置从第一天用Fiddler开始就没关过。结合前文提到的QuickExec命令行过滤一静一动基本可以做到快速精准定位。5.3 工具是利器但也要知道边界最后想多说一句关于工具本身的话。Fiddler是一个开发调试和分析工具它的价值在于让你看明白自己电脑或者自己设备上发出的请求理解前端、后端、APP之间的数据交互。我在日常工作中用它排查自己开发的系统问题以及测试自己负责的应用性能这也应当是使用它的基本方式。不对别人开发的程序或者未授权的网络流量进行抓包分析既是职业道德也是法律底线。工具本身没有立场但在谁手里、用来干什么决定了它的价值。写在最后一点个人经验用了这么多年Fiddler我最大的体会是这类代理抓包工具真正难的地方不在于软件本身的按钮不多而在于很多人没有建立起客户端到服务器中间有一层看不见的代理这个概念。一旦你理解了代理拦截、证书信任、断点修改这三条主线Fiddler就再也不是黑盒工具了。再补充一个小技巧通过QuickExec命令行输入Host可以快速过滤出来自指定域名、指定客户端的会话比如输入baidu.com就能只看百度相关请求这个比点击鼠标找过滤器效率高多了。刚开始用Fiddler时遇到问题别慌先看代理有没有生效再看证书有没有装对一大半问题都能自己解决。希望这篇经验梳理能让你在抓包调试的路上少走一些弯路。本文还有配套的精品资源点击获取