简介:本资源为Fiddler网络调试代理工具的官方完整安装包,面向Web开发人员、测试工程师及网络问题排查者,用于HTTP/HTTPS流量抓包、接口调试、性能分析与安全测试等核心场景。压缩包共90个文件,含13个可执行程序(如Fiddler.exe、makecert.exe、EnableLoopback.exe)、36个动态链接库(支撑协议解析与UI渲染)、14个数据模板文件(如302_Redirect.dat、200_SimpleHTML.dat,用于AutoResponder模拟响应)及13个调试符号文件(.pdb),整体体积仅3.11MB,轻量便携且开箱即用。目前已有2245人学习下载,资源结构清晰,涵盖主程序、证书工具、脚本支持、响应模板与插件模块,可直接部署运行,无需额外编译或配置依赖。
1. Fiddler下载:不是装个软件就完事,它本质是本地HTTP流量的“透明显微镜”
Fiddler下载这件事,表面看只是去官网点个exe安装包,但真正卡住90%新手的,从来不是下载按钮——而是装完打开就报错、抓不到本机浏览器流量、HTTPS解密失败、或者一开Fiddler,公司内网系统直接白屏。这不是软件坏了,而是你没意识到:Fiddler不是普通代理工具,它是以本地环回代理(localhost:8888)为支点,把所有发往网络的HTTP/HTTPS请求先拽进自己内存里过一遍的中间人调试器。它不转发、不缓存、不改逻辑,只做三件事:记录、修改、重放。所以“下载”只是起点,真正要跑通的是「本地代理链路闭环」——浏览器→Fiddler监听端口→Fiddler解密/显示→原路返回。适合谁?前端查接口字段错位、后端验Webhook真实payload、测试同学复现偶发502、甚至排查某SDK静默上报失败。如果你只想要一个能看Chrome Network面板里看不到的请求头的工具,Fiddler比Wireshark轻量,比curl -v直观,但比Postman多一层“真实环境穿透力”。
2. 下载与安装:避开官网跳转陷阱,用离线包+证书预埋一步到位
Fiddler官方早已停止维护经典版(Fiddler Classic),主推Fiddler Everywhere(跨平台Web版),但大量老项目、企业内网、离线环境仍强依赖Classic。而官网现在默认跳转到Everywhere页面,Classic下载入口被藏得极深——这是第一个必须绕开的坑。
2.1 官方离线安装包直链获取(免登录、免跳转)
Fiddler Classic最新稳定版(v5.0.20234.51172)的Windows离线安装包,可从Telerik官方CDN直取(非第三方镜像,避免捆绑软件):
# 在PowerShell中执行(管理员权限) Invoke-WebRequest -Uri "https://telerik-fiddler.s3.amazonaws.com/fiddler/FiddlerSetup.exe" -OutFile "$env:USERPROFILE\Downloads\FiddlerSetup.exe"提示:不要用浏览器直接访问该URL,部分浏览器会因安全策略拦截重定向;务必用PowerShell或curl命令行下载,确保拿到的是原始EXE而非HTML跳转页。
2.2 安装时必须勾选的三项关键选项
运行FiddlerSetup.exe后,在安装向导第三步(Custom Setup)中,必须手动勾选以下三项,缺一不可:
| 选项名 | 是否必选 | 原因说明 |
|---|---|---|
| Fiddler Root Certificate | ✅ 必选 | HTTPS解密依赖此根证书,不勾选则所有HTTPS请求显示为“Tunnel to”,无法查看Request/Response Body |
| WinINET Proxy Settings | ✅ 必选 | 让Fiddler接管系统级代理设置,否则Chrome/Firefox需手动配置代理,Edge可能失效 |
| FiddlerScript Editor | ✅ 必选 | 后续写自定义规则(如自动替换响应头、过滤特定域名)必须依赖此编辑器,不装则Fiddler Rules菜单灰显 |
注意:安装过程若弹出“User Account Control”提示,必须点“Yes”。若点“否”,Fiddler将无法写入系统代理注册表,后续所有抓包均失败。
2.3 证书信任链预埋:解决“您的连接不是私密连接”警告
安装完成后,Fiddler会自动生成一个名为DO_NOT_TRUST_FiddlerRoot的根证书,并存于当前用户证书存储区。但Windows默认不信任它,导致浏览器访问HTTPS网站时弹出全屏警告。手动信任步骤如下:
- 打开Fiddler → Tools → Options → HTTPS → 点击Actions → Export Root Certificate to Desktop
- 双击生成的
FiddlerRoot.cer文件 → “安装证书” → 选择“本地计算机”(非当前用户)→ 存储位置选“受信任的根证书颁发机构” - 重启所有浏览器(包括后台进程:任务管理器中结束chrome.exe、msedge.exe等)
血泪经验:很多开发者卡在第2步选了“当前用户”,结果证书只对当前登录账户生效,一旦切换用户或服务账户运行,HTTPS解密立即失效。必须选“本地计算机”。
3. 首次启动验证:三步确认代理链路已闭环,拒绝“看起来在运行实则抓空包”
装完≠能用。必须通过三个可验证动作,确认Fiddler已真正成为你本机所有HTTP流量的“必经关卡”。
3.1 检查Fiddler监听状态与端口占用
启动Fiddler后,左下角状态栏应显示:
✅Online(非Offline)
✅Capturing(非Stopped)
✅Port: 8888(默认端口,若被占用会自动跳到8889等,需同步改浏览器代理)
此时打开命令行,执行:
# 查看8888端口是否被Fiddler进程占用 netstat -ano | findstr :8888 # 正常输出应类似:TCP 127.0.0.1:8888 0.0.0.0:0 LISTENING 12345 # 其中12345为Fiddler进程PID,可用tasklist /FI "PID eq 12345"确认进程名是Fiddler.exe逻辑说明:Fiddler必须绑定
127.0.0.1:8888(而非0.0.0.0),否则外部设备无法连接(这是设计使然,非bug)。若netstat无输出,说明Fiddler未成功监听,常见原因是杀毒软件拦截或端口被IIS/WSL2占用。
3.2 浏览器代理自动配置验证(无需手动填地址)
Fiddler安装时勾选了WinINET Proxy Settings,意味着它已修改系统代理。验证方式极简:
- 打开Chrome → 地址栏输入
chrome://settings/system→ 点击“打开计算机的代理设置” - 在Windows设置中,确认“自动检测设置”为关闭,“使用代理服务器”为开启,且地址为
127.0.0.1,端口为8888 - 关键动作:在Chrome新标签页中访问
http://localhost:8888—— 若看到Fiddler内置的“Fiddler Echo Service”欢迎页,证明代理正向通路正常
参数说明:
http://localhost:8888是Fiddler内置的诊断服务,它不走外网,只验证本机到Fiddler的HTTP明文链路。如果打不开,一定是系统代理未生效或Fiddler未监听。
3.3 HTTPS解密能力实测:用百度首页确认TLS握手与Body可见性
这是最易翻车的环节。执行以下操作:
- 在Fiddler中点击菜单Tools → Options → HTTPS
- 确保勾选:
- ✅
Decrypt HTTPS traffic - ✅
Ignore server certificate errors(绕过证书吊销检查,内网自签名场景必需) - ✅
Decrypt HTTPS traffic from remote clients(若需抓手机流量,此项才需勾选)
- ✅
- 点击Actions → Trust Root Certificate(再次强制信任,覆盖之前可能的遗漏)
- 清空浏览器DNS缓存:
chrome://net-internals/#dns→ 点击“Clear host cache” - 访问
https://www.baidu.com,观察Fiddler Sessions列表:- 应出现
CONNECT www.baidu.com:443(TLS隧道建立) - 其下应有
GET https://www.baidu.com/(明文HTTP请求,可点开Inspectors查看Headers/TextView) - Response Body标签页应显示百度HTML源码(非乱码)
- 应出现
玄学提示:若仅看到
CONNECT而无子请求,大概率是浏览器证书信任未生效;若Body显示Encrypted Content,则是Decrypt HTTPS traffic未勾选或证书未正确安装。
4. 常见问题排查:五条高频翻车现场,按现象直接定位原因
Fiddler下载安装后无法抓包,90%问题集中在这五个具体场景。每条按“现象→原因→解决”结构给出可执行方案,不讲原理,只给答案。
4.1 现象:Fiddler里全是[Fiddler] DNS Lookup for 'xxx.com' failed
原因:Fiddler默认禁用DNS解析,依赖系统Hosts或DNS服务器,但某些网络环境DNS超时。
解决:
- Fiddler菜单 → Tools → Options → General → 取消勾选
Use Filters(临时关闭过滤) - 再勾选
Enable DNS resolution(强制启用DNS) - 重启Fiddler
4.2 现象:能抓到HTTP请求,但所有HTTPS显示Tunnel to xxx.com:443,点开无Request/Response
原因:Decrypt HTTPS traffic虽勾选,但浏览器未信任Fiddler根证书,或证书被系统策略清除。
解决:
- 重新执行Tools → Options → HTTPS → Actions → Export Root Certificate to Desktop
- 双击导出的
.cer文件 → “安装证书” →“本地计算机”→ “受信任的根证书颁发机构” - 在Chrome中访问
chrome://flags/#unsafely-treat-insecure-origin-as-secure,将http://localhost:8888加入白名单(仅调试期)
4.3 现象:抓不到Edge浏览器流量,但Chrome正常
原因:Edge(Chromium版)默认启用“代理绕过本地地址”,会跳过127.0.0.1代理。
解决:
- Edge地址栏输入
edge://settings/system - 关闭“使用Microsoft Defender SmartScreen筛选器”(此开关会干扰代理)
- 或更彻底:在Edge启动快捷方式目标末尾添加参数:
"C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe" --proxy-server="127.0.0.1:8888"
4.4 现象:Fiddler启动后,公司OA系统白屏或提示“网络错误”
原因:OA系统使用WebSocket或HTTP/2协议,而Fiddler Classic v5默认不支持HTTP/2解密(需手动开启)。
解决:
- Fiddler菜单 → Tools → Options → HTTPS → 勾选
Decrypt HTTP/2 traffic(需Fiddler v5.0.20234+) - 若版本过低,升级至最新版,或临时在Fiddler中右键Session →
Decode Selected Sessions手动解码
4.5 现象:手机连WiFi后配置代理(IP为电脑局域网IP,端口8888),但Fiddler无任何Session
原因:Windows防火墙阻止了外部设备连接Fiddler的8888端口。
解决:
- Win+R →
wf.msc打开Windows Defender防火墙 - 左侧点“高级设置” → “入站规则” → 右侧“新建规则” → 选择“端口” → TCP端口
8888→ 允许连接 → 作用域设为“专用”网络 - 在Fiddler中:Tools → Options → Connections → 勾选
Allow remote computers to connect - 重启Fiddler
5. 进阶技巧:用FiddlerScript自动过滤敏感接口、批量重放与响应Mock
装好、抓通只是入门。真正提升效率的是让Fiddler从“被动记录仪”变成“主动流量控制器”。这里不讲复杂语法,只给三个我每天在用、复制即生效的FiddlerScript片段。
5.1 自动隐藏公司内部监控接口(减少干扰)
很多前端项目会静默上报埋点到/api/v1/track或/log/collect,这些请求占Sessions列表90%篇幅。在Fiddler中按Ctrl+R打开FiddlerScript编辑器,在static function OnBeforeRequest(oSession: Session)函数内插入:
// FiddlerScript - 自动隐藏指定路径的请求 if (oSession.uriContains("/api/v1/track") || oSession.uriContains("/log/collect") || oSession.uriContains("sensorsdata")) { oSession["ui-hide"] = "true"; // 隐藏该Session,不显示在列表 }逻辑说明:
uriContains()比正则更轻量,适合简单路径匹配;ui-hide是Fiddler内置标记,设为true后该请求完全不出现在UI,但仍在内存中可查(按Ctrl+F12看Raw Sessions)。
5.2 一键重放10次并统计平均耗时(替代Postman Runner)
选中任意一个Session → 右键 →Replay → Replay Multiple Times...,但默认不显示耗时。用脚本增强:
// 在OnBeforeRequest下方添加计时器 static var timerStart: DateTime; static function OnBeforeRequest(oSession: Session) { if (oSession.RequestMethod == "GET" && oSession.uriContains("/api/user")) { timerStart = DateTime.Now; } } static function OnBeforeResponse(oSession: Session) { if (oSession.RequestMethod == "GET" && oSession.uriContains("/api/user")) { var elapsed = (DateTime.Now - timerStart).TotalMilliseconds; oSession["ui-backcolor"] = "lightgreen"; // 标绿便于识别 oSession["ui-comments"] = "⏱️ " + elapsed.ToString("F0") + "ms"; // 写入注释 } }参数说明:
ui-backcolor支持lightgreen/yellow/pink等基础色;ui-comments内容会显示在Session右侧备注栏,重放10次后一眼看出哪次最慢。
5.3 Mock响应:把测试环境API临时替换成本地JSON文件
不想改前端代码,又想验证UI对异常数据的渲染?用Fiddler返回本地文件:
// 在OnBeforeResponse中添加 if (oSession.uriContains("/api/product/list")) { // 返回本地JSON文件(绝对路径) oSession.utilLoadResponseBody("C:\\fiddler-mock\\product-list.json"); oSession.responseCode = 200; oSession.oResponse.headers.Set("Content-Type", "application/json; charset=utf-8"); }注意:
utilLoadResponseBody要求路径为绝对路径,且文件需存在;若返回404,检查路径中反斜杠是否为双反斜杠\\(单\在JS中是转义符)。
我坚持一个习惯:每次接手新项目,第一件事不是看代码,而是用Fiddler抓10分钟真实流量,导出Session为SAZ文件,用文本编辑器全局搜索password、token、auth,确认敏感字段是否明文传输——这比读100页文档更快发现架构风险。Fiddler下载只是扳手,而怎么用它拧紧每一颗螺丝,才是工程师的日常。希望帮到你。
本文还有配套的精品资源,点击获取