简介:Fiddler Web Debugger V4.6.20171.7553中文最终纪念版,是一款面向前端开发、接口联调与网络排查的HTTP/HTTPS流量调试工具。它能够捕获、查看、修改所有经过电脑的HTTP(S)请求与响应,适合开发者、测试人员及网络工程师定位请求问题、分析响应数据,并进行断点调试。压缩包共92个文件,约5.67MB,含43个dll运行库、13个exe工具,以及dat响应模板、config配置文件、pdb调试符号等,绿色目录结构便于按需取用。内置HTTPS证书插件,可快速安装证书启用HTTPS解密,解决加密流量无法抓包的常见痛点;同时提供脚本编辑器与示例脚本,能够自定义规则、批量改写请求或响应、统计接口耗时。已有278人学习下载,作为该版本的最终汉化包,省去汉化适配与证书配置步骤,开箱即用,非常适合本地开发调试、接口联调与教学演示。 最近整理工具盘,翻出了这个Fiddler Web Debugger (V4.6.20171.7553) 中文最终纪念版+https证书插件.zip。说实话,Fiddler 这个工具在抓包调试圈子里属于“活化石”级别的存在,哪怕后来 Fiddler Everywhere 已经上线,很多从老版本用上来的开发者、测试、运维,还是更习惯这个经典版。这个压缩包版本号 V4.6.20171.7553 对应 2017 年的 Fiddler Classic 版本,加上第三方做的汉化文件和 HTTPS 证书插件,基本解决了官方英文版界面不友好、新版要授权、HTTPS 解密证书难配置这几大痛点。这篇文章我不打算写说明书,而是把这个包从安装、证书配置,到抓包、弱网模拟、移动端调试的全流程操作记录下来,适合刚接触抓包的前端、客户端开发,也适合用 Fiddler 做接口排查的测试和运维朋友。
1. Fiddler Web Debugger V4.6:这个版本凭什么还能打
1.1 经典版与 Fiddler Everywhere 的选型逻辑
先聊一个很多人纠结的问题:官方现在力推的是 Fiddler Everywhere,为什么还要回头用这个 4.6 的中文最终纪念版?
一个很现实的原因是:Fiddler Classic 是免费且轻量的,启动快,内存占用低,插件体系成熟,很多老教程和团队内部文档都基于 Classic 的操作路径。而 Fiddler Everywhere 虽然界面现代化、跨平台,但免费版有请求条数限制,很多高级功能需要订阅。对于只想快速拦截请求、看下接口返回、改个报文、模拟弱网的人来说,Classic 的性价比反而更高。
这个标题里的“中文最终纪念版”,实际是爱好者把官方英文版的资源汉化后打包的版本。V4.6.20171.7553 这个具体版本号,对应 Fiddler 4.x 时代的一个稳定 build。它在 Windows 10 甚至 Windows 11 上依然能正常跑,前提是补上对应的 .NET Framework 环境。
注意:这个包是第三方整合资源,下载后建议先做两件事:右键压缩包查看属性,如果有“解除锁定”就勾选;解压后用杀毒软件扫描一下,确认没有异常文件再运行。毕竟 Fiddler 本身就要做中间人代理,如果被注入恶意代码,风险比普通软件更大。
1.2 压缩包里到底应该有哪些文件
拿到这个 zip,解压后正常情况下应该有这几类东西:
- Fiddler 主程序:可能是
Fiddler.exe或完整的安装目录结构。 - 汉化资源文件:通常是
Fiddler.UI.dll的语言资源,或者单独的Languages目录。 - HTTPS 证书插件:常见的是
FiddlerCertMaker.exe、CertMaker.dll,或者是用于一键生成根证书的脚本。 - 说明文档:一般会附带
说明.txt或安装步骤.txt,建议先看这个,因为不同汉化包的安装方式可能略有差异。
如果解压后只有一个Fiddler.exe和几个 dll,那大概率是绿色免安装版。我个人更喜欢这种,因为它不用改注册表,换个电脑直接把整个文件夹拷走就能用。但绿色版有个坑:证书插件有时候不会自动注册,需要手动以管理员身份运行一次证书生成工具。
2. 安装部署与环境配置细节
2.1 系统依赖和运行库准备
Fiddler 4.6 是基于 .NET Framework 开发的,所以 Windows 7 及以上系统基本没问题,但需要安装 .NET Framework 4.5 或更高版本。Win10/11 系统一般自带 4.8,直接兼容。如果你在比较精简的系统上运行报错,比如提示KERNEL32.dll找不到函数或者未能加载文件或程序集,先去控制面板启动“ .NET Framework 3.5”功能,再装一次 4.6,基本就能解决。
另外,如果运行后提示缺少mstscax.dll、COMCTL32.dll之类的系统库,多半是精简版系统缺少组件,安装Microsoft Visual C++ Redistributable 2015-2022会解决大部分问题。实际操作中,这一步经常被忽略,但恰恰是很多绿色版 Fiddler 无法启动的根源。
2.2 绿色版 Fiddler 的启动方式
解压目录最好不要放在带空格的路径下,比如C:\Program Files\理论上也能跑,但后续自定义脚本、证书插件加载时偶尔会报路径解析问题。建议放在D:\Tools\Fiddler这种干净路径。
第一次运行Fiddler.exe时,右键选择“以管理员身份运行”。原因有两个:
- Fiddler 需要监听系统代理端口 8888,如果权限不足,可能只会对当前用户生效,无法对系统级服务抓包。
- 安装 HTTPS 根证书必须写入系统证书存储区,普通权限下会失败。
启动后,Fiddler 会自动把系统代理设置为127.0.0.1:8888。你打开一个网页,左侧会话列表里能刷出请求,说明基本工作正常。如果此时浏览器打不开任何网页,通常是代理端口被占用或者防火墙拦截了 Fiddler 进程。解决办法:在 Fiddler 中进入Tools → Options → Connections,把 Port 从 8888 改成 8889,然后重启 Fiddler。
3. HTTPS 证书插件:解密流程的核心
3.1 HTTPS 解密到底是怎么工作的
这是整个标题里“https证书插件”最关键的环节。先用大白话解释原理:Fiddler 相当于一个代收快递点。正常情况下,你(客户端)直接和服务器(网站)通信,内容是加密的。Fiddler 插手后,它会拦住你的请求,然后自己伪装成服务器,同时再代替你去请求真实服务器。为了让你信任它,它需要在你的系统里安装一个“根证书”。这个根证书签发的所有子证书,都会被你的电脑信任,于是 Fiddler 就能解密、查看、修改 HTTPS 报文了。
如果没装证书插件,你抓 HTTPS 请求时会看到一堆灰色CONNECT隧道,点开看不到任何内容。所以“https证书插件”不是可选功能,而是做 HTTPS 抓包的前提。
3.2 证书插件安装的两种场景
压缩包里的证书插件,一般有两种用法:
第一种:运行独立的证书安装工具。如果你解压后看到FiddlerCertMaker.exe或者InstallCert.bat,右键管理员运行,按照提示点“Install”或“是”,它会往系统当前用户的“受信任的根证书颁发机构”里写入 Fiddler 根证书。
第二种:通过 Fiddler 菜单安装。启动 Fiddler 后,依次点击Tools → Options → HTTPS,勾选Capture HTTPS CONNECTs和Decrypt HTTPS traffic,在下拉框里选择from all processes。然后点击右侧的Actions → Trust Root Certificate。如果此时弹窗提示“根证书未安装”或者按钮是灰色,说明证书插件没有注册成功。
我这里强烈建议:先运行包里的独立证书工具,再打开 Fiddler 的 HTTPS 选项。因为有些绿色版的主程序默认没有加载 CertMaker 扩展,菜单里的Trust Root Certificate会一直灰着,而独立工具可以直接把证书写进系统存储区。
安装成功后,Chrome 或 Edge 访问任意 HTTPS 网站时,地址栏左侧不会出现警告(除非是证书锁定机制)。如果浏览器不认,可以手动把 Fiddler 根证书导入到受信任的根证书颁发机构。证书通常在:Tools → Options → HTTPS → Actions → Export Root Certificate to Desktop。
注意:这个根证书相当于一把万能钥匙,只应该在调试环境安装。调试完后,如果不需要继续抓包,建议在系统证书管理里删除 Fiddler 根证书,避免隐私风险。
4. 抓包实操:从列表到报文修改
4.1 请求拦截与查看响应
Fiddler 启动后默认就在抓包。左侧会话列表每一行代表一个 HTTP/HTTPS 请求,列名从左到右依次是#(序号)、Result(状态码)、Protocol(协议)、Host、URL、Body(响应体大小)、Caching、Content-Type、Process,右上角还有时间线。
点击任意一条请求,右侧Inspectors面板会显示详细数据。上半部分是请求(Request),下半部分是响应(Response)。最常用的两个视图是:
Raw:直接看完整原始报文,包含请求行、请求头、请求体。WebForms/JSON:把 POST 参数或 JSON 体格式化显示,适合日常调试接口。
我排查接口问题时,习惯直接在Inspectors下方输过滤条件,或者用F12暂停抓包,避免无关请求干扰视线。定位到目标请求后,按F5可以重放一次,这在联调时非常实用。
4.2 断点修改请求/响应
有时候前端需要模拟某个接口的异常返回,或者后端想临时改个返回值测试前端展示,这时候用 Fiddler 的断点功能最合适。
菜单栏Rules → Automatic Breakpoints → Before Requests,设置“请求断点”,之后所有请求发出前都会进入断点状态,你可以修改请求头、请求参数、Cookie,再点击Run to Completion放行。
同理,After Responses是响应断点,拦截服务端返回,可以在Raw视图里直接修改 JSON 返回内容,然后放行给前端。
如果你只想针对某一个 URL 断点,不要用全局断点,效率太低了。直接用命令行(QuickExec,也就是 Fiddler 左下角的黑色输入框):
bpu https://api.example.com/login这条命令只对包含该字符串的请求在发送前断点。取消用:
bpu不带参数就是清除所有请求断点。响应断点对应命令是bpafter,用法相同。
4.3 请求筛选与 QuickExec 实用命令
抓包时最痛苦的是会话列表几十上百条,找一条接口要翻半天。Filters 标签页可以按域名、进程、HTTP 状态码过滤,但我更推荐用 QuickExec 命令,因为更快:
?keyword:筛选 URL 中包含 keyword 的会话。host=example.com:只显示指定域名的请求。=status:输入=500筛选状态码为 500 的会话。select json:选中所有响应类型为 JSON 的会话。hide/show:隐藏/显示选中的会话。
比如我想看所有向https://api.xxx.com发出的 POST 请求,输入:
host=api.xxx.com然后按住Ctrl点选不需要的会话,按Delete删除,剩下就是纯目标接口了。调试完一批请求,想把对话记录存档,按Ctrl+S保存为.saz文件,下次用Ctrl+O打开,这个是送测、留底的神器。
5. 弱网测试与移动端抓包场景
5.1 用 CustomRules.js 精准模拟弱网
Fiddler 的弱网模拟不是新功能,但很多人只会用现成的Simulate Modem Speeds,那个默认速度比较慢,不够灵活。更精准的做法是修改规则脚本。
在 Fiddler 菜单选择Rules → Customize Rules,会打开CustomRules.js文件。搜到OnBeforeRequest函数,在里面加:
if (oSession.HostnameIs("api.example.com")) { oSession["request-trickle-delay"] = "300"; oSession["response-trickle-delay"] = "150"; }这段代码的意思是:当请求打到api.example.com时,请求方向每 300 毫秒发送一个数据块,响应方向每 150 毫秒发送一个数据块,从而模拟上行慢、下行稍快的网络环境。
为什么用trickle-delay而不是直接改宽带大小?因为 Fiddler 默认不会做真正的带宽限制,它用的是“限流阀门”思路:控制发包间隔,变相降低速率。这种方式对 TCP 连接数少的场景效果很明显,但遇到并发请求多的页面,实际表现会略有偏差。弱网测试时建议配合浏览器的 Network Throttling 做对比。
配置完成后,关掉并重新打开Rules → Performance → Simulate Modem Speeds,或者直接刷新页面,就能看到请求耗时明显变长。做完弱网测试记得取消勾选,否则后续所有请求都会被限速。
5.2 移动端 App 抓包与证书安装
这个压缩包里的 HTTPS 证书插件,也可以用在手机 App 抓包上。做法是:
- 保持 PC 和手机在同一个局域网。
- 在 Fiddler 的
Tools → Options → Connections里勾选Allow remote computers to connect,确认端口是 8888。 - 查看 PC 的局域网 IP,比如
192.168.1.100。 - 手机 Wi-Fi 设置里手动代理,服务器填
192.168.1.100,端口填8888。 - 手机浏览器访问
http://192.168.1.100:8888,点击页面上的 Fiddler 根证书下载链接,安装证书。
但这里有个大坑:Android 7.0 及以上系统,普通应用默认不信任用户安装的证书。也就是说,即使你在手机设置里装好了 Fiddler 证书,很多 App 的 HTTPS 请求依然抓不到,只会看到TLS Handshake Failed或者直接请求超时。解决办法有三种:
- App 调试版本允许信任用户证书(需要开发配合)。
- 手机 root 后把证书移动到系统证书目录
/system/etc/security/cacerts/。 - 使用旧版 Android 模拟器(API 24 以下)进行抓包。
iOS 上相对简单,安装证书后在设置 → 通用 → 关于本机 → 证书信任设置里打开完全信任开关。但如果 App 做了证书锁定,一样无法解密,这是正常现象,不是 Fiddler 没配好。
6. 高频问题与排查技巧
下面这个表是我实际使用中踩过、以及帮同事排查过的典型问题,建议直接收藏。
| 问题现象 | 可能原因 | 解决办法 |
|---|---|---|
| 浏览器打开网页全部报代理错误 | Fiddler 端口被占用或系统代理未生效 | 修改端口,重启 Fiddler;检查系统代理设置 |
抓到一堆CONNECT隧道,点开没内容 | 未开启 HTTPS 解密或证书未安装 | 勾选Decrypt HTTPS traffic,重装根证书 |
| Fiddler 启动提示证书无效 | 系统时间不正确 | 校准系统时间,重新生成根证书 |
抓不到localhost请求 | 浏览器走了 IPv6 或被环路请求绕过 | 用http://localhost.fiddler访问,或在Hosts中把 localhost 指向 127.0.0.1 |
| Android App 无法解密 | 用户证书不被信任 | 改用系统证书目录,或让开发开启信任用户证书 |
| 弱网模拟不生效 | 可能只对 HTTP 生效,或规则脚本语法错误 | 确认CustomRules.js没有语法问题,并勾选 Simulate Modem Speeds |
| 证书插件安装后菜单仍是灰色 | Fiddler 未加载 CertMaker 扩展 | 检查C:\Users\用户名\Documents\Fiddler2\Scripts是否存在CertMaker.dll,没有则手动复制 |
还有一个容易被忽略的点:Fiddler 默认会拦截所有进程的网络请求,包括很多系统服务的后台访问,导致日志暴涨。你在做接口调试时,可以在Tools → Options → Connections底部勾选Use PAC Script,或者利用Filters → Hosts只显示你关心的域名。更彻底的办法是配置Rules → Hide 304s、Hide 3xx,让会话列表只保留有用的请求。
比如我的常用过滤写法是在 QuickExec 里输入:
host=api.xxx.com && =200这样就只看目标域名且状态码为 200 的会话,非常干净。
最后分享一个我自己的使用习惯:调试完当天的工作,不需要保留证书时,我会在 Fiddler 的QuickExec输入rem命令关闭所有抓包,或者直接右键系统托盘图标选择Quit。如果遇到浏览器页面卡住,先不要急着卸载 Fiddler,多半是代理没释放,重新启动一下 Fiddler,让管理进程退出时自动恢复系统代理。这个中文最终纪念版虽然版本老,但只要把证书插件和端口这些细节处理好,它就是 Windows 平台上最顺手的抓包工具之一,用来排查普通 Web 接口和弱网场景完全够用。
本文还有配套的精品资源,点击获取