快速上手Fiddler

Fiddler的安装

直接从Fiddler | Web Debugging Proxy and Troubleshooting Solutions (telerik.com)官方下载安装Fiddler,选择适合自己操作系统的版本即可。

这篇文档使用的是Windows上的Fiddler Classic版本。

快速上手抓包

Fiddler的使用非常的简单,对于市面上的绝大部分浏览器,只需要打开 File > Capture Traffic就可以,也可以使用快捷键F12,或者点击左下角的来切换是否抓取目前浏览器上的数据。对于Firefox则需要一些额外的配置,Fiddler支持使用 FiddlerHook来抓取数据,或者也可以通过设置浏览器的SystemProxy来抓取数据。

在开始抓包之前,为了保证所有的请求都被发送和被抓取到,应该清除本地的浏览器缓存,尤其是”Cached images and files”或者cookies,浏览器缓存通常可以帮助网站更快地加载,但有时它可能阻止你看到网页的最新版本,同时也会导致某些请求不被发送。在某些情况下,旧的或损坏的缓存甚至可能导致网页加载不正确或完全无法加载。

Fiddler默认不会捕获和解密安全的HTTPS流量。若要捕获通过HTTPS协议发送的数据,需要设置启用HTTPS流量解密。

启用HTTPS流量解密
  1. 点击Tools > Options > HTTPS.

  2. 勾选Decrypt HTTPS Traffic

这里还有一些其他的配置,比如抓取的网络请求类型,是否忽略服务器证书错误,不解密指定主机的流量。、

Decrypt HTTPS traffic中的选项说明:

1
2
3
4
5
6
7
8
from all processes : 
抓取所有的 https 程序, 包括电脑程序和手机APP。
from browsers only :
只抓取浏览器中的https请求。
from non-browsers only :
只抓取除了浏览器之外的所有https请求。
from remote clients only:
只抓取远程的客户端的https请求,就是只抓取手机APP上的https请求。

然后,我们需要生成证书用于加密和解密,这样Fiddler才能够解析HTTPS请求里的内容。

在Actions里选择Trust Root Certificate,接下来Fiddler会自动把证书添加到系统信任证书里。或者也可以选择导出证书到桌面,然后导入到需要进行抓包的浏览器中。以Edge浏览器为例,首先Export Root Certificate to Desktop,然后Settings > Privacy > Security > Manage certificates在弹出的证书管理窗口中选择Trusted Root Certifications Authorities标签页,导入刚刚导出到桌面的证书即可。

接下来Fiddler应该就可以正常抓取HTTPS流量并且正常解析了。

使用界面

界面左侧为Web Sessions List,在这里我们可以看到每个请求的ID号、HTTP状态码、协议、主机名、请求资源位置、请求大小、缓存过期时间或缓存值、请求响应的类型、发送请求的进程ID、自定义注释以及Web会话的任何自定义列。

点击任意Web Session,右侧是详情和数据统计面板。

  • Statistics是关于HTTP请求的性能(例如发送/接受字节数,发送/接收时间,还有粗略统计世界各地访问该服务器所花费的时间)以及数据分析

  • Inspectors用于查看会话的内容,上半部分是请求的内容,下半部分是响应的内容,提供headers、textview、hexview,Raw等多种方式查看单条http请求的请求报文的信息

这时候我们去访问rule里这个链接,就会返回被劫持之后的结果。

  • Composer自定义请求发送服务器,Parsed模式下你只需要提供简单的URLS地址即可,也可以直接把左侧Sessions List里的session拖动到这里从而构成请求,点击Execute

在左侧就可以看到这个请求

  • Fiddler Orchestra

    这是一个用于监听抓取APP的插件,原理是让APP连接到Orchestra服务后,Orchestra在正常转发流量的同时再复制一份流量给Fiddler,就可以让Fiddler抓取到相应的流量。

  • Fiddler Script 包含了一个脚本文件可以自动修改Http Request 和Response.这样我们就不需要手动地下”断点”去修改了,该脚本中提供了许多Hook以及在指定的事件节点对网络上的请求进行修改的方法。修改细则可以看Understanding FiddlerScript (telerik.com)

  • Log 运行的log。

  • Filters 过滤规则,通过设置过滤规则来过滤所需的http请求,最常用的过滤条件:Zone和Host。

  • Timeline 请求响应时间,在左侧会话窗口点击一个或多个请求,Timeline 便会可视化指定内容从服务端传输到客户端的时间。

断点功能

在这里通过点击可以设置断点,支持截获全部请求、截获全部请求响应。也可以使用QuickExec命令设置断点,更灵活一些。

通过断点我们可以在Sessions List中选择被中断的会话,然后对其中的内容进行修改,比如Forms等。

Fiddler HTTPS 抓包原理

Fiddler 是浏览器的服务器,而 Fiddler 是服务器的客户端。在没有 Fiddler 的情况下,浏览器拥有的公开证书来自服务器,服务器保存私有证书。服务器使用私有证书对数据进行加密,浏览器使用公有证书对数据解密。

我们在中间添加了一个 Fiddler 作为代理,那么此时客户端拥有的公共证书应该来自 Fiddler,而 Fiddler 拥有私有证书的同时,还拥有来自服务器的公共证书。浏览器和服务器交互如下:

  • 请求:浏览器使用 Fiddler 公共证书将数据加密,发送给 Fiddler。Fiddler 使用私有证书解密,然后将内容采用服务器的公共证书再次加密,发送给服务器,服务器使用自己的私有证书进行解密。

  • 响应:服务器使用私有证书对响应数据加密,然后发送给 Fiddler。Fiddler 将收到的数据使用服务器的公共证书解密,然后再次使用自己的私有证书加密,将再次加密后的数据发送为浏览器,浏览器收到后使用 Fiddler 的公共证书进行解密,将解密的内容最终展现给用户。

与Wireshark的比较

Wireshark对底层协议的支持更好,一到七层都能抓,对于协议细节内容的Debug更有帮助,每个数据包就是一个完整的帧,同时可以结合tcpdump工具去分析服务器之间的通讯。但是wireshark解密HTTPS数据包比较麻烦。

Fiddler主要使用场景还是偏向业务层面,对于移动端的配置也比较方便,一般是用于接口测试。


快速上手Fiddler
https://douyushinyruo.github.io/shinyruotechtips/2026/02/5a9eb75bd0ca/
作者
DouyuShinyruo
发布于
2026年2月4日
许可协议