Fiddler Everywhere Watcher(监听器)终极教程
目录
- 第一部分:基础入门
- 什么是 Watcher?
- 启动和配置监听
- 认识 Watcher 界面
- 第二部分:核心功能详解
- 会话列表的交互操作
- 过滤器:从海量请求中精准定位
- 搜索:快速找到目标
- 第三部分:进阶技巧与实战
- 使用 Composer(请求构建器)修改和重发请求
- 保存和加载会话列表
- 性能分析(Timing 标签页)
- 第四部分:常见问题与最佳实践
- 为什么我看不到请求?
- 如何避免抓包本地资源?
- 如何只抓取特定网站的请求?
第一部分:基础入门
1 什么是 Watcher?
在 Fiddler Everywhere 中,Watcher 是你抓取到的所有网络请求的“容器”或“列表”,它就像一个交通监控中心,实时显示你的计算机(或配置了代理的设备)与互联网之间所有的 HTTP/HTTPS 流量。

核心作用:
- 查看流量:让你“看见”应用程序背后发生的所有网络请求。
- 分析问题:通过检查请求和响应,定位 API 错误、性能瓶颈、数据加载失败等问题。
- 调试交互:理解前端与后端是如何通过 API 进行数据交换的。
2 启动和配置监听
Fiddler Everywhere 安装并启动后,默认情况下是开启监听的,你可以在主界面的左上角看到监听状态。
- 开启监听:点击开关,使其变为蓝色,Fiddler 会在你的设备上设置一个系统代理,所有通过系统代理发出的网络流量都会被 Fiddler 拦截并显示在 Watcher 中。
- 暂停监听:点击开关,使其变为灰色,Fiddler 会移除系统代理,网络流量将恢复正常,不会被 Fiddler 捕获。
重要提示:Fiddler Everywhere 默认只监听 0.0.1 (localhost),如果你需要抓取局域网内其他设备(如手机、平板)的流量,你需要在 Settings -> Connections 中勾选 Allow remote computers to connect,并记录下显示的 IP 地址和端口(默认 8888)。
3 认识 Watcher 界面
Watcher 位于 Fiddler 主界面的左侧,是整个应用的核心区域。

它主要由以下几个部分组成:
-
工具栏:
- 暂停/开始监听:控制抓包的开始和停止。
- 清除会话:清空 Watcher 列表中的所有会话。
- Composer:打开请求构建器,用于手动创建或修改请求。
- 导入/导出:用于导入/导出会话列表。
-
会话列表:
- 这是 Watcher 的主体,每一行代表一个网络请求/响应。
- 列表的表头是可排序的,点击可以按该列(如状态码、耗时、大小)进行升序或降序排列,这是性能分析的关键。
-
表头列详解:
(图片来源网络,侵删)- :会话的唯一编号。
Result/Status:HTTP 状态码(如200 OK,404 Not Found,500 Server Error),这是判断请求是否成功的最直接依据。Protocol:使用的协议(如HTTP/1.1,HTTP/2,h2)。Host:请求的目标域名,按此列排序可以方便地查看同一网站的所有请求。Method:HTTP 方法(GET,POST,PUT,DELETE等)。URL:请求的完整地址。Body:响应体的大小(字节)。Content-Type的类型(如application/json,text/html,image/png)。Process:发起请求的应用程序名称。Timing:请求的总耗时(毫秒),点击此列可以轻松找到最慢的请求。Cache:响应是否来自缓存。
第二部分:核心功能详解
1 会话列表的交互操作
- 单击选中:单击任意一行,可以在右侧的 Inspectors(检查器)中查看该请求和响应的详细信息。
- 多选:按住
Ctrl或Cmd键单击,可以选中多个不连续的会话,按住Shift键单击,可以选中一个连续的区间。 - 右键菜单:在会话上右键单击,提供大量快捷操作:
- Copy -> Copy cURL:复制为 cURL 命令,方便在命令行中复现。
- Copy -> Copy as PowerShell:复制为 PowerShell 脚本。
- Follow -> Follow HTTPS Tunnel:用于调试复杂的 HTTPS 握手过程(高级用法)。
- Composer:将选中的请求加载到 Composer 中进行修改和重发。
- Drop Session:丢弃选中的会话,使其不被发送到服务器(模拟网络中断)。
- Mute Session:静默选中的会话,Fiddler 仍然会处理它,但不会在列表中显示和记录。
2 过滤器:从海量请求中精准定位
当打开一个复杂的网页时,Watcher 列表可能会瞬间被成百上千的请求填满,过滤器是帮你快速找到目标请求的利器。
过滤器位于 Watcher 的底部。
- 启用过滤器:首先勾选
Enable Filters。 - 过滤规则:
- Show only:只显示满足条件的会话,这是最常用的模式。
- Hosts:按主机名过滤,输入
*.baidu.com只显示百度的所有子域名请求。 - Status Codes:按状态码过滤,输入
4xx, 5xx只显示所有错误请求。 - Process:按发起请求的进程名过滤,输入
chrome只显示 Chrome 浏览器的请求。 - Regular Expression:使用正则表达式进行更灵活的匹配,输入
api/v\d+/users可以匹配到api/v1/users和api/v2/users这样的 API 地址。
- Hosts:按主机名过滤,输入
- Hide:隐藏满足条件的会话,可以隐藏所有图片、CSS、JS 文件,专注于 API 请求。
- Bypass support:这是一个强大的功能,可以让你在
Show only模式下,同时显示某些“例外”的请求。Show only*.myapi.com,但Bypass support里填*.cdn.com,这样你就能看到myapi.com的所有请求,同时也保留了cdn.com的请求。
- Bypass support:这是一个强大的功能,可以让你在
- Show only:只显示满足条件的会话,这是最常用的模式。
实战技巧:想只看 API 请求,可以这样设置:
Show only -> URL -> 勾选 REGEX,然后输入 \.(json|xml|api)。
3 搜索:快速找到目标
当请求列表依然很长时,可以使用搜索功能。
- 全局搜索:在 Watcher 右上角的搜索框中输入关键词,它会搜索 URL、Host、Header 等所有文本内容。
- 列内搜索:在任意列的表头上右键单击,选择
Find...,可以只在当前列(如 Host 列)中搜索。
第三部分:进阶技巧与实战
1 使用 Composer 修改和重发请求
这是 Fiddler 最强大的功能之一,用于模拟和测试 API。
- 从 Watcher 加载:在 Watcher 中找到一个你感兴趣的请求(例如一个登录的 POST 请求),右键单击 -> Open in Composer。
- 修改请求:
- 在 Editor 标签页,你可以修改请求的 Method、URL、Headers 和 Body。
- 你可以修改登录密码,然后点击 Send 按钮,将新的请求发送到服务器,观察响应是否变化。
- 手动创建请求:点击工具栏的 Composer 按钮,可以手动填写所有信息来创建一个全新的请求。
2 保存和加载会话列表
当你发现了一个问题,需要将当前的抓包环境分享给同事或用于后续分析时,保存会话列表非常有用。
- 保存:点击工具栏的 Export -> Export Sessions...,可以选择保存为
.saz(Fiddler专用格式) 或.har(通用格式)。 - 加载:点击工具栏的 Import -> Import from file...,选择之前保存的文件,Fiddler 会加载文件中的所有会话到 Watcher 中,方便你离线分析。
3 性能分析
利用 Watcher 的排序功能,可以轻松进行性能分析。
- 找出最慢的请求:点击
Timing列的表头,按耗时从高到低排序,排在最前面的就是加载最慢的请求,通常是性能优化的首要目标。 - 分析请求瀑布图:在选中一个会话后,切换到 Inspectors -> Timing 标签页,可以看到该请求的详细时间分解(如 DNS查询、TCP连接、TLS握手、服务器处理、内容下载等),帮助你定位瓶颈所在。
第四部分:常见问题与最佳实践
1 为什么我看不到请求?
- 监听未开启:检查左上角的监听开关是否为蓝色。
- 代理未设置:确保你的浏览器或应用程序的系统代理已设置为 Fiddler 的地址(
0.0.1:8866,具体端口看 Fiddler 提示)。 - 过滤器设置错误:检查底部的过滤器是否意外隐藏了你需要的请求,尝试暂时禁用过滤器。
- 应用使用非代理协议:一些应用(如部分桌面客户端、游戏)可能不使用系统代理,而是直接通过 WinPcap 或 TUN 等底层技术联网,Fiddler Everywhere 对此支持有限,可能需要使用 Fiddler Classic。
2 如何避免抓包本地资源?
在开发时,我们通常只关心与外部服务器的交互,不希望 localhost 或 0.0.1 的请求出现在列表中,以免干扰。
-
使用过滤器 在底部的过滤器中,设置
Hide->Hosts-> 勾选REGEX,然后输入^(localhost|127\.0\.0\.1)。 -
使用 AutoResponder(自动响应器) 这是一个更“高级”的技巧,你可以设置一个规则,当匹配到本地请求时,直接
Block(阻止)它,这样它就不会出现在 Watcher 中。
3 如何只抓取特定网站的请求?
这是最常见的场景,例如你只想调试 api.example.com 的接口。
- 最佳实践:使用过滤器
在底部的过滤器中,设置
Show only->Hosts-> 勾选REGEX,然后输入^api\.example\.com$。 这样,Watcher 中就只会显示api.example.com的请求,其他所有请求都会被自动隐藏。
Fiddler Everywhere 的 Watcher 是一个功能极其强大的网络流量分析工具,掌握它,你就拥有了一把透视网络世界的“钥匙”。
学习路径建议:
- 熟悉界面:知道每一列是什么意思。
- 掌握排序和过滤:这是日常使用中最频繁的操作。
- 学会用 Inspectors 分析请求和响应:理解请求和响应的内容是调试的核心。
- 玩转 Composer:这是从“被动分析”到“主动测试”的飞跃。
希望这份教程能帮助你快速上手 Fiddler Everywhere!祝你调试愉快!
