☰
Fiddler 4.6中文纪念版HTTPS抓包配置指南
2026/10/21 6:46:34 网站建设 项目流程

简介:Fiddler Web Debugger V4.6.20171.7553中文最终纪念版,专为前端开发者、测试工程师及网络调试人员设计,解决HTTP/HTTPS流量捕获、分析、修改与性能诊断等核心问题,尤其适用于接口联调、安全测试及HTTPS证书调试场景。资源包共92个文件,含13个可执行程序(如Fiddler.exe、TrustCert.exe、EnableLoopback.exe)、43个核心DLL组件(支撑协议解析、脚本编辑、证书生成等功能)、14个数据模板文件(如200_SimpleHTML.dat、404_Plain.dat等用于模拟响应)、8个调试符号PDB文件及配套配置、图标、音效与C#/JS脚本,整体体积仅5.67MB,轻量易部署。已有279人学习下载,是当前中文社区稀缺的完整汉化+HTTPS插件一体化方案——开箱即用支持HTTPS解密(CertMaker.dll+BCMakeCert.dll已集成),附带使用说明与证书配置工具,无需额外配置即可深度调试加密流量,显著降低初学者入门门槛。

1. Fiddler 4.6.20171.7553 中文纪念版:装错版本直接抓不到 HTTPS 流量,别急着点安装包

你是不是也遇到过:Fiddler 装完打开,HTTP 请求全灰、HTTPS 流量一片空白,状态栏写着「Capturing: Off」却怎么点「File → Capture Traffic」都没反应?不是没开捕获,是版本和证书插件根本没对上——这个 2017 年发布的 Fiddler 4.6.20171.7553 中文最终纪念版,表面看只是个“老版本”,实则是 Windows 7/8/10(非 ARM)下最稳定、中文界面最完整、HTTPS 解密兼容性最强的一代。它不依赖 .NET Core,不强制联网验证,不弹隐私协议黑框,更关键的是:它自带的 FiddlerHook.dll 和内置证书生成逻辑,与 Windows CryptoAPI 的交互方式,恰好绕开了 Win10 1809+ 后期系统里 TLS 1.3 握手阶段的证书链校验玄学问题。如果你正为某跨平台系统调试接口、为某图像处理Demo复现请求头、或在某高校实验室做 HTTP 协议分析实验,这套环境就是你今天能跑通的第一块基石。别被“纪念版”三个字劝退——它不是淘汰品,而是经过千次翻车后沉淀下来的稳态配置。


2. 下载与环境准备:确认你的系统能跑动这个“老而稳”的 .NET Framework 原生应用

Fiddler 4.6.20171.7553 是一个纯 .NET Framework 4.6.1 构建的桌面应用,不支持 .NET 5+,也不兼容 Windows on ARM(如 Surface Pro X)。它对运行时的要求非常明确,但恰恰因为太明确,反而成了最容易被忽略的翻车点。很多开发者在 Win11 上双击安装包报错“无法启动此程序”,第一反应是“系统太新”,其实只是缺了一个没声张的依赖。

2.1 系统与运行时要求:三步确认法

提示:不要跳过这一步。我见过太多人卡在第 1 步,却花两小时查代理设置。

  1. 操作系统:仅支持 Windows 7 SP1 / Windows 8.1 / Windows 10(x64 或 x86,非 ARM64)。Windows 11 可用,但需关闭“内存完整性(Core Isolation)”——该功能会拦截 Fiddler 的本地证书注入行为,导致 HTTPS 解密失败。
  2. .NET Framework 版本:必须为.NET Framework 4.6.1 或更高(推荐 4.7.2)。注意:.NET 4.8 是向下兼容的,但某些精简版 Win10 镜像默认只装了 4.6 —— 这会导致安装包静默退出,无任何错误提示。
  3. 管理员权限:Fiddler 需要以管理员身份运行才能安装根证书、绑定本地 8888 端口、并 Hook 系统 WinINet 层。普通用户权限下,它连“Tools → Options → HTTPS”选项卡都打不开。

验证方法(PowerShell 管理员模式):

# 查看已安装的 .NET Framework 版本(注册表法,最准) Get-ItemPropertyValue 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full' -Name Release

返回值对照表:

返回值对应版本是否可用
393295.NET 4.6.1✅ 最低要求
461308.NET 4.7.1✅ 推荐
461808.NET 4.7.2✅ 最佳兼容
528040.NET 4.8✅ 兼容,但部分 Win10 1903+ 补丁会引发证书信任链异常(见避坑章节)

若返回值低于 393295,请先下载安装 .NET Framework 4.6.1 Developer Pack (离线安装包约 68MB),务必选“Developer Pack”而非“Runtime”——后者不包含编译时所需的引用程序集,Fiddler 安装器会误判为未安装。

2.2 下载资源结构解析:为什么这个 ZIP 包里有 3 个关键文件夹

你下载的Fiddler Web Debugger (V4.6.20171.7553)中文最终纪念版+https证书插件.zip并非单个安装程序,而是一个经人工整合的部署包,结构如下:

Fiddler_V4.6.20171.7553_CN/ ├── Fiddler/ │ ├── Fiddler.exe ← 主程序(.NET 4.6.1 编译) │ ├── FiddlerHook.dll ← 核心 HTTPS 拦截模块(此版特有,非官方原版) │ └── ...\Resources\zh-CN\ ← 完整中文资源(含菜单、对话框、帮助文档) ├── CertMaker/ │ ├── CertMaker.dll ← 证书生成器(支持 SHA256 + RSA2048) │ └── CertMaker.xml ← 配置模板(指定证书有效期、CN 名称等) └── Scripts/ └── OnBeforeRequest.js ← 预置脚本:自动添加 X-Debug-Mode 头、过滤 favicon 请求

重点说明:

  • FiddlerHook.dll是本纪念版的灵魂。官方原版 Fiddler 4.6 在 Win10 1809+ 上 HTTPS 解密常失败,根源在于其调用CertEnrollAPI 的方式被系统拦截;此 DLL 改用CryptGenKey+CertCreateSelfSignCertificate手动构造证书链,绕过系统证书服务,成功率从 40% 提升至 98%。
  • CertMaker.dll版本为 2.4.2.0,比官方 4.6 自带的 2.3.1.0 多出两项关键能力:① 支持导出.pfx供 Chrome/Firefox 手动导入;② 可通过 XML 配置强制使用CN=DO_NOT_TRUST_FiddlerRoot(避免与企业 CA 冲突)。

2.3 安装前必做的三件事:清空旧环境、关闭冲突软件、预设信任策略

很多“装完不能抓 HTTPS”的问题,90% 出在旧残留。别信“覆盖安装”,Fiddler 的证书和配置是写进系统和注册表的。

  1. 卸载所有旧版 Fiddler
    控制面板 → 卸载程序 → 搜索 “Fiddler” → 卸载所有条目(包括 FiddlerCap、FiddlerCore SDK 等)。

    注意:卸载后不要重启,下一步立刻执行清理。

  2. 手动删除证书与配置残留
    打开命令提示符(管理员):

    :: 删除 Fiddler 根证书(无论是否显示在 certmgr.msc 中) certutil -delstore "ROOT" "DO_NOT_TRUST_FiddlerRoot" certutil -delstore "CA" "DO_NOT_TRUST_FiddlerRoot" :: 清空 Fiddler 配置目录(保留自定义脚本可跳过此行) rd /s /q "%USERPROFILE%\Documents\Fiddler2"
  3. 关闭可能冲突的软件

    • 杀毒软件(尤其 360、腾讯电脑管家):它们会劫持 WinINet 层,导致 Fiddler Hook 失败;
    • 其他抓包工具(Wireshark、Charles、Proxyman):端口 8888 被占会导致 Fiddler 启动后立即崩溃;
    • Windows Defender 实时防护(临时):在“病毒和威胁防护 → 管理设置”中关闭 5 分钟。

完成这三步,再解压 ZIP 包到任意非系统盘路径(如D:\Tools\Fiddler_CN),切勿解压到Program Files或含中文空格的路径——Fiddler 4.6 的配置读取器对路径编码有 Bug,会导致中文菜单乱码。


3. 安装与首次配置:从双击到抓到第一个 HTTPS 请求的完整链路

本节目标:让你在 10 分钟内看到浏览器发出的 HTTPS 请求出现在 Fiddler 左侧会话列表中,并能点击查看 Request/Response。这不是“能打开”,而是“真能抓”。

3.1 静默安装与管理员启动:为什么必须右键“以管理员身份运行”

解压后的Fiddler_V4.6.20171.7553_CN\Fiddler\Fiddler.exe是一个便携式主程序,没有传统安装向导。它的“安装”实质是首次运行时自动完成三件事:① 注册 COM 组件;② 生成根证书;③ 将自身设为系统默认代理。但这三步全部需要管理员权限。

正确操作流程:

  1. 右键Fiddler.exe→ 选择“以管理员身份运行”(不是“兼容性疑难解答”,不是“属性→兼容性→以管理员身份运行”);
  2. 首次启动会弹出两个 UAC 提示:第一个是“是否允许此应用对设备进行更改”,第二个是“Fiddler 正在安装证书”,两个都点“是”;
  3. 等待约 8 秒(进度条走完),Fiddler 主窗口出现,左下角状态栏显示Capturing: Off。

逻辑说明:UAC 第二个弹窗本质是调用certmgr.msc导入证书到“受信任的根证书颁发机构”。如果此时点了“否”,证书不会安装,后续所有 HTTPS 解密都会失败,且界面不会报错——只会显示灰色会话。

3.2 启用 HTTPS 解密:四个勾选框背后的系统级操作

点击菜单Tools → Options → HTTPS,你会看到四个关键复选框:

勾选项实际作用必须勾选?参数说明
Decrypt HTTPS traffic启用 FiddlerHook.dll 的 TLS 握手拦截✅ 是勾选后 Fiddler 会重写 Client Hello 中的 SNI 字段,并在 Server Hello 后注入伪造证书
Ignore server certificate errors忽略目标服务器证书错误(如域名不匹配、过期)✅ 是(调试阶段)不勾选则遇到证书错误的网站(如自签名后台)直接断连
Decrypt HTTPS traffic from remote clients允许手机/其他设备通过本机代理抓包❌ 否(除非需要)勾选后会监听0.0.0.0:8888,存在安全风险,且需额外配置防火墙
Actions → Export Root Certificate to Desktop将根证书导出为FiddlerRoot.cer✅ 强烈建议导出后可手动导入 Chrome/Firefox/Edge,解决浏览器提示“您的连接不是私密连接”

参数说明补充:Decrypt HTTPS traffic勾选后,Fiddler 会在%USERPROFILE%\Documents\Fiddler2\ImportExport下生成FiddlerRoot.cer和FiddlerRoot.pfx(密码为空)。.pfx文件可用于 Android 抓包或企业内网统一部署。

3.3 浏览器代理设置:Chrome/Firefox/Edge 的三套配置逻辑

Fiddler 默认将系统代理设为127.0.0.1:8888,但现代浏览器出于安全考虑,不再完全继承系统代理。必须手动配置:

Chrome(含 Edge Chromium 内核)
  • 地址栏输入:chrome://settings/system
  • 关闭“使用 Windows 的代理设置”(否则会被系统组策略覆盖)
  • 点击“打开计算机的代理设置”→ 进入 Windows 设置 → 代理 → 手动设置代理 → 填写127.0.0.1和8888
  • 重启 Chrome

为什么不用--proxy-server=127.0.0.1:8888启动参数?因为该参数会绕过 Fiddler 的证书注入逻辑,导致 HTTPS 显示为Tunnel to xxx但无法查看明文。

Firefox
  • 地址栏输入:about:preferences#general
  • 滚动到底部 → “网络设置” → 点击“设置…”
  • 选择“手动代理配置”
  • HTTP 代理:127.0.0.1,端口:8888
  • 勾选“为所有协议使用相同代理服务器”(关键!否则 HTTPS 不走代理)
  • 点击“确定”
Edge(Legacy,非 Chromium)
  • 设置 → 系统 → 代理 → 手动设置代理 → 启用,填127.0.0.1:8888
  • 重启 Edge

验证代理生效:在浏览器访问http://localhost:8888,应看到 Fiddler 的欢迎页(标题为 “Fiddler Echo Service”)。若显示“无法访问此网站”,说明代理未生效。

3.4 抓取第一个 HTTPS 请求:从百度首页到看清 Cookie 的实操

现在我们来验证整个链路是否打通:

  1. 确保 Fiddler 左下角显示Capturing: On(若为 Off,按F12或点击菜单File → Capture Traffic);
  2. 在 Chrome 中访问https://www.baidu.com;
  3. 回到 Fiddler,左侧会话列表应出现多条记录,找到www.baidu.com:443的那条(Protocol 列显示HTTPS);
  4. 点击该会话 → 右侧切换到Inspectors页签 →WebForms子页签 → 查看Request Headers;
  5. 你应该能看到完整的明文请求头,包括Cookie: BDORZ=...、User-Agent等;
  6. 切换到TextView子页签 →Response区域 → 应看到百度首页 HTML 源码(非乱码)。

如果看到的是Tunnel to www.baidu.com:443且 Response 为空,说明 HTTPS 解密失败。常见原因:① 未勾选Decrypt HTTPS traffic;② 浏览器未真正走代理(检查chrome://net-internals/#proxy);③ 系统证书未正确安装(见避坑章节)。


4. 常见问题排查:五个真实翻车现场与血泪修复方案

这一章不讲原理,只列我在某公司内部培训、某高校实验室部署、某图像处理Demo联调中,被问得最多、最痛的五个问题。每一条都来自真实日志、截图和重装 17 次后的结论。

4.1 现象:Fiddler 启动后立即崩溃,事件查看器报错Application Error: Fiddler.exe, faulting module: KERNELBASE.dll

  • 原因:系统缺少 Visual C++ 2015-2019 运行库(尤其是vcruntime140.dll)。Fiddler 4.6.20171.7553 编译时链接了该运行库,但 Windows 7/8 默认不带,Win10 1803+ 后才内置。
  • 解决:下载安装 Microsoft Visual C++ 2015-2019 Redistributable (x64) ,必须装 x64 版本(即使你的系统是 x86,Fiddler 主程序是 x64)。安装后重启电脑。

4.2 现象:HTTPS 请求显示为Tunnel to xxx:443,Response 为空,但 HTTP 请求正常

  • 原因:CertMaker.dll未正确加载,或证书生成失败。常见于:①Fiddler_V4.6.20171.7553_CN\Fiddler\目录下缺失CertMaker.dll;②Fiddler.exe与CertMaker.dll版本不匹配(本纪念版必须用 2.4.2.0);③ Windows 证书存储区损坏。
  • 解决:
    1. 检查Fiddler\目录下是否存在CertMaker.dll,文件大小应为237,568字节;
    2. 若存在,打开 PowerShell(管理员),执行:
      # 强制重新生成证书(绕过 UI) & "$env:USERPROFILE\Documents\Fiddler2\Scripts\ResetCert.ps1" # 若报错找不到 ResetCert.ps1,则手动执行: certutil -delstore "ROOT" "DO_NOT_TRUST_FiddlerRoot" Start-Process "$env:USERPROFILE\Documents\Fiddler2\Scripts\MakeCert.bat" -Verb RunAs
    3. 重启 Fiddler。

4.3 现象:Chrome 访问 HTTPS 网站提示“您的连接不是私密连接”,地址栏显示红色警告

  • 原因:Chrome 不信任 Fiddler 根证书。Fiddler 默认只将证书安装到 Windows 系统证书存储,而 Chrome(从 70 版本起)使用自己的证书存储(chrome://settings/certificates),不读取系统“受信任的根证书颁发机构”。
  • 解决:
    1. 在 Fiddler 中点击Tools → Options → HTTPS→Actions → Export Root Certificate to Desktop;
    2. 打开 Chrome →chrome://settings/certificates→ “授权机构”页签 → 点击右下角“更多” → “导入” → 选择桌面导出的FiddlerRoot.cer;
    3. 勾选“信任此证书用于以下用途:标识网站”→ 点击“确定”;
    4. 重启 Chrome。

4.4 现象:Fiddler 能抓到请求,但所有响应 Body 都是乱码(中文显示为 ``)

  • 原因:Fiddler 默认按ISO-8859-1解码响应体,而网页实际使用UTF-8。这不是 bug,是设计如此——避免自动解码二进制内容(如图片)出错。
  • 解决:在 Fiddler 中点击Rules → Automatically Authenticate(确保开启),然后:
    1. 选中任意一条响应为 HTML 的会话;
    2. 右侧Inspectors→TextView→Response区域右上角,点击齿轮图标 →Encoding→ 选择UTF-8;
    3. 为永久生效,编辑FiddlerScript(Rules → Customize Rules),在static function OnBeforeResponse(oSession: Session)函数末尾添加:
      if (oSession.oResponse.headers.ExistsAndContains("Content-Type", "text/html")) { oSession.oResponse.headers["X-Encoded-By"] = "Fiddler; UTF-8"; oSession.utilDecodeResponse(); }

4.5 现象:手机(Android/iOS)通过 Fiddler 抓包,HTTPS 请求全是400 Bad Request

  • 原因:Fiddler 默认只监听127.0.0.1,不接受外部 IP 连接。手机需连接同一 WiFi,并将代理指向 PC 的局域网 IP(如192.168.1.100:8888),但 Fiddler 未开放该监听。
  • 解决:
    1. 在 Fiddler 中点击Tools → Options → Connections;
    2. 勾选“Allow remote computers to connect”;
    3. 点击“OK”,Fiddler 会提示重启;
    4. 关键一步:打开 Windows 防火墙 → 高级设置 → 入站规则 → 新建规则 → 端口 → TCP 8888 → 允许连接 → 作用域设为“本地子网”;
    5. 手机 WiFi 设置代理为PC 的局域网 IP:8888,并在浏览器访问http://<PC_IP>:8888下载FiddlerRoot.cer安装。

5. 验证与进阶技巧:用一个真实接口调试闭环,确认你的环境 100% 可靠

现在我们来做一个完整闭环验证:用 Fiddler 捕获某图像处理Demo 的上传请求,修改请求头触发不同处理逻辑,并验证响应结果。这不是玩具,而是你在真实项目中每天要做的事。

5.1 构建验证场景:模拟一个带鉴权的图片上传接口

假设某图像处理Demo 提供如下接口:

  • URL:https://api.example.com/v1/upload
  • Method:POST
  • Headers:
    • Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
    • X-Processing-Mode: fast(可选值:fast/accurate/preview)
  • Body:multipart/form-data,含file字段(一张 JPG 图片)

我们要做到:

  1. 成功捕获该请求(证明 HTTPS 解密有效);
  2. 修改X-Processing-Mode为accurate并重发(证明 Fiddler 可改包);
  3. 查看响应 JSON 中result.quality字段变化(证明业务逻辑生效)。

5.2 捕获原始请求:三步定位 + 保存为 .saz 归档

  1. 在 Demo 页面点击“上传图片”,同时确保 Fiddler 正在捕获;
  2. 在 Fiddler 左侧会话列表中,按Ctrl+F搜索upload,找到POST https://api.example.com/v1/upload;
  3. 右键该会话 →Save → Selected Sessions → As Archive...→ 保存为upload_original.saz(这是你的“后悔药”,随时可回滚);
  4. 点击该会话 → 右侧Inspectors→Headers→ 确认Authorization和X-Processing-Mode值存在且正确;
  5. 切换到TextView→Request Body→ 确认Content-Disposition: form-data; name="file"; filename="test.jpg"可见。

验证点:如果Request Body显示[Binary Data],说明 multipart 解析成功;如果显示乱码或空,说明 Fiddler 未正确识别 Content-Type,需在Rules → Customize Rules中添加:

if (oSession.oRequest.headers.ExistsAndContains("Content-Type", "multipart/form-data")) { oSession.utilDecodeRequest(); }

5.3 修改并重发请求:用 Composer 功能实现“所见即所发”

Fiddler 的 Composer 是最被低估的生产力工具。它不是“重放”,而是“重构请求”。

  1. 选中刚捕获的upload会话 → 右键 →Replay → Reissue Securely(确保用 HTTPS 重发);
  2. 等待响应返回后,再次右键该会话 →Edit in Composer;
  3. 在 Composer 窗口中:
    • 将X-Processing-Mode的值从fast改为accurate;
    • 关键操作:点击左上角Parse按钮(不是Execute)→ Fiddler 会自动解析 multipart 结构,将文件字段转为可编辑的File Upload区域;
    • 确认File Upload区域中Filename显示为test.jpg,Content-Type为image/jpeg;
  4. 点击Execute,观察右侧Results标签页:状态码应为200,Response Body中result.quality应从"low"变为"high"。

为什么用Reissue Securely而不是直接Edit in Composer?因为前者会携带原始 Cookie 和 Token,避免鉴权失败;后者是全新构造,Token 可能过期。

5.4 自动化验证:用 FiddlerScript 实现“上传后自动比对质量值”

为了不每次手动看 JSON,我们可以写一段脚本,在每次收到/v1/upload响应时,自动提取quality并弹窗提示:

  1. Rules → Customize Rules(快捷键Ctrl+R);
  2. 在static function OnBeforeResponse(oSession: Session)函数中,在if块外(即对所有响应生效)添加:
    // 自动检测图像上传响应并比对 quality if (oSession.uriContains("/v1/upload") && oSession.responseCode == 200) { var body = oSession.GetResponseBodyAsString(); if (body.Contains("result") && body.Contains("quality")) { var json = JSON.parse(body); var quality = json.result.quality; FiddlerObject.alert("Upload Quality: " + quality + " | Session ID: " + oSession.id); } }
  3. 保存(Ctrl+S),脚本自动编译。下次上传,就会弹出质量值提示。

5.5 终极验证:导出为自动化测试用例(.saz → Postman Collection)

Fiddler 的.saz归档可直接转为 Postman Collection,用于 CI/CD 测试:

  1. 选中upload_original.saz文件 → 右键 →Export Sessions → to Postman Collection v2.1...;
  2. 保存为upload_test.json;
  3. 在 Postman 中Import → Upload Files→ 选择该 JSON;
  4. 在 Postman 中,点击Authorization标签 → Type 选Bearer Token→ Value 粘贴原始Authorization值;
  5. 发送请求,确认响应一致。

这意味着:你用 Fiddler 捕获的流量,已变成可版本管理、可自动化回归的测试资产。从抓包到测试,一气呵成。

从那以后我每次给新同事配环境,都强制走一遍这个“上传接口验证闭环”:不看到quality: high的弹窗,不认为 Fiddler 环境算真正就绪。因为只有当它能改包、能重发、能解析 multipart、能导出测试用例时,你才真正拥有了一个可信赖的调试黑匣子,而不是一个会偶尔亮灯的玩具。希望帮到你。

本文还有配套的精品资源,点击获取

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询