ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

Fiddler中文纪念版+HTTPS证书插件:抓包配置与弱网模拟实战

Fiddler中文纪念版+HTTPS证书插件:抓包配置与弱网模拟实战 简介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 的会话。hostexample.com只显示指定域名的请求。status输入500筛选状态码为 500 的会话。select json选中所有响应类型为 JSON 的会话。hide/show隐藏/显示选中的会话。比如我想看所有向https://api.xxx.com发出的 POST 请求输入hostapi.xxx.com然后按住Ctrl点选不需要的会话按Delete删除剩下就是纯目标接口了。调试完一批请求想把对话记录存档按CtrlS保存为.saz文件下次用CtrlO打开这个是送测、留底的神器。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.1Android 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 里输入hostapi.xxx.com 200这样就只看目标域名且状态码为 200 的会话非常干净。最后分享一个我自己的使用习惯调试完当天的工作不需要保留证书时我会在 Fiddler 的QuickExec输入rem命令关闭所有抓包或者直接右键系统托盘图标选择Quit。如果遇到浏览器页面卡住先不要急着卸载 Fiddler多半是代理没释放重新启动一下 Fiddler让管理进程退出时自动恢复系统代理。这个中文最终纪念版虽然版本老但只要把证书插件和端口这些细节处理好它就是 Windows 平台上最顺手的抓包工具之一用来排查普通 Web 接口和弱网场景完全够用。本文还有配套的精品资源点击获取
返回列表