简介:Fiddler是一款由Telerik开发的HTTP协议抓包与调试代理工具,面向开发者、测试人员及需要排查网络问题的用户,可帮助分析请求响应、定位接口异常与页面加载瓶颈。本资源为Fiddler下载包,采用7z压缩格式,共包含90个文件,整体约3.11MB,其中以dll动态库、exe可执行程序、pdb调试符号、dat响应模板及config配置文件为主,另含少量wav音频、ico图标、txt说明与js脚本,覆盖主程序、证书工具、脚本编辑器、导入导出模块等组件,结构完整,解压后即可运行。目前已有2248人学习下载。借助该工具,读者可完成HTTP与HTTPS流量捕获、断点调试、AutoResponder本地映射、会话过滤与性能时间线分析,并配合证书安装实现加密流量解密,从而高效理解网络通信过程、验证接口行为并排查各类网络层面的疑难问题。
1. 从一次证书报错说起:Fiddler 安装前必须想清楚的版本选择
很多人第一次装 Fiddler,卡住的地方不是下载本身,而是装完之后浏览器一片红、HTTPS 抓不到包,或者打开就提示 .NET 组件缺失。我见过最典型的一次,是某位同事在旧笔记本上装了最新版 Fiddler Everywhere,结果系统是 Windows 7,装完直接起不来,折腾一下午才发现是运行环境不匹配。Fiddler 这个工具在调试圈子里太常见了,抓 HTTP/HTTPS 请求、看接口返回、改包重放,几乎每个做前后端联调的人都绕不开。但它的版本分支和依赖环境,恰恰是新手最容易翻车的地方。这篇笔记面向的是准备在 Windows 上把 Fiddler 装起来、配好证书、能正常抓到 HTTPS 包的开发者,不管你是第一次装还是重装,都能照着走完。我会把版本差异、安装步骤、证书配置和常见报错都拆开讲,尽量让你少走我当年走过的弯路。
2. 装前准备:Fiddler 版本分支与运行环境对照
2.1 两个版本分支到底选哪个
Fiddler 目前主要有两条线:经典版 Fiddler Classic 和较新的 Fiddler Everywhere。名字听着像升级关系,实际定位差别不小,选错了后面配置方式完全不一样。
Fiddler Classic 是那个用了很多年的老牌工具,界面是 WinForms 风格,功能全、插件生态成熟、免费,依赖 .NET Framework。它的抓包能力、断点调试、AutoResponder 这些核心功能非常稳定,网上能搜到的教程绝大多数也是针对它的。缺点是界面偏旧,官方已经不再加新功能,只做维护。
Fiddler Everywhere 是重新写的跨平台版本,界面现代,支持 Windows、macOS、Linux,底层是 .NET Core/.NET 6+。它把一些功能做成了订阅制,免费版有额度限制。如果你只是偶尔抓个包,Classic 完全够用;如果你需要跨平台或者喜欢新界面,再考虑 Everywhere。
我一般给团队里新人的建议是:先在 Windows 上装 Fiddler Classic,把证书和抓包流程跑通,等真正需要跨平台了再换。因为 Classic 的坑已经被踩得差不多了,遇到问题一搜就有答案。
2.2 运行环境对照表
装之前先确认系统环境,这一步能省掉后面一半的报错。下面这张表是我整理的两版对环境的要求,照着对一下自己的机器。
| 项目 | Fiddler Classic | Fiddler Everywhere |
|---|---|---|
| 操作系统 | Windows 7 SP1 及以上 | Windows 10 1809+ / macOS 10.15+ / 主流 Linux |
| 运行时依赖 | .NET Framework 4.6.1+ | .NET 6 Desktop Runtime |
| 安装包大小 | 约 5 MB 左右 | 约 100 MB 以上 |
| 是否免费 | 完全免费 | 免费版有功能/额度限制 |
| 证书配置方式 | 工具内一键生成 + 系统信任 | 工具内引导 + 系统信任 |
| 跨平台 | 仅 Windows | 支持多平台 |
提示:如果你的机器是 Windows 7,别去装 Fiddler Everywhere,它要求的 .NET 6 在 Win7 上装起来非常折腾,直接选 Classic。
2.3 下载前的检查清单
在动手下载之前,花两分钟确认这几件事,能避免装到一半发现缺东西:
第一,确认系统位数。现在基本都是 64 位,但老机器上偶尔还有 32 位系统,下载时注意选对架构。
第二,确认 .NET 运行时。Classic 需要 .NET Framework 4.6.1 以上,Windows 10/11 一般自带 4.8,不用管;Windows 7 需要手动装。Everywhere 需要 .NET 6 Desktop Runtime,没装的话安装器会提示。
第三,关掉正在运行的代理类软件。Fiddler 本身要占用系统代理端口(默认 8888),如果机器上已经有别的工具占着这个端口,装完会连不上网。常见做法是先退出其他代理工具,装完 Fiddler 再决定用哪个。
第四,留出磁盘空间。Classic 很小,几十兆就够;Everywhere 加上依赖和缓存,建议留 500 MB 以上。
3. 安装 Fiddler Classic:从下载到首次启动
3.1 下载与安装包校验
Fiddler Classic 的安装包从官方渠道获取,下载下来是一个 exe 文件,体积不大。下载完成后,我习惯先看一眼文件属性里的数字签名,确认是官方签发的再双击。这一步不是多余,网上有些第三方站点会重新打包安装器,夹带别的东西。
安装过程本身没什么好说的,一路下一步就行。但有两个地方值得停一下:
一是安装路径。默认装在 C 盘 Program Files 下,如果你 C 盘紧张,可以改到别的盘。但注意路径里不要有中文和空格,虽然新版基本能处理,但老版本对中文路径有过兼容问题。
二是安装类型。安装器会问你是给所有用户装还是只给当前用户装。给所有用户装需要管理员权限,装完在开始菜单里所有账户都能看到;只给当前用户装不需要提权,但换账户就没了。我一般选所有用户,省得以后换账户再装一遍。
安装完成后,第一次启动 Fiddler,它会自动做几件事:注册为系统代理、生成根证书、开始监听 8888 端口。这时候你打开浏览器访问任意网站,Fiddler 左侧的会话列表应该就开始刷请求了。
3.2 首次启动的关键设置
第一次启动后,别急着抓 HTTPS,先把几个基础设置调好,不然后面全是坑。
打开 Tools → Options,重点看这几个标签页:
General 标签:确认 “Enable IPv6” 和 “Activate most recently used session” 按需勾选。如果你只抓 IPv4 的流量,IPv6 可以关掉,减少干扰。
HTTPS 标签:这是核心。勾选 “Capture HTTPS CONNECTs” 和 “Decrypt HTTPS traffic”。勾选后 Fiddler 会提示你安装根证书,点 “Yes” 让它装。装完证书,HTTPS 请求才能被解密看到明文。
Connections 标签:这里能看到 Fiddler 监听的端口,默认 8888。如果这个端口被占用,改成别的,比如 8899。改完记得点 OK,Fiddler 会重启监听。
下面这段是配置 HTTPS 时对应的操作逻辑,用命令行方式演示一下证书的信任过程(实际在 GUI 里点按钮即可,这里是为了说明背后发生了什么):
# Fiddler 生成的根证书默认导出路径(在 GUI 里通过 Actions → Export Root Certificate 导出) # 假设导出到桌面,文件名 FiddlerRoot.cer # 用 certutil 把证书加入受信任的根证书颁发机构存储 certutil -addstore -f "ROOT" "%USERPROFILE%\Desktop\FiddlerRoot.cer" # 查看当前系统受信任根证书列表里有没有 Fiddler certutil -store ROOT | findstr /i "fiddler"这段命令的逻辑是:Fiddler 解密 HTTPS 的原理是中间人方式,它自己签发一张根证书,让系统信任这张证书,之后它就能用这张证书给各个网站动态签发证书,从而解密流量。certutil -addstore -f "ROOT"就是把证书强制加入根存储,-f表示覆盖已存在的同名证书。最后一行用来验证是否装成功,如果输出里有 Fiddler 相关条目,说明信任链已经建立。
注意:如果公司电脑有组策略限制,可能不允许随便往根存储加证书,这时候需要联系 IT 或者改用其他调试方式。
3.3 验证代理是否生效
装完设置好,怎么确认 Fiddler 真的在抓包?最简单的办法是打开浏览器访问一个 HTTP 网站,看 Fiddler 左侧有没有出现会话。如果没有,按下面顺序排查:
先看 Fiddler 左下角的状态栏,是不是显示 “Capturing”。如果是空白或者显示 “Not Capturing”,点一下左下角那个位置切换状态。
再看系统代理设置。Windows 设置 → 网络和 Internet → 代理,确认 “使用代理服务器” 是打开的,地址是 127.0.0.1,端口是 8888。Fiddler 启动时会自动改这里,退出时会还原。如果 Fiddler 异常退出,代理设置可能没还原,导致浏览器上不了网,这时候手动关掉代理即可。
最后看防火墙。有些安全软件会拦截 Fiddler 的监听端口,把它加白名单就行。
4. 配置 HTTPS 解密与移动端抓包
4.1 让浏览器信任 Fiddler 证书
上一章提到了在 Fiddler 里勾选解密 HTTPS 并安装证书,但实际用的时候,浏览器可能还是不信任。尤其是 Firefox,它有自己的证书存储,不走系统根存储。
对于 Chrome 和 Edge,它们走系统证书存储,Fiddler 装好根证书后一般直接生效。如果还是提示证书错误,打开 Fiddler 的 Tools → Options → HTTPS → Actions → “Reset All Certificates”,重新生成并信任一遍。
对于 Firefox,需要手动导入。打开 Firefox 设置 → 隐私与安全 → 证书 → 查看证书 → 证书颁发机构 → 导入,选择 Fiddler 导出的根证书,勾选 “信任由此证书颁发机构来标识网站”。
验证是否成功的方法:访问一个 HTTPS 网站,比如某个搜索引擎,看 Fiddler 里这条会话的 Protocol 列是不是 HTTPS,右侧 Inspectors 里能不能看到明文内容。如果 Protocol 显示 HTTPS 但内容乱码,说明证书没信任成功,还在加密状态。
4.2 移动端抓包配置步骤
移动端抓包是 Fiddler 的高频用法,配置步骤比 PC 端多几步,但逻辑一样。
第一步,确保手机和电脑在同一个局域网。电脑上查一下本机 IP,命令行里ipconfig,找到 IPv4 地址,比如 192.168.1.100。
第二步,Fiddler 的 Connections 标签里,勾选 “Allow remote computers to connect”。这一步是允许别的设备连过来。勾选后需要重启 Fiddler 生效。
第三步,手机 WiFi 设置里,把代理改成手动,主机名填电脑 IP,端口填 8888。
第四步,手机浏览器访问http://电脑IP:8888,会打开 Fiddler 的证书下载页,点里面的链接下载根证书。Android 下载后需要在设置里安装证书(不同品牌路径不一样,一般在安全 → 加密与凭据 → 安装证书);iOS 下载后要到 设置 → 通用 → 关于本机 → 证书信任设置 里手动开启信任。
第五步,验证。手机访问一个 HTTPS 接口,看 Fiddler 里有没有对应会话,能不能看到明文。
# 在电脑上确认 Fiddler 监听端口对局域网开放 netstat -ano | findstr :8888 # 输出示例: # TCP 0.0.0.0:8888 0.0.0.0:0 LISTENING 12345 # 如果显示 127.0.0.1:8888 而不是 0.0.0.0:8888,说明只监听了本机,手机连不上这段命令用来确认监听地址。0.0.0.0:8888表示监听所有网卡,局域网设备能连;127.0.0.1:8888表示只监听本机回环,手机连不上。如果发现是后者,回到 Fiddler 的 Connections 设置里勾选 “Allow remote computers to connect” 并重启。
4.3 过滤规则减少干扰
抓移动端或者抓浏览器的时候,会话列表会刷得飞快,找目标请求很费劲。Fiddler 的 Filters 标签可以帮你过滤。
常用做法是:在 Filters 里勾选 “Use Filters”,然后在 Hosts 区域填目标域名,比如*.example.com,这样只显示匹配的请求。或者用 “Show only if URL contains” 填关键词。
另一个技巧是给请求打颜色标记。在会话列表里右键 → Mark → 选颜色,重要的请求标红,翻起来快很多。
5. 避坑与排查:Fiddler 装完最常见的五个问题
5.1 浏览器提示“您的连接不是私密连接”
现象:装完 Fiddler 并开启 HTTPS 解密后,访问 HTTPS 网站浏览器报证书错误,提示 NET::ERR_CERT_AUTHORITY_INVALID。
原因:Fiddler 的根证书没有被系统或浏览器信任。常见于证书安装时点了 “No”,或者 Firefox 这类独立证书存储的浏览器没手动导入。
解决:打开 Fiddler → Tools → Options → HTTPS → Actions → “Reset All Certificates”,一路确认重新生成并安装。Firefox 用户再按 4.1 的步骤手动导入一次。如果还不行,检查系统时间是不是错了,证书有效期校验依赖系统时间。
5.2 Fiddler 关掉后浏览器上不了网
现象:退出 Fiddler 后,浏览器打不开任何网页,但其他软件正常。
原因:Fiddler 异常退出或者被强制结束进程,系统代理设置没来得及还原,浏览器还在往 127.0.0.1:8888 发请求,但 Fiddler 已经不在了。
解决:Windows 设置 → 网络和 Internet → 代理,把 “使用代理服务器” 关掉。或者命令行执行netsh winhttp reset proxy重置。下次退出 Fiddler 尽量用 File → Exit,让它正常还原代理。
5.3 手机连不上 Fiddler 的代理
现象:手机按步骤设了代理,但浏览器打不开网页,Fiddler 里也没有会话。
原因:可能是 Fiddler 没允许远程连接,或者电脑防火墙拦了 8888 端口,或者手机和电脑不在同一网段。
解决:先确认 Fiddler 的 Connections 里 “Allow remote computers to connect” 已勾选并重启。再用netstat -ano | findstr :8888确认监听的是 0.0.0.0。然后检查 Windows 防火墙,给 Fiddler 放行,或者临时关掉防火墙测试。最后确认手机和电脑连的是同一个 WiFi,有些路由器开了 AP 隔离,设备之间不能互访,这种情况换个网络或者关掉 AP 隔离。
5.4 抓不到某个 App 的请求
现象:浏览器抓包正常,但某个手机 App 的请求在 Fiddler 里看不到。
原因:很多 App 做了证书校验(SSL Pinning),不信任用户安装的根证书,直接拒绝连接。或者 App 走了自己的网络库,不遵循系统代理。
解决:SSL Pinning 在 Fiddler 层面基本无解,需要反编译 App 去掉校验,这超出抓包工具的范围了。如果是代理不生效,可以试试在 Fiddler 里用 “Reverse Proxy” 模式,或者用其他方式转发流量。实际工作中遇到这类 App,我一般直接放弃 Fiddler,换用更底层的抓包方式。
5.5 安装时提示缺少 .NET 组件
现象:双击安装包,提示 “This application requires .NET Framework 4.6.1” 或类似信息。
原因:系统没装对应版本的 .NET 运行时。Windows 7 默认没有 4.6.1,Windows 10 早期版本可能也没有。
解决:去微软官网下载 .NET Framework 4.6.1 或更高版本的离线安装包,装完重启再装 Fiddler。如果是 Fiddler Everywhere 提示缺 .NET 6,同理去下 .NET 6 Desktop Runtime。注意别下成 ASP.NET Core Runtime,那个不带桌面组件。
6. 装完怎么验证:三个动作确认环境真的可用
装完配完,别急着关掉,花五分钟做下面三个验证,确认这套环境是真的能用了,而不是看起来能用。
第一个验证:PC 端 HTTPS 解密。打开 Fiddler,确认左下角显示 “Capturing”,浏览器访问一个 HTTPS 网站,在 Fiddler 会话列表里找到这条请求,点开右侧 Inspectors → TextView,能看到明文的 HTML 或 JSON 内容。如果看到的是乱码,说明证书没信任成功,回到第 4 章重新配。
第二个验证:断点改包。在 Fiddler 里按F11或者菜单 Rules → Automatic Breakpoints → Before Requests,然后浏览器刷新页面,Fiddler 会拦下请求,你可以修改请求参数再放行。这个功能验证的是 Fiddler 的中间人能力是否完整,能改包说明解密和转发链路都通了。
第三个验证:移动端抓包。手机按第 4.2 的步骤配好代理和证书,访问一个 HTTPS 接口,Fiddler 里能看到对应会话且内容可读。这一步验证的是远程连接和证书在移动端的信任情况。
下面这张表是我自己每次重装后都会过一遍的检查项,你可以照着核对:
| 检查项 | 预期结果 | 不通过时看哪里 |
|---|---|---|
| Fiddler 状态栏 | 显示 Capturing | 点左下角切换 |
| 系统代理 | 127.0.0.1:8888 已启用 | Windows 代理设置 |
| PC HTTPS 解密 | Inspectors 里可见明文 | 重装根证书 |
| 断点改包 | 请求被拦下可编辑 | Rules 菜单 |
| 手机代理 | 手机能打开网页 | 防火墙、AP 隔离 |
| 手机 HTTPS | 会话内容可读 | 手机证书信任设置 |
提示:验证顺序建议从 PC 到移动端,PC 通了再搞手机,不然两边同时出问题很难定位。
我自己的习惯是,每次换电脑或者重装系统后,装完 Fiddler 一定把这三个验证走一遍,尤其是证书那步,宁可多花两分钟确认,也不想在真正抓包的时候被证书问题打断思路。这套流程跑顺了,后面调试接口会省很多事。希望帮到你。
本文还有配套的精品资源,点击获取