HTTP抓包工具:安装配置与使用教程

做过接口测试或 Web 开发的人,基本上都用过 Fiddler。这个工具出现的时间比较久,到现在仍是许多测试工程师和开发人员的日常工具。它的核心功能是把计算机与网络之间的 HTTP/HTTPS 请求拦截下来,让使用者能够查看请求数据,也可以对数据进行修改。

本文将 Fiddler 的常见用法系统整理一遍,从安装到实际操作均有涉及,适合不熟悉此工具的人跟随操作,也适合使用过但未系统了解过的人补充知识点。

Fiddler 的定位与工作原理

Fiddler 是一款 HTTP 调试代理工具,处于客户端和服务器之间,相当于一个中间人。启动 Fiddler 后,它会自动将系统代理设置指向自身,所有从浏览器或应用程序发出的 HTTP 请求都会先经过 Fiddler,再转发至目标服务器;服务器的响应同样会先返回 Fiddler,再由 Fiddler 转给客户端。

在这个过程中,Fiddler 会完整记录每一笔数据。若需查看某条请求的具体内容,双击即可打开对应条目。关闭 Fiddler 时,代理会自动还原,无需手动进行调整。

Fiddler 默认监听的端口号为 8888,可在 Tools → Options → Connections 菜单中修改。

Fiddler 能够完成的主要操作

  • 查看浏览器和手机 App 发出的 HTTP/HTTPS 请求内容

  • 修改请求参数或响应数据,用于接口测试和数据模拟

  • 设置断点,拦截请求后手动修改再放行

  • 利用 AutoResponder 功能将某个接口的请求重定向到本地文件

  • 模拟弱网环境,测试 App 在低网络速率下的表现

  • 过滤请求,仅显示指定域名下的流量

  • 使用 Composer 手动构造并重放请求

Fiddler 可免费使用,原生支持 Windows 平台,安装包体积小,不依赖其他运行环境。

安装方法

HTTP网络抓包工具下载地址:

链接: https://pan.baidu.com/s/1Yslb7RF4Cyn2xAAlAUMfHg?pwd=8888 提取码: 8888

下载后得到一个 exe 可执行文件,双击运行,按照安装向导的提示点击"下一步"即可完成安装。安装路径可按需修改到非系统盘。

安装完毕后首次打开 Fiddler,会弹出一个提示窗口,询问是否允许 Fiddler 解密 HTTPS 流量,此时建议点击"Yes",否则将只能抓取 HTTP 包,HTTPS 的请求内容无法看到。

界面布局说明

打开 Fiddler 后,界面分为左右两栏:

  • 左侧会话列表:记录抓取到的每一条请求,显示的信息包括请求编号、协议、主机、URL、状态码、耗时等。不同类型的请求会以不同颜色标示:红色表示有错误的请求(如 404、500),绿色表示 HTTP 请求,灰色表示 HTTPS 请求等。

  • 右侧详情面板:选中左侧某条请求后,右侧会展示该请求的详细内容。面板分为上下两部分,上半部分是请求头与请求体,下半部分是响应头与响应体。切换至 Inspectors 标签页,可按 Raw、JSON、Headers 等不同格式查看数据。

界面底部有一个命令行输入框,可以输入快捷命令来控制断点和过滤规则。

几种核心使用方法

用法一:抓取 PC 端网页的 HTTP/HTTPS 请求

这是最基础的使用方式。打开 Fiddler,然后打开浏览器访问任意网页,左侧会话列表便会开始滚动记录,每一条记录都是一个 HTTP 请求。

点击左侧任意一条请求,右侧切换到 Inspectors 标签页:

  • 上半部分显示"请求"信息,包括请求方法(GET/POST)、URL、请求头、请求体。

  • 下半部分显示"响应"信息,包括状态码、响应头、响应体(页面 HTML、JSON 数据等)。

如果只想查看某个特定域名的请求,可以开启过滤功能:

  1. 切换到右侧的 Filters 标签页

  2. 勾选"Use Filters"

  3. 在"Show only the following Hosts"中填入需要关注的域名(例如 api.example.com

  4. 点击 Actions → Run Filterset Now

此时左侧会话列表中便只会保留该域名的请求。

HTTPS 解密配置(若未开启)

前往 Tools → Options → HTTPS,勾选"Capture HTTPS CONNECTs"和"Decrypt HTTPS traffic",点击 OK。系统会提示安装证书,点击"Yes"信任,然后重启 Fiddler。此后 HTTPS 请求即可正常解密并显示内容。

用法二:抓取手机 App 的数据包

此用法要求手机和电脑处于同一 WiFi 网络中。具体操作分为三个步骤。

第一步:Fiddler 端开启远程连接

在 Fiddler 中,依次进入 Tools → Options → Connections,勾选"Allow remote computers to connect",端口保持 8888 不变,点击 OK。Fiddler 会弹出提示窗口,确认允许即可。

第二步:手机端设置代理

查询电脑的 IP 地址:Win + R 打开运行窗口,输入 cmd,回车后在命令行中执行 ipconfig,查找 IPv4 地址(例如 192.168.1.5)。

在手机的 WiFi 设置中,将当前连接的网络代理模式改为"手动":

  • 代理主机名(或 IP 地址):填写刚才查到的电脑 IP(如 192.168.1.5

  • 代理端口:填写 8888

保存设置。

第三步:安装 Fiddler 证书(抓取 HTTPS 时必须)

手机设置好代理后,使用手机浏览器访问:http://电脑IP:8888(例如 http://192.168.1.5:8888)。页面会显示 Fiddler 的欢迎页,拉到底部找到"FiddlerRoot certificate"链接,点击下载证书文件。

  • Android 手机:进入设置 → 安全 → 安装证书,找到刚刚下载的 cer 文件,为其命名后安装。部分 Android 系统还需在"信任的凭据"中确认安装状态。

  • iPhone 手机:证书下载后,进入设置 → 通用 → VPN 与设备管理,找到 FiddlerRoot 证书并点击安装。安装完成后还需要额外一步:设置 → 通用 → 关于本机 → 证书信任设置,将 FiddlerRoot 对应的开关打开,手动设置为信任。少了这一步,HTTPS 请求仍无法正常抓取。

设置完成后,用手机打开任意 App 进行操作,回到电脑上的 Fiddler,即可看到手机发出的请求。

注意事项

抓包结束后,记得将手机的代理关掉,否则手机断开当前 WiFi 后可能无法正常上网。另外,部分 App 采用了反抓包机制(SSL Pinning),此类 App 用常规方式无法抓取到数据,需要借助其他工具进行绕过,这里不做展开。

用法三:设置断点修改请求或响应

Fiddler 支持在请求到达服务器之前或响应返回客户端之前设置断点,以便手动修改数据。

在请求前设置断点

在 Fiddler 底部的命令行输入框中输入 bpu 目标URL(例如 bpu https://api.example.com/login)。此后,凡是匹配该 URL 的请求都会被拦截。双击拦截到的请求,在右侧 Inspectors 中修改请求参数,然后点击"Run to Completion"放行。

在响应前设置断点

输入 bpafter 目标URL 可拦截响应。被拦截后,可在右侧修改响应内容(如返回的 JSON 数据、响应状态码等),再放行。

清除断点:在命令行中输入 bpubpafter(不带参数)并回车即可清除对应类型的断点。

用法四:AutoResponder 将请求重定向到本地文件

AutoResponder 功能可用于模拟接口响应,在不修改实际服务器代码的情况下测试各种返回场景。

  1. 在左侧会话列表中,选中一条需要重定向的请求

  2. 将其拖拽到右侧的 AutoResponder 标签页中

  3. 勾选"Enable rules"和"Unmatched requests passthrough"

  4. 右键选中已添加的规则,选择"Edit Response",可以:

    • 直接编辑返回的内容

    • 选择"Find a file"并指定本地文件(例如一个保存了 JSON 数据的文本文件)

    • 选择"Create New Response"自行构造一个响应

设置完成后,再次触发该请求时,Fiddler 会自动用本地设定的响应内容进行替换。

用法五:模拟弱网环境

Fiddler 可以模拟较慢的网络条件,用于测试 App 或网页在低带宽、高延迟情况下的表现。

  1. 前往 Rules → Performance → Simulate Modem Speeds,勾选开启弱网模拟

  2. 如需调整具体的延迟和带宽参数,可点击 Rules → Customize Rules

在打开的 Script 文件中找到以下配置段:

text

复制代码
if (m_SimulateModem) {
    // Delay sends by 300ms per KB uploaded.
    oSession["request-trickle-delay"] = "300";
    // Delay receives by 150ms per KB downloaded.
    oSession["response-trickle-delay"] = "150";
}

其中 request-trickle-delay 控制上行延迟(上传),response-trickle-delay 控制下行延迟(下载),单位均为毫秒。可根据测试需要修改这些数值,保存文件后规则立即生效。

用法六:Composer 手动构造并发送请求

Composer 提供了一个构造 HTTP 请求的界面,可用于接口测试和调试。

  1. 切换到右侧的 Composer 标签页

  2. 在顶部的下拉菜单中选择请求方法(GET、POST、PUT、DELETE 等)

  3. 填写请求 URL

  4. 在 Request Headers 区域填写必要的请求头

  5. 若为 POST 等需要请求体的方式,在下方的 Request Body 区域填写数据

  6. 点击右上角的"Execute"按钮发送请求

发出的请求会出现在左侧会话列表中,可以在 Inspectors 中查看服务器返回的响应内容。

用法七:过滤请求

除了用法一中提到的按域名过滤,Fiddler 还提供了更灵活的过滤方式,均在 Filters 标签页中完成:

  • 按进程:勾选"Show only traffic from",选择需要抓取的进程名(如 chrome.exe)

  • 按请求头:勾选"Show only if URL contains",填入关键词,只显示 URL 中包含该关键词的请求

  • 按响应状态码:勾选"Hide if status code is",可隐藏指定状态码的请求(例如隐藏 200、304 的请求,只显示异常状态的请求)

  • 按响应类型:勾选"Hide if response body is",可设置过滤 HTML、CSS、JS 等静态资源,只关注 API 请求

合理使用过滤功能可以大幅减少会话列表中的无关信息,方便聚焦于真正需要关注的接口。

用法八:重放请求

在左侧会话列表中选中一条请求,右侧切换到 Inspectors 标签页,点击上方工具栏中的"Replay"按钮(一个带有回旋箭头的图标),即可原样重放该请求。重放后的请求会以新的条目出现在会话列表中,以便对比两次请求的差异。

如果需要重放的同时修改参数,可以先用 Composer(用法六)将请求内容导入,进行修改后再执行发送。

相关推荐
Mr -老鬼2 小时前
EasyClick 入门指南:HTTP 网络请求与 API 对接实战
网络·网络协议·http·自动化·#easyclick
上海云盾第一敬业销售2 小时前
WAF架构解析与实战经验分享
网络协议·web安全·架构
行走__Wz3 小时前
【网工入门-01】模拟器工具eNSP
网络·网络协议
用户337922545683 小时前
A2A 协议规范深度剖析:三层架构、数据模型、操作语义与协议绑定
网络协议
liuzhilongDBA4 小时前
浅析连接池和TCP探活
网络·网络协议·tcp/ip
ai_coder_ai4 小时前
论P2P计算关键技术与应用
网络·网络协议·p2p
cft56200_ln4 小时前
TDA4时间同步3 网卡添加虚拟时间戳
c语言·开发语言·arm开发·驱动开发·嵌入式硬件·网络协议
User_芊芊君子4 小时前
无公网 IP 也能跨网互联:8 年技术沉淀的内网穿透 + 异地组网解决方案
网络·网络协议·tcp/ip
bellus-4 小时前
如何为OpenClaw配置HTTPS?
网络协议·http·https