Fiddler Everywhere Mac版:从下载到HTTPS抓取的完整指南
1. 为什么Mac开发者需要Fiddler Everywhere作为一个在Mac上调试网络请求的工具Fiddler Everywhere可以说是开发者的第三只眼睛。我刚开始做前端开发时经常遇到API请求失败但浏览器控制台没有任何有用信息的情况直到发现了这个神器。它不仅能捕获所有HTTP/HTTPS请求还能修改请求参数、模拟慢速网络甚至自动生成API文档。与Windows版的Fiddler Classic不同Fiddler Everywhere是专为跨平台设计的界面更现代化。实测在M1/M2芯片的MacBook上运行非常流畅不会出现Rosetta转译导致的性能问题。对于需要调试移动端应用的同学来说它还能捕获手机通过WiFi代理发送的请求这个功能我在调试混合App时帮了大忙。2. 下载与安装全流程2.1 获取安装包首先打开浏览器访问Telerik官网直接搜索Fiddler Everywhere下载就能找到。这里有个小技巧建议使用Safari下载我在Chrome下遇到过下载中断的情况。点击Download for macOS按钮后会开始下载.dmg文件最新版大约是150MB左右。注意官网有时会默认显示Windows版下载链接Mac用户需要手动切换到OS X标签页2.2 安装过程详解双击下载好的.dmg文件后会看到熟悉的macOS安装界面。这里有个关键步骤不是直接双击程序图标而是要把Fiddler图标拖到Applications文件夹。我遇到过新手直接双击.dmg里的程序运行结果每次都要重新挂载镜像的尴尬情况。安装完成后建议先不要急着打开程序而是到系统设置的隐私与安全性里检查是否允许运行来自Telerik的应用程序。特别是升级系统后这里经常需要重新授权。3. 初始配置避坑指南3.1 账号注册与激活第一次启动时会要求登录这里有个省时技巧直接使用GitHub账号关联登录比邮箱注册验证码的方式快很多。如果公司内网有访问限制记得先关闭代理我有次卡在验证码接收这一步就是因为忘了关代理。登录成功后界面可能会显示Trial Version不用紧张免费版基本功能完全够用。专业版主要是多了团队协作功能个人开发者暂时不需要。3.2 界面布局优化默认界面可能有点拥挤建议立即做两个调整在View菜单里开启Compact Mode把右侧的Inspectors面板拖到下方变成横向布局这样在13寸MacBook上也能舒适工作。我还会习惯性开启Auto Scroll选项这样查看实时请求时不会手动滚动。4. HTTPS抓取终极方案4.1 证书安装详解在菜单栏选择Settings HTTPS点击Trust Root Certificate按钮。这时会弹出钥匙串访问窗口找到名为DO_NOT_TRUST_FiddlerRoot的证书双击后展开信任选项将所有选项改为始终信任。这里有个Mac特有的坑证书可能默认安装在登录钥匙串但系统实际使用的是系统钥匙串。如果遇到抓包失败需要手动把证书拖到系统钥匙串里重新设置信任。4.2 设备代理配置对于iOS设备调试在Mac上查看本机IP地址后在手机WiFi设置里配置手动代理。端口默认是8866这个端口号可以在Fiddler的Connections设置里修改。我习惯改成好记的8888减少输错概率。完成代理设置后手机访问任何网页时Fiddler界面都会出现提示。这时需要在手机Safari访问http://your-mac-ip:8866下载安装证书后记得要到设置通用关于本机证书信任设置里启用证书。很多同学抓包失败就是因为漏了这最后一步。5. 实战抓包技巧5.1 过滤无用请求在复杂的单页应用里可能会同时收到几十个请求。我常用的过滤组合是在Filter栏输入process:your-app-name勾选Hide Image/Audio/Video设置响应时间大于500ms的请求显示红色这样能快速定位问题请求。对于GraphQL接口建议开启WebSocket捕获这在调试实时应用时特别有用。5.2 修改请求参数右键任意请求选择Compose New可以构造自定义请求。有个高级技巧先捕获正常请求然后右键选择Clone as cURL把命令粘贴到终端测试确认无误后再用Compose功能构造新请求。这样能避免手写出错。6. 常见问题排查6.1 证书报错处理如果遇到certificate unknown错误尝试以下步骤完全退出Fiddler删除钥匙串中所有Fiddler相关证书重新启动Fiddler并安装证书重启浏览器对于Chrome特别顽固的情况可能需要额外执行defaults write com.google.Chrome AutoSelectCertificateForUrls -array-add -string {pattern:*,filter:{ISSUER:{CN:DO_NOT_TRUST_FiddlerRoot}}}6.2 连接失败排查当手机无法连接代理时按这个顺序检查确认Mac和手机在同一WiFi网络关闭Mac防火墙系统设置网络防火墙在终端执行ping 手机IP测试连通性检查Fiddler的Allow remote computers to connect选项是否勾选7. 高阶应用场景7.1 接口性能分析使用Statistics面板可以查看请求瀑布图我常用这个功能优化API调用顺序。比如发现某个基础信息接口响应慢导致后续接口等待就会考虑在前端加入缓存机制。7.2 自动化测试配合通过Rules Customize Rules可以编写脚本自动修改请求。我写过一个自动在所有请求头添加Authorization字段的脚本static function OnBeforeRequest(oSession: Session) { if(!oSession.oRequest.headers.Exists(Authorization)){ oSession.oRequest.headers.Add(Authorization, Bearer your-token); } }把这个脚本保存后调试需要认证的API时就不用每次都手动添加token了。