在前后端调试、接口分析、安全测试甚至爬虫开发中,抓包工具几乎是每个开发者都离不开的“第三只眼”,而提到抓包工具,Fiddler 绝对是最经典、最强大的选择之一,它免费、轻量、功能丰富,支持 Windows、macOS 和 Linux,更关键的是,它不仅能“看”流量,还能“改”流量、重放请求、模拟弱网,堪称调试神器。
我们就从 Fiddler 的基础原理讲起,带你一步步掌握抓包、断点、篡改、解密 HTTPS 等核心技能。
Fiddler 是什么?它能做什么?
Fiddler 是一款基于代理(Proxy)技术的 HTTP/HTTPS 抓包工具,它运行在你的电脑上,会自动将自己设置为系统代理,然后所有通过浏览器或应用程序发出去的 HTTP 请求,都会先经过 Fiddler,再由 Fiddler 转发给服务器,反过来,服务器返回的响应也会经过 Fiddler 再传回客户端。
因为流经了中间层,Fiddler 就能:
- 查看所有 HTTP/HTTPS 请求和响应的完整数据,包括 Header、Body、Cookie 等;
- 拦截请求/响应,在发送前或返回前修改数据;
- 重发请求,用于测试接口;
- 模拟慢网速,测试应用在弱网环境下的表现;
- 编写脚本(FiddlerScript),实现自动化操作。
Fiddler 就是一个可视化、可操作的“HTTP 显微镜”。
Fiddler 抓包前的准备:开启 HTTPS 解密
默认情况下,Fiddler 只能抓到 HTTP 明文流量,而现在绝大多数网站都使用 HTTPS,要解密这些加密流量,你需要安装并信任 Fiddler 的根证书。
操作步骤如下:
- 打开 Fiddler,点击菜单栏 Tools → Options;
- 切换到 HTTPS 选项卡;
- 勾选 Capture HTTPS CONNECTs 和 Decrypt HTTPS traffic;
- 如果提示安装证书,点击 Yes;
- 在 Actions 中点击 Trust Root Certificate,将根证书安装到系统受信任的根证书颁发机构。
完成后,Fiddler 就能解密并显示 HTTPS 请求的明文内容了。
注意:安装证书后,如果浏览器提示不安全,请检查证书是否被正确信任,测试完毕后,建议在 Fiddler 中通过 Actions → Remove Root Certificate 删除证书,避免安全隐患。
Fiddler 抓包界面详解
Fiddler 的主界面分为左右两大部分:
左侧为 Web Sessions 列表,显示所有捕获的会话,每一行代表一个请求,包含:
- 会话序号;
Result:HTTP 状态码;Protocol:协议版本;Host:目标主机;URL:请求路径;Body:响应体大小;Content-Type:类型;Process:发起请求的进程。
右侧是 Inspector 面板,用于详细查看某个会话的内容,分为上下两部分:
- 上半部分显示请求信息(Request);
- 下半部分显示响应信息(Response)。
在 Inspectors 中,你可以分别查看:
- Headers:请求/响应头;
- TextView:纯文本形式的请求/响应体;
- WebForms:表单参数;
- JSON:格式化后的 JSON 数据;
- Cookies:Cookie 信息;
- Raw:原始报文。
记住一个技巧:双击左侧任意会话,可弹出独立窗口查看详情。
Fiddler 的三大核心实战用法
断点调试:改请求,改响应
Fiddler 最具魅力的功能之一就是“断点(Breakpoints)”,你可以在请求发送前或响应返回前暂停,然后手动修改数据。
修改请求的典型场景:
- 把某个接口的请求参数篡改,测试后端校验是否严格;
- 修改 Header,绕开某些权限限制;
- 将 A 环境的请求改写到 B 环境,进行联调。
开启请求断点方法:
- 在 Fiddler 底部命令行输入
bpu 网址关键字,按下回车,即可对包含该关键字的请求设置断点; - 输入
bpu)并回车,可以清除请求断点。
当请求被拦截后,在右侧 Inspector 中直接修改 Request 数据,然后点击 Breakpoint → Run to Completion 或直接点击绿色按钮,即可放行。
修改响应的典型场景:
- 在本地模拟后端返回异常数据,测试前端容错;
- 修改接口返回的 JSON,验证页面展示逻辑;
- 修改图片等静态资源,调试前端资源加载。
响应断点可以使用命令行命令 bps,用法与 bpu 一致。
请求重放:接口测试效率翻倍
在左侧会话列表选中一个请求,右键选择 Replay → Reissue Requests,就可以原样重发这个请求,这个功能非常适合:
- 接口联调时,反复尝试不同参数;
- 排查线上问题,复现当前请求;
- 对接口做简单的压力验证。
还可以使用 Shift + R 快速重放选中请求,重放后,新生成的会话会出现在列表顶部,方便对比分析。
弱网模拟:测出你的应用抗不抗“挤”
移动端应用最怕弱网,但手动用手机开弱网太麻烦,Fiddler 可以轻松模拟。
操作路径:Rules → Performance → Simulate Modems Speeds,勾选后,所有请求都会以极慢的速率传输,模拟 2G/3G 时代的网络状态。
如果你想要更精细地控制网速,可以在 CustomRules.js 中修改 m_SimulateModem 的延迟和带宽参数,这样你就可以自定义“上行慢、下行快”或者“丢包率高等”各种场景。
Fiddler 与移动端抓包
Fiddler 不仅能抓 PC 上的流量,还能抓手机 App 的流量,思路很简单:让手机和电脑位于同一局域网,手机的网络代理指向 Fiddler。
操作步骤如下:
- 电脑上打开 Fiddler,在 Tools → Options → Connections 中,确保勾选 Allow remote computers to connect;
- 查看电脑的局域网 IP(命令行输入
ipconfig); - 手机连接同一 WiFi,手动设置 HTTP 代理,服务器填电脑 IP,端口默认 8888;
- 用手机浏览器访问
http://电脑IP:8888,下载并安装 Fiddler 根证书; - 打开任意 App,即可在 Fiddler 中看到手机发起的 HTTPS 请求。
注意:Android 7.0 及以上系统默认不信任用户安装的证书,部分 App 抓包会失败,针对这种情况,可以考虑将证书安装到系统分区(需 root),或者使用 VirtualXposed 等方案,但这已经超出基础入门范围。
Fiddler 抓包工具的替代与延伸
Fiddler 虽然强大,但并非唯一选择,如果你习惯了命令行,可以试试 Charles(macOS 上更流行)或 mitmproxy(Python 编写,灵活可编程),而在 Chrome / Edge 开发者工具中,自带 Network 面板也能完成大部分调试需求。
Fiddler 的优势在于:
- 独立软件,不影响浏览器 DevTools 的“纯净度”;
- 支持脚本扩展,可以做复杂自动化;
- 支持命令行,可集成到测试体系中。
如果你要深入玩转 Fiddler,强烈建议学习一下 FiddlerScript,在 FiddlerScript 标签页中,你可以编写 C# 风格的脚本,实现自动保存请求、自动修改响应、按条件过滤会话等高级功能。
下面的脚本片段可以实现“自动在响应中插入一段 JS 代码”:
static function OnBeforeResponse(oSession: Session) {
if (oSession.HostnameIs("example.com") && oSession.ResponseCode == 200) {
oSession.utilDecodeResponse();
oSession.ResponseBody = oSession.ResponseBody.Replace("</body>", "<script>console.log('fiddler inject');</script></body>");
}
}
保存脚本后,下次请求 example.com 时,页面会自动加载这段脚本,这是前端调试、广告测试、灰度验证中非常实用的技巧。
常见问题与排查思路
抓不到包?
- 检查系统代理是否被其他工具占用(Clash、VPN);
- 检查 Fiddler 是否勾选了 Capture FTP requests 或过滤规则;
- 检查是否开启了 Streaming 模式,导致部分请求未缓存;
- 如果浏览器用了代理插件,请将 Fiddler 加入代理链。
HTTPS 显示为 443 隧道?
- 未解密 HTTPS,请检查证书是否安装;
- 如果已安装证书仍然无法解密,尝试重置证书:Tools → Options → HTTPS → Actions → Reset Certificates。
手机 App 抓不到包?
- 确认手机代理设置正确;
- 确认 Fiddler 允许远程连接;
- 确认 App 没有开启证书校验(SSL Pinning);
- App 不走系统代理,需要借助 Proxifier 或 VPN 模式强制走代理。
写在最后
Fiddler 是一款值得花时间学习的工具,它并不难,但功能极其丰富,从简单的查看请求,到断点修改,再到脚本自动化,每一步都能提升你的调试效率。
当你真正掌握 Fiddler 之后,你会发现:
- 前端和后端撕接口时,你能一针见血指出问题;
- 测试环境下数据不对,你能自己抓包定位;
- 线上报错找不到原因,你能快速复现并分析;
- 别人还在翻日志时,你已经看到了完整的请求链路。
这就是抓包工具 Fiddler 的价值——它不仅仅是工具,更是开发者洞察网络世界的一扇窗,希望这篇文章能帮你打开这扇窗,看到更清晰的风景。

