
简介本资源为Fiddler网络调试代理工具的官方完整安装包面向Web开发人员、测试工程师及网络问题排查者用于高效抓取、分析与调试HTTP/HTTPS流量解决接口异常、页面加载慢、加密通信解析等典型问题。压缩包共90个文件总大小3.11MB包含核心可执行文件13个exe、协议解析与UI组件36个dll、调试符号13个pdb、预置响应模板14个dat、证书与配置工具如TrustCert.exe、EnableLoopback.exe、Fiddler.exe.config等以及音效、图标、脚本示例cs/js和第三方依赖库结构完整开箱即用。目前已有2248人学习下载无需额外编译或环境配置可直接部署运行覆盖Windows平台主流使用场景并支持HTTPS解密、断点修改、AutoResponder模拟响应等关键调试能力是本地化网络分析与前端联调的实用型工具集。1. Fiddler 下载不是抓包工具那么简单它是你调试 HTTP/HTTPS 流量的「黑匣子解码器」你有没有遇到过这种场景前端调接口返回 400但控制台没报错、后端日志说参数为空——可明明代码里打点确认传了或者 App 突然连不上测试环境Wireshark 抓出来全是 TLS 加密流根本看不出请求头里少了个Authorization又或者某 SDK 在 iOS 上正常Android 却卡在登录回调连网络层都摸不到边……这时候Fiddler 不是“又一个抓包工具”而是你唯一能实时看到「应用到底发了什么、服务器到底回了什么」的透明窗口。它不依赖设备 Root 或系统级权限Windows/macOS 双平台可用macOS 需 Fiddler Everywhere支持 HTTPS 解密需信任根证书、断点修改请求/响应、自动重放、会话筛选、性能时序分析甚至能模拟弱网。它适合刚学 HTTP 的前端同学快速验证接口行为也适合后端工程师复现客户端异常请求更被大量 QA 和测试开发用作自动化流量录制与比对的基础组件。这不是教科书里的协议图而是一份你每天打开、改两行、立刻看到结果的「活体调试台」。2. Fiddler 安装与 HTTPS 解密配置从下载到看到明文响应三步闭环2.1 下载渠道与版本选择认准官方源避开捆绑陷阱Fiddler 经典版Fiddler Classic目前仍由 Telerik现属 Progress官方维护仅推荐从 https://www.telerik.com/fiddler/fiddler-classic下载。注意该页面提供 Windows 版.exe 安装包和 macOS 版Fiddler Everywhere独立收费产品但有免费试用期。切勿通过第三方下载站获取曾有用户反馈非官网包静默植入浏览器插件或修改 hosts。当前稳定版为 v5.0.20234.489272023 年底发布安装包约 120MB无运行时依赖.NET Framework 4.7.2 已内置。安装过程默认勾选「Launch Fiddler on finish」建议取消——首次启动前需先完成证书配置否则 HTTPS 流量将显示为「Tunnel to」且无法解密。2.2 Windows 环境下 HTTPS 解密全流程证书安装 系统代理联动HTTPS 解密是 Fiddler 最关键能力但也是新手翻车率最高的环节。核心逻辑是Fiddler 充当中间人MITM用自己的根证书签发临时域名证书浏览器/应用信任该根证书后才接受其签发的证书。操作分三步提示以下操作需管理员权限。若公司域策略禁用本地证书安装请联系 IT 部门申请临时白名单否则无法启用 HTTPS 解密。# 步骤 1启动 Fiddler 后进入 Tools Options HTTPS 页签 # 勾选 Decrypt HTTPS traffic此时会弹出证书安装警告 # 点击 Yes → 自动跳转到 Windows 证书管理器 # 在 Trusted Root Certification Authorities 存储中导入 FiddlerRoot.cer此步骤本质是将 Fiddler 自动生成的FiddlerRoot.cer根证书导入系统信任库。若手动导入失败常见于企业锁机环境可执行命令行强制安装# 以管理员身份运行 PowerShell执行 certutil -addstore Root %USERPROFILE%\Documents\Fiddler2\Certificates\FiddlerRoot.cer# 步骤 2确认代理设置生效 # Fiddler 默认监听 127.0.0.1:8888需确保系统代理指向此处 # Windows 设置 → 网络和 Internet → 代理 → 手动设置代理 → 地址 127.0.0.1端口 8888 # 勾选 使用代理服务器并取消 不使用代理服务器的地址 中的 localhost/127.0.0.1否则本机流量不被捕获参数说明端口8888是 Fiddler 默认监听端口可在 Tools Options Connections 中修改但需同步更新系统代理设置。若与其他工具如 Charles冲突可改为8889但务必保证两端一致。# 步骤 3验证 HTTPS 解密是否成功 # 在浏览器访问 https://httpbin.org/get?test1 # Fiddler 会话列表中应显示 # Result: 200 | Protocol: HTTPS | Host: httpbin.org | URL: /get?test1 # 右键该会话 → Inspectors → TextView 页签 → 查看 Request Headers 和 Response Body 均为明文 # 若仍显示 Tunnel to httpbin.org:443 且无 Request/Response 内容则证书未生效2.3 macOS 用户必读Fiddler Everywhere 替代方案与证书信任链macOS 不支持 Fiddler Classic必须使用Fiddler Everywherehttps://www.telerik.com/download/fiddler-everywhere。安装后首次启动会提示下载并安装FiddlerRoot.cer。关键区别在于macOS 要求手动将证书拖入「钥匙串访问」→「系统」钥匙串并双击证书 → 展开「信任」→ 将「SSL」设为「始终信任」。切记必须重启 Safari 或 Chrome关闭所有窗口再重开否则浏览器缓存旧证书策略仍会报 NET::ERR_CERT_AUTHORITY_INVALID。Fiddler Everywhere 界面与 Classic 高度一致但规则过滤语法略有差异如 Classic 用urlcontains(api)Everywhere 用url contains api迁移时需注意。3. 核心功能实战用 Fiddler 录制、过滤、断点、重放真实请求3.1 流量录制与会话筛选从千条日志中精准定位目标请求Fiddler 启动即开始录制但真实项目中常混杂字体、图片、监控上报等无关请求。高效筛选依赖三层机制列筛选Column Filters右键会话列表顶部栏 → 勾选常用列Result状态码、ProtocolHTTP/HTTPS、Host域名、URL路径、Body响应体大小。例如排查 500 错误直接点击Result列标题排序500 会聚顶。Filters过滤器菜单栏 Rules → Customize Rules → 打开CustomRules.js在OnBeforeRequest函数中添加if (oSession.host.toLowerCase() api.example.com oSession.url.indexOf(/v2/user) -1) { oSession[ui-color] orange; // 高亮匹配请求 }保存后匹配请求行背景变橙色视觉聚焦效率提升 3 倍。QuickExec 命令行CtrlShiftX输入bpu https://api.example.com/login→ 后续所有该 URL 请求将自动断点输入cls清空会话?responsebody显示响应体关键词高亮。避坑为什么过滤器有时不生效现象设置了Host过滤为api.example.com但请求仍不显示。原因Fiddler 默认捕获所有进程流量但某些 UWP 应用如 Windows 自带邮件或沙盒化 App如 Electron 某些版本默认绕过系统代理。解决Rules → Performance → 勾选 Ignore HTTPS CONNECTs from Win8 Metro apps若需捕获则取消勾选或改用 Fiddler 的「WinINET」模式Tools → Options → General → Select WinINET as the system proxy。3.2 断点调试拦截请求头、修改参数、模拟错误响应断点是 Fiddler 最硬核能力分为两类Before Requests请求前断点拦截并修改发出的请求。例如测试 Token 过期场景# 在 QuickExec 输入 bpu https://api.example.com/profile # 触发请求后Fiddler 暂停进入 Inspectors → Request Headers # 找到 Authorization 行将其值改为 Bearer invalid_token # 点击 Run to Completion观察后端是否返回 401Before Responses响应前断点修改服务器返回内容用于前端 Mock。例如让登录接口返回固定 UID# QuickExec 输入 bpafter https://api.example.com/login # 触发登录后暂停在 Inspectors → Response Body → TextView 中 # 将 {code:0,data:{uid:123}} 改为 {code:0,data:{uid:999}} # 点击 Run to Completion前端 JS 将收到伪造 UID参数说明bpubreakpoint on URL只中断匹配 URL 的请求bpafter中断匹配 URL 的响应bpbreakpoint可设条件断点如bp 404中断所有 404 响应。3.3 自动重放与性能对比用 Composer 发送相同请求多次Composer 是 Fiddler 内置的请求构造器比 Postman 更轻量且能复用历史会话上下文如 Cookie、Auth Header在会话列表中右键目标请求 → Replay → Replay in ComposerComposer 窗口自动填充 Method、URL、Headers、Body修改任意字段如将page1改为page2点击左上角绿色 ▶️ 按钮发送多次发送后右键 Composer 标签页 → Compare with Session... → 选择历史会话自动生成差异报告Header 变更、Body 字段增删、响应时间对比。血泪经验Composer 默认不携带原始会话的Cookie若需保持登录态必须手动勾选 Use original sessions cookies位于 Composer 窗口右下角。否则重放时因无 Cookie 导致 401误判为接口问题。4. 常见问题排查五类高频翻车现场与根因修复4.1 现象HTTPS 请求显示 Tunnel to domain:443无法查看 Request/Response原因Fiddler 根证书未被系统或浏览器信任或目标应用如微信内置浏览器、某些金融 App强制校验证书链拒绝接受 Fiddler 签发的临时证书。解决Windowscertmgr.msc→ 检查「受信任的根证书颁发机构」中是否存在DO_NOT_TRUST_FiddlerRoot若存在则删除后重新按 2.2 节流程安装macOS钥匙串中找到FiddlerRoot→ 右键「显示简介」→ 「信任」→ 「使用此证书时」选「始终信任」→ 关闭并输入密码确认对于强校验 App尝试开启 Fiddler 的「Decrypt HTTPS traffic」后再勾选 Ignore server certificate errorsTools → Options → HTTPS。4.2 现象Fiddler 捕获不到某 Electron 应用的请求原因Electron 默认使用 Chromium 网络栈但部分版本v12默认禁用系统代理改用--proxy-server127.0.0.1:8888启动参数。解决找到该应用的快捷方式属性 → 目标栏末尾添加 --proxy-server127.0.0.1:8888注意空格和引号或在应用启动脚本中注入环境变量set ELECTRON_ENABLE_LOGGINGtrue set ELECTRON_DISABLE_SECURITY_WARNINGStrue仅开发环境。4.3 现象Fiddler 启动后Chrome 浏览器无法上网原因系统代理设置错误或 Fiddler 未运行时代理仍开启导致流量发往不存在的端口。解决快速检查任务栏右下角网络图标 → 右键「打开网络和 Internet 设置」→ 代理 → 确认「使用代理服务器」已关闭彻底清理PowerShell 执行netsh winhttp reset proxy重置 WinHTTP 代理影响部分后台服务预防Fiddler 关闭前勾选 Tools → Options → Connections → Act as system proxy on startup避免意外残留。4.4 现象Fiddler Everywhere 在 macOS 上无法捕获 Safari 流量原因macOS Monterey12.0起Safari 强制启用「隐私中继」Private Relay绕过本地代理。解决Safari → 偏好设置 → 隐私 → 取消勾选「使用 iCloud 专用中继」系统设置 → 网络 → Wi-Fi → 详细信息 → 代理 → 手动代理 → 地址127.0.0.1端口8866Fiddler Everywhere 默认端口重启 Safari。4.5 现象Fiddler 录制大量localhost请求干扰调试原因Fiddler 默认捕获所有本地回环流量包括 VS Code Live Server、Webpack Dev Server 等。解决Rules → Customize Rules → 在OnBeforeRequest函数中添加if (oSession.host.toLowerCase() localhost || oSession.host.toLowerCase() 127.0.0.1) { oSession[ui-hide] true; // 隐藏 localhost 会话 }或全局关闭Tools → Options → Connections → 取消 Monitor local traffic。5. 进阶技巧用 Fiddler 自动化流量分析与异常检测5.1 编写 AutoResponder 规则零代码 Mock 接口与故障注入AutoResponder 是 Fiddler 的「静态响应引擎」无需启动后端即可返回预设 JSON。典型场景前端联调时后端接口未就绪或需测试超时、503 等异常分支。操作路径Rules → AutoResponder → 勾选 Enable rules → Add RuleRule Patternhttps://api.example.com/user/(.*)正则匹配所有/user/开头请求Action Type*Respond with a file*→ 选择本地mock_user.json文件高级选项勾选 Unmatched requests passthrough未匹配请求直连真实服务器文件格式要求.json文件首行必须为 HTTP 状态行如HTTP/1.1 200 OKContent-Type: application/jsonAccess-Control-Allow-Origin: *{code:0,data:{id:1,name:MockUser}}若需返回 503首行改为HTTP/1.1 503 Service Unavailable。故障注入技巧创建规则*https://api.example.com/payment*→ Action Type 选*Abort request*模拟网络中断或设*Delay: 5000ms*注入 5 秒延迟测试前端 Loading 状态。5.2 使用 FiddlerScript 实现动态响应根据请求参数返回不同数据当静态 Mock 不够用如需根据?id123返回对应用户需编辑CustomRules.js// 在 OnBeforeResponse 函数中添加 if (oSession.uriContains(/api/user)) { var idMatch oSession.url.match(/id(\d)/); if (idMatch idMatch[1]) { var userId parseInt(idMatch[1]); var mockData { 123: {id:123, name:Alice, role:admin}, 456: {id:456, name:Bob, role:user} }; if (mockData[userId]) { oSession.utilSetResponseBody(JSON.stringify({ code: 0, data: mockData[userId] })); oSession.oResponse.headers.SetStatus(200, OK); oSession.oResponse.headers.SetHeader(Content-Type, application/json); } } }参数说明oSession.uriContains()比url.contains()更安全避免误匹配路径参数utilSetResponseBody()直接覆盖响应体无需处理编码SetStatus()确保状态码同步更新。5.3 性能瓶颈定位用 Timeline 视图分析请求瀑布流Fiddler 的 Timeline 功能View → Timeline将所有会话按时间轴展开直观暴露性能瓶颈时间轴区块含义优化线索DNS Lookup域名解析耗时若 100ms检查 DNS 服务器或 hosts 配置ConnectingTCP 连接建立若 300ms网络延迟高或服务端连接池满Sending请求发送通常 10ms若突增说明请求体过大Waiting服务端处理最需关注若 2s后端逻辑或数据库慢查询Receiving响应接收若 500ms响应体过大或网络丢包实操案例某 H5 页面加载慢Timeline 显示 12 个请求中/api/config的 Waiting 时间达 3.2s。右键该会话 → Performances → 查看服务端 IP 为10.0.1.5立即 ssh 登录该机器执行top -p $(pgrep -f config_service)发现 CPU 占用 98%确认为后端配置服务过载。从那以后我每次接手新项目第一件事就是用 Fiddler 录制完整业务流导出.saz文件存档。不是为了截图汇报而是当某天「昨天还好的接口今天 404」时我能秒开归档文件对比请求头差异、检查证书有效期、甚至把当年的 Mock 规则一键复用——这比翻 Git 历史快十倍。希望帮到你。本文还有配套的精品资源点击获取