简介Fiddler是一款由Telerik开发的HTTP协议抓包与调试代理工具面向开发者、测试人员及需要排查网络问题的用户可帮助分析请求响应、定位接口异常与页面加载瓶颈。本资源为Fiddler下载包采用7z压缩格式共包含90个文件整体约3.11MB其中以dll动态库、exe可执行程序、pdb调试符号、dat响应模板、wav提示音、config配置及ico图标等为主覆盖主程序、证书工具、脚本编辑器与导入导出组件等模块结构完整解压后即可运行使用。目前已有2248人学习下载适合希望快速获取工具并上手抓包调试的读者。借助该资源可完成HTTP与HTTPS流量捕获、断点调试、AutoResponder本地映射、会话过滤与性能时间线分析等操作为接口测试、前端联调和网络排错提供实用支撑。1. Fiddler下载之后一个抓包工具怎么就成了调试刚需很多人第一次听到 Fiddler是因为某个接口死活调不通日志打了满屏也看不出问题同事甩过来一句“你抓个包看看”。于是开始搜 Fiddler 下载装完打开发现满屏都是本机流量浏览器、后台服务、更新程序全在里面滚反而不知道该看哪一条。这个场景几乎每个后端、前端、测试、移动端开发都经历过。Fiddler 本质是一个 HTTP/HTTPS 代理抓包工具工作在应用层把经过它的请求和响应完整记录下来还能改包、重放、限速、断点。它解决的不是“写代码”的问题而是“我看不见中间发生了什么”的问题。接口返回 500 但服务端日志正常、App 请求参数和文档对不上、线上环境偶发超时本地复现不了这些都属于它的射程。适合谁后端联调、前端排查跨域和缓存、测试构造异常响应、移动端看 SDK 到底发了什么都用得上。它不挑语言只挑你会不会配代理和证书。2. 抓包原理与 Fiddler 下载安装中间人代理到底怎么工作2.1 中间人代理模型为什么流量会“路过”FiddlerFiddler 启动后会在本机监听一个端口默认是 8888。它把自己注册成系统代理浏览器和大部分走系统代理设置的程序请求就不再直连目标服务器而是先发给 Fiddler。Fiddler 拿到请求后以客户端身份转发给真实服务器拿到响应再回给客户端。对客户端来说Fiddler 就是服务器对服务器来说Fiddler 就是客户端。这就是中间人代理的基本模型。理解这一点很关键因为它决定了三件事。第一只有走了代理的流量才能被抓到不走系统代理的程序需要单独配置。第二HTTPS 要能看懂内容必须让客户端信任 Fiddler 自己签发的证书否则只能看到 CONNECT 隧道和加密后的乱码。第三Fiddler 关掉后如果系统代理没恢复浏览器会直接上不了网这是新手最常见的“翻车”现场。2.2 下载与安装版本选择和安装路径Fiddler 目前主流是 Fiddler Classic 和 Fiddler Everywhere 两条线。Classic 是免费的老牌版本功能全、插件生态成熟Windows 上体验最好Everywhere 是跨平台的新版本macOS 和 Linux 上更友好但部分高级功能走订阅。做 Windows 端调试Classic 足够用 Mac 又不想折腾选 Everywhere。下载渠道建议只走官方站点第三方下载站的安装包经常捆绑推广组件装完浏览器主页被改这种血泪经验不值得重复。安装本身没什么坑一路下一步即可注意安装路径不要带中文和空格某些插件加载时对路径敏感。安装完成后第一次启动建议先做两件事在 Tools Options HTTPS 里勾选 Decrypt HTTPS traffic让 Fiddler 生成根证书在 Connections 里确认端口和“允许远程连接”是否符合你的场景。只抓本机就保持默认要抓手机或另一台机器才需要打开远程连接。2.3 证书配置HTTPS 能看懂内容的唯一前提HTTPS 抓包失败九成是证书没装对。Fiddler 解密 HTTPS 的原理是它用自己的根证书给每个域名动态签发一张证书客户端如果信任了这个根证书就会信任 Fiddler 签发的所有域名证书从而愿意把明文交给 Fiddler。Windows 上勾选 Decrypt HTTPS traffic 后按提示把证书装进“受信任的根证书颁发机构”即可。浏览器如果用的是自己的证书库比如某些独立内核的浏览器还要单独导入。移动端更麻烦手机要先连上 Fiddler 所在机器的代理再用手机浏览器访问 Fiddler 的证书下载地址把证书装进系统信任区。Android 7 以后用户证书对 App 默认不生效很多 App 只信任系统证书这时候要么用低版本系统要么在可调试的 App 上配置网络安全策略这是绕不过去的边界。提示证书装完后如果还是显示乱码或 CONNECT 失败先检查系统时间是否准确证书有效期对时间敏感。3. 会话列表与过滤器把满屏流量收敛到你要看的那几条3.1 会话列表每一列在说什么Fiddler 主界面最核心的就是左侧会话列表。每一行是一次请求/响应往返列的含义直接决定你排查效率。# 是序号Result 是状态码Protocol 是协议Host 是目标主机URL 是路径Body 是响应体大小Caching 是缓存相关Content-Type 是响应类型Process 是发起请求的进程。很多人只盯着 URL 看其实 Process 列特别有用——它能告诉你这条请求到底是哪个程序发出来的排查后台偷偷上报、更新检查时一眼就能定位。右键列头可以自定义显示列我一般会把 Process、ClientIP、Response-Time 打开。Response-Time 能直观看出哪条请求慢配合排序性能问题很快能锁定到具体接口。3.2 过滤器先做减法再做加法不过滤的话一个页面几十上百条请求找目标接口像大海捞针。Fiddler 右侧的 Filters 面板就是干这个的。常见做法是先在 Hosts 里填目标域名只保留相关流量再用 Request Headers 的 Show only if URL contains 缩小到具体路径。下面这段是 Filters 面板里常用的配置思路用文字描述对应操作Hosts 区域选择“Show only the following Hosts”填入api.example-target.com多个域名用分号隔开。Request Headers 区域勾选“Show only if URL contains”填入/v2/order只留订单相关接口。Response Status Code需要只看失败请求时填4xx,5xx。勾选“Use Filters”让规则生效不勾选等于没配。配好过滤器后会话列表会立刻收敛。这里有个容易忽略的点过滤器是“显示过滤”不是“抓取过滤”被过滤掉的请求其实还是被抓到了只是不显示。所以排查“请求到底发没发出去”时先把过滤器关掉确认别被显示层骗了。3.3 断点与重放改一个参数看服务端反应抓包只是看Fiddler 更强的是能改。常用两个能力断点和重放。断点分两种Before Requests 是在请求发出前拦下After Responses 是在响应回来时拦下。开启方式是在 Rules Automatic Breakpoints 里选或者用命令行输入bpu /api/order只对特定 URL 下断点。拦下后可以在 Inspectors 里直接改请求参数点 Run to Completion 放行观察服务端返回变化。这个能力在验证“是不是某个参数导致的问题”时特别高效。重放更简单选中一条会话按 R 键或者右键 Replay就能原样再发一次。配合断点改参数可以快速构造边界用例。比如把pageSize从 10 改成 10000看服务端有没有做上限校验把userId改成别人的验证越权——当然这类测试只能在你有授权的环境里做。# Fiddler 命令行底部黑色输入框常用快捷指令 bpu /api/order # 对包含该路径的请求下请求前断点 bpafter /api/order # 对响应下断点 bpU # 清除所有请求断点 cls # 清空会话列表 select json # 高亮 Content-Type 为 json 的会话这些命令直接敲在 Fiddler 底部的命令行里回车生效。bpu和bpafter是最常用的两个前者改请求后者改响应。select配合 Content-Type 能快速把 JSON 接口挑出来比手动翻列表快得多。4. 移动端抓包与 HTTPS 解密手机流量怎么进 Fiddler4.1 手机代理配置同一网段是前提抓手机包的第一步是让手机和电脑在同一个局域网。然后在手机 Wi-Fi 设置里把代理改成手动主机名填电脑的局域网 IP端口填 Fiddler 监听的端口默认 8888。电脑端要在 Connections 里勾选“Allow remote computers to connect”否则手机连不上。电脑 IP 用ipconfigWindows或ifconfigmacOS/Linux查。这里常见的坑是电脑开了防火墙8888 端口被拦手机一直转圈。临时关掉防火墙或者给 Fiddler 放行即可。4.2 手机证书安装Android 与 iOS 的差异代理通了之后手机浏览器访问http://电脑IP:8888会打开 Fiddler 的证书下载页点链接下载证书并安装。iOS 上装完证书还没完要去“设置 通用 关于本机 证书信任设置”里手动把 Fiddler 根证书的开关打开否则不生效。这一步漏掉的人非常多表现为代理通了但 HTTPS 全是乱码。Android 上证书装到“用户”区对大部分 App 不生效因为 Android 7 以后 App 默认只信任系统证书。能做的有几种在可调试的 App 里加 network security config 信任用户证书用低版本 Android 测试机或者接受这个边界只抓那些信任用户证书的 App。这不是 Fiddler 的问题是系统安全策略别在这上面死磕。4.3 只抓目标 App减少干扰手机抓包最大的干扰是各种 App 的后台上报会话列表刷得飞快。除了用 Filters 按域名过滤还可以在 Fiddler 里按进程过滤但手机流量没有本机进程信息只能靠域名。常见做法是先把目标 App 的操作走一遍记住它请求的域名特征再用 Filters 只留这个域名。Filters 配置示例手机抓包场景 Hosts: Show only the following Hosts api.target-app.com; cdn.target-app.com Request Headers: Show only if URL contains /v1/ Response Status Code: 留空表示全部这样配置后列表里基本只剩目标 App 的接口请求排查效率提升明显。注意域名要填全有些 App 会把接口分散在多个子域名下漏一个就会觉得“怎么少了几条请求”。5. 避坑与排查Fiddler 用不起来时先看这几条5.1 现象浏览器所有网站都打不开原因Fiddler 异常退出或强制结束进程系统代理设置没被还原浏览器还在往一个已经关闭的代理端口发请求。解决Windows 在“设置 网络和 Internet 代理”里把手动代理关掉macOS 在“网络 高级 代理”里取消勾选。养成习惯退出 Fiddler 用正常关闭别直接杀进程。如果已经打不开网页先关代理再重新打开 Fiddler。5.2 现象HTTPS 请求全是 CONNECT 隧道看不到内容原因证书没装、装错位置或者客户端不信任 Fiddler 根证书。解决确认 Decrypt HTTPS traffic 已勾选确认证书装在“受信任的根证书颁发机构”iOS 确认证书信任开关已打开Android 确认是否受系统证书策略限制。逐条排除别跳步。5.3 现象手机连不上代理一直超时原因电脑防火墙拦截、手机和电脑不在同一网段、Connections 里没允许远程连接。解决先 ping 一下电脑 IP 通不通检查 Fiddler Connections 设置临时关闭防火墙测试。公司网络如果有客户端隔离手机和电脑可能互相不可见换一个网络环境再试。5.4 现象抓到的响应体是乱码原因响应经过 gzip 压缩或者 Content-Type 不是文本类型Fiddler 默认没解压。解决在 Inspectors 里点 Response 的 Transformer 或 TextView 查看Fiddler 一般会自动解压。如果还是乱码检查是不是二进制内容图片、protobuf这类内容本来就不是给人看的需要另存为文件再用对应工具解析。5.5 现象某些请求就是抓不到原因程序没走系统代理比如用了自己的网络库直连、走了 HTTP/2 或 QUIC、或者目标端口不是 80/443。解决确认程序是否遵循系统代理对于不走代理的程序可以尝试在代码里显式指定代理QUIC 走 UDPFiddler 默认抓不到需要在浏览器里禁用 QUIC 或改用 TCP。这是工具的能力边界不是配置问题。6. 进阶技巧用 FiddlerScript 和自定义规则把重复劳动干掉抓到包只是起点真正省时间的是把重复操作自动化。Fiddler 内置 FiddlerScript基于 JScript.NET可以在 Rules Customize Rules 里编辑。它能在请求发出前、响应返回后插入自定义逻辑比如自动给所有请求加一个 Header、自动把某个域名的响应替换成本地文件、自动记录慢请求。一个常见需求是给测试环境的请求统一加鉴权头省得每次手动改。下面这段脚本在请求发出前给指定域名加上 Header// Rules Customize Rules找到 OnBeforeRequest 函数 static function OnBeforeRequest(oSession: Session) { // 只对目标测试域名生效避免污染其他流量 if (oSession.HostnameIs(api.target-app.com)) { // 统一注入鉴权头值从本地配置读取 oSession.oRequest[X-Debug-Token] local-test-token; } // 标记响应时间超过 2 秒的请求方便后续筛选 if (oSession.responseTime 2000) { oSession[ui-color] red; } }这段逻辑分两部分。第一部分用HostnameIs精确匹配域名只给目标接口注入X-Debug-Token避免影响其他流量实际使用时把 token 换成你自己的测试凭证。第二部分判断responseTime超过 2000 毫秒的会话标红排查性能问题时一眼就能看到慢请求。ui-color是 Fiddler 提供的会话着色属性支持 red、blue、green 等。另一个高频技巧是响应替换。前端联调时后端接口没 ready可以用 Fiddler 把请求重定向到本地 mock 文件。在 OnBeforeResponse 里判断 URL把oSession.ResponseBody替换成读取到的本地内容同时改掉状态码和 Content-Type。这样前端不用等后端自己就能跑通流程。验证脚本是否生效最直接的方法是看会话列表的颜色和 Inspectors 里的 Header。改完脚本按 CtrlS 保存Fiddler 会提示是否重新加载确认即可。脚本写错会导致 Fiddler 启动异常改之前建议备份 CustomRules.js出问题能快速回滚这就是后悔药。我自己的习惯是每换一个项目先把 Filters 和 FiddlerScript 按这个项目的域名配一遍存成不同的规则文件切换项目时直接换。从那以后我每次开抓包前都强制走一遍“确认代理、确认证书、确认过滤器”这三步省下的排查时间远比配置花的多。希望帮到你。本文还有配套的精品资源点击获取