一、环境准备与基础抓包
1.1 跨平台安装与启动
Fiddler提供Windows经典版与跨平台的Fiddler Everywhere版本,后者支持macOS和Linux系统。安装完成后首次启动时,软件会自动配置系统网络代理(端口默认8888),此时左下角状态栏显示”Capturing”即表示进入抓包模式。若需暂停抓包,点击状态栏切换至”Paused”状态即可。
典型场景验证:打开浏览器访问任意HTTPS网站(如示例站点),在左侧会话列表中应能看到实时请求。每个会话包含请求方法(GET/POST)、URL、状态码等基础信息,双击可展开查看完整请求头与响应体。
1.2 过滤规则配置
面对海量网络请求时,可通过Filters面板设置精准过滤:
- 主机过滤:
example.com只显示目标域名请求 - 进程过滤:勾选
Show only the following processes选择特定应用 - 端口过滤:
80,443限制显示HTTP/HTTPS流量 - 响应码过滤:
5xx快速定位服务器错误
二、多端代理配置实战
2.1 电脑端代理设置
当需要调试本地开发服务时,需在Fiddler中配置上游代理:
- 进入
Tools > Options > Gateway - 选择
Manual proxy configuration - 输入上级代理地址(如企业内网代理)
- 勾选
Bypass Fiddler for localhost traffic避免本地请求循环
验证方法:访问http://localhost:3000应能看到本地服务请求,同时外网请求仍经过Fiddler转发。
2.2 移动端抓包配置
调试移动应用时需完成三步配置:
-
电脑端准备:
- 启用远程连接:
Tools > Options > Connections勾选Allow remote computers to connect - 记录IP地址:在命令行执行
ipconfig获取IPv4地址 - 确认端口:默认8888(可修改但需同步更新移动端配置)
- 启用远程连接:
-
移动端配置:
- Wi-Fi高级设置中手动配置代理
- 主机名填写电脑IP,端口填写8888
- iOS设备需安装Fiddler根证书(见下文HTTPS配置)
-
网络连通性测试:
# 在移动端执行(需安装curl)curl -v http://电脑IP:8888
应返回Fiddler的默认响应页面,表明代理配置成功。
三、HTTPS流量解密全流程
3.1 证书信任配置
解密HTTPS流量需完成证书链信任:
-
电脑端证书安装:
- 进入
Tools > Options > HTTPS - 勾选
Decrypt HTTPS traffic - 点击
Actions > Trust Root Certificate - 在系统证书管理中确认”DO_NOT_TRUST_FiddlerRoot”证书已安装到”受信任的根证书颁发机构”
- 进入
-
移动端证书配置:
- 电脑端导出证书:
Actions > Export Root Certificate to Desktop生成.cer文件 - 通过邮件/文件共享将证书传输到移动设备
- iOS:设置→通用→关于本机→证书信任设置
- Android:设置→安全→加密与凭据→从存储设备安装
- 电脑端导出证书:
3.2 常见问题处理
现象1:移动端显示”NET::ERR_CERT_INVALID”
- 原因:系统时间不正确或证书未完全信任
- 解决方案:
- 检查设备日期时间设置
- 在iOS的证书信任设置中启用完全信任
现象2:抓包显示”Tunnel to”但无实际内容
- 原因:HTTPS握手失败或SNI检测问题
- 解决方案:
- 在Fiddler的
Rules > Customize Rules中修改脚本:static function OnBeforeRequest(oSession: Session) {if (oSession.HTTPMethodIs("CONNECT")) {oSession["x-breakrequest"] = "yup";}}
- 重启Fiddler后重试
- 在Fiddler的
四、高级调试技巧
4.1 请求修改与重放
通过Composer面板可实现:
- 修改请求参数:直接编辑请求头/体内容
- 保存常用请求:
Save > Request生成.far文件 - 批量重放测试:
Replay > Reissue Requests设置并发数与延迟
典型应用:测试接口参数边界值时,可快速修改JSON请求体中的数值字段进行验证。
4.2 性能分析工具
使用Statistics面板获取关键指标:
- 会话总数:总请求数量
- DNS解析时间:平均DNS查询耗时
- TCP建立时间:三次握手平均耗时
- 请求读写时间:客户端发送/接收数据耗时
优化建议:当TCP/IP Connect耗时超过200ms时,建议检查网络链路质量或考虑使用CDN加速。
4.3 自动化脚本扩展
通过FiddlerScript实现自定义逻辑:
// 示例:自动标记404响应static function OnBeforeResponse(oSession: Session) {if (oSession.responseCode == 404) {oSession["ui-color"] = "pink";oSession["ui-bold"] = "true";}}
保存脚本后,所有404响应将在会话列表中高亮显示。
五、安全注意事项
- 生产环境禁用:Fiddler会降低网络传输效率,调试完成后应立即关闭代理
- 证书管理:定期清理不再使用的设备证书,避免中间人攻击风险
- 数据脱敏:调试包含敏感信息的接口时,建议使用
Rules > Customize Rules过滤日志中的token等字段 - 企业合规:在受监管环境中使用前,需确认符合数据采集相关政策要求
通过系统掌握上述技巧,开发者可构建完整的网络调试知识体系,显著提升问题定位效率。建议结合实际项目场景进行针对性练习,逐步积累常见问题的快速解决方案库。