贝博恩创新科技网

Fiddler Watcher教程如何快速上手抓包分析?

Fiddler Everywhere Watcher(监听器)终极教程

目录

  1. 第一部分:基础入门
    • 什么是 Watcher?
    • 启动和配置监听
    • 认识 Watcher 界面
  2. 第二部分:核心功能详解
    • 会话列表的交互操作
    • 过滤器:从海量请求中精准定位
    • 搜索:快速找到目标
  3. 第三部分:进阶技巧与实战
    • 使用 Composer(请求构建器)修改和重发请求
    • 保存和加载会话列表
    • 性能分析(Timing 标签页)
  4. 第四部分:常见问题与最佳实践
    • 为什么我看不到请求?
    • 如何避免抓包本地资源?
    • 如何只抓取特定网站的请求?

第一部分:基础入门

1 什么是 Watcher?

在 Fiddler Everywhere 中,Watcher 是你抓取到的所有网络请求的“容器”或“列表”,它就像一个交通监控中心,实时显示你的计算机(或配置了代理的设备)与互联网之间所有的 HTTP/HTTPS 流量。

Fiddler Watcher教程如何快速上手抓包分析?-图1
(图片来源网络,侵删)

核心作用:

  • 查看流量:让你“看见”应用程序背后发生的所有网络请求。
  • 分析问题:通过检查请求和响应,定位 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 主界面的左侧,是整个应用的核心区域。

Fiddler Watcher教程如何快速上手抓包分析?-图2
(图片来源网络,侵删)

它主要由以下几个部分组成:

  1. 工具栏

    • 暂停/开始监听:控制抓包的开始和停止。
    • 清除会话:清空 Watcher 列表中的所有会话。
    • Composer:打开请求构建器,用于手动创建或修改请求。
    • 导入/导出:用于导入/导出会话列表。
  2. 会话列表

    • 这是 Watcher 的主体,每一行代表一个网络请求/响应。
    • 列表的表头是可排序的,点击可以按该列(如状态码、耗时、大小)进行升序或降序排列,这是性能分析的关键。
  3. 表头列详解

    Fiddler Watcher教程如何快速上手抓包分析?-图3
    (图片来源网络,侵删)
    • :会话的唯一编号。
    • 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(检查器)中查看该请求和响应的详细信息。
  • 多选:按住 CtrlCmd 键单击,可以选中多个不连续的会话,按住 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/usersapi/v2/users 这样的 API 地址。
    • Hide:隐藏满足条件的会话,可以隐藏所有图片、CSS、JS 文件,专注于 API 请求。
      • Bypass support:这是一个强大的功能,可以让你在 Show only 模式下,同时显示某些“例外”的请求。Show only *.myapi.com,但 Bypass support 里填 *.cdn.com,这样你就能看到 myapi.com 的所有请求,同时也保留了 cdn.com 的请求。

实战技巧:想只看 API 请求,可以这样设置: Show only -> URL -> 勾选 REGEX,然后输入 \.(json|xml|api)

3 搜索:快速找到目标

当请求列表依然很长时,可以使用搜索功能。

  • 全局搜索:在 Watcher 右上角的搜索框中输入关键词,它会搜索 URL、Host、Header 等所有文本内容。
  • 列内搜索:在任意列的表头上右键单击,选择 Find...,可以只在当前列(如 Host 列)中搜索。

第三部分:进阶技巧与实战

1 使用 Composer 修改和重发请求

这是 Fiddler 最强大的功能之一,用于模拟和测试 API。

  1. 从 Watcher 加载:在 Watcher 中找到一个你感兴趣的请求(例如一个登录的 POST 请求),右键单击 -> Open in Composer
  2. 修改请求
    • Editor 标签页,你可以修改请求的 MethodURLHeadersBody
    • 你可以修改登录密码,然后点击 Send 按钮,将新的请求发送到服务器,观察响应是否变化。
  3. 手动创建请求:点击工具栏的 Composer 按钮,可以手动填写所有信息来创建一个全新的请求。

2 保存和加载会话列表

当你发现了一个问题,需要将当前的抓包环境分享给同事或用于后续分析时,保存会话列表非常有用。

  • 保存:点击工具栏的 Export -> Export Sessions...,可以选择保存为 .saz (Fiddler专用格式) 或 .har (通用格式)。
  • 加载:点击工具栏的 Import -> Import from file...,选择之前保存的文件,Fiddler 会加载文件中的所有会话到 Watcher 中,方便你离线分析。

3 性能分析

利用 Watcher 的排序功能,可以轻松进行性能分析。

  • 找出最慢的请求:点击 Timing 列的表头,按耗时从高到低排序,排在最前面的就是加载最慢的请求,通常是性能优化的首要目标。
  • 分析请求瀑布图:在选中一个会话后,切换到 Inspectors -> Timing 标签页,可以看到该请求的详细时间分解(如 DNS查询、TCP连接、TLS握手、服务器处理、内容下载等),帮助你定位瓶颈所在。

第四部分:常见问题与最佳实践

1 为什么我看不到请求?

  1. 监听未开启:检查左上角的监听开关是否为蓝色。
  2. 代理未设置:确保你的浏览器或应用程序的系统代理已设置为 Fiddler 的地址(0.0.1:8866,具体端口看 Fiddler 提示)。
  3. 过滤器设置错误:检查底部的过滤器是否意外隐藏了你需要的请求,尝试暂时禁用过滤器。
  4. 应用使用非代理协议:一些应用(如部分桌面客户端、游戏)可能不使用系统代理,而是直接通过 WinPcap 或 TUN 等底层技术联网,Fiddler Everywhere 对此支持有限,可能需要使用 Fiddler Classic。

2 如何避免抓包本地资源?

在开发时,我们通常只关心与外部服务器的交互,不希望 localhost0.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 是一个功能极其强大的网络流量分析工具,掌握它,你就拥有了一把透视网络世界的“钥匙”。

学习路径建议:

  1. 熟悉界面:知道每一列是什么意思。
  2. 掌握排序和过滤:这是日常使用中最频繁的操作。
  3. 学会用 Inspectors 分析请求和响应:理解请求和响应的内容是调试的核心。
  4. 玩转 Composer:这是从“被动分析”到“主动测试”的飞跃。

希望这份教程能帮助你快速上手 Fiddler Everywhere!祝你调试愉快!

分享:
扫描分享到社交APP
上一篇
下一篇