一、工具安装与环境准备
1.1 版本选择与安装流程
Fiddler提供Windows经典版与跨平台Fiddler Everywhere两种选择。Windows版本基于.NET Framework开发,支持完整的脚本扩展能力;跨平台版本采用Electron架构,可在macOS/Linux系统运行。安装时需注意:
- 关闭所有浏览器进程避免代理冲突
- 安装完成后建议重启系统确保网络驱动加载
- 企业网络环境下可能需要联系IT部门放行相关端口
1.2 初始配置检查
启动后重点检查三个核心区域:
- 状态栏:确认”Capturing”指示灯常亮(红色表示正在捕获)
- 过滤器面板:建议初始设置
Show only the following Hosts并添加常用域名 - 会话列表:右键列标题可添加
Process、Body Size等实用字段
典型问题处理:
- 若无法显示请求,检查防火墙是否放行8888端口
- Chrome浏览器需关闭”使用安全DNS”选项
- 移动端连接失败时尝试重启手机Wi-Fi模块
二、跨设备代理配置详解
2.1 PC端高级代理设置
通过Tools > Options > Connections进入核心配置界面:
- 监听端口:建议修改为非标准端口(如8889)增强安全性
- 路由重定向:可配置
*.test.local等内部域名自动转发 - HTTPS解密:需与后文HTTPS配置联动使用
2.2 移动端抓包完整流程
以Android设备为例:
- 获取电脑IP:命令行执行
ipconfig查找IPv4地址 - 配置代理:设置 > WLAN > 高级选项 > 手动代理
- 证书安装:
- 电脑端导出证书:
Actions > Export Root Certificate to Desktop - 通过文件管理器将.cer文件传输到手机
- 设置 > 安全 > 加密凭据 > 从存储设备安装
- 电脑端导出证书:
- 验证连接:访问
http://电脑IP:8888查看Fiddler回显页面
iOS设备需注意:
- 必须使用Safari浏览器下载证书
- 需在
设置 > 关于本机中手动信任证书 - 抓包完成后建议移除代理配置避免流量泄露
三、HTTPS流量解密技术
3.1 解密原理与安全考量
Fiddler通过中间人攻击(MITM)技术实现解密,核心流程:
- 客户端发起HTTPS请求
- Fiddler拦截请求并替换为自签名证书
- 与服务器建立正常TLS连接
- 将解密后的数据转发给客户端
安全建议:
- 仅在调试环境启用该功能
- 定期更新Fiddler根证书
- 抓包完成后立即禁用解密选项
3.2 配置实战步骤
-
电脑端解密:
- 勾选
Decrypt HTTPS traffic - 在
Actions菜单选择Trust Root Certificate - 重启浏览器使证书生效
- 勾选
-
移动端解密:
- 导出证书到手机(见2.2步骤)
- 安装后需在
网络设置 > 高级 > 安装证书中启用 - 某些Android版本需手动设置PIN码才能使用系统证书
-
特殊场景处理:
- HSTS网站:在过滤器中添加
@hsts=false临时禁用强制HTTPS - 证书固定(Pinning)应用:需使用JustTrustMe等工具绕过
- 自签名证书:在Fiddler中添加
Ignore server certificate errors选项
- HSTS网站:在过滤器中添加
四、高级调试技巧
4.1 请求构造与重放
通过Composer面板实现:
- 修改请求方法(GET/POST/PUT等)
- 调整Header参数(如添加Authorization头)
- 重新发送历史请求进行边界测试
- 导入cURL命令自动生成请求(需删除敏感信息)
4.2 自动化脚本扩展
使用FiddlerScript(基于JScript.NET):
// 示例:自动修改所有请求的User-Agentstatic function OnBeforeRequest(oSession: Session) {if (oSession.uriContains("example.com")) {oSession.oRequest["User-Agent"] = "MyCustomAgent/1.0";}}
常用事件钩子:
OnBeforeRequest:请求发送前修改OnBeforeResponse:响应返回前修改OnPeekAtResponseHeaders:预览响应头
4.3 性能分析工具
-
统计面板:
- 显示总请求数、数据量、平均耗时
- 按MIME类型分类统计
- 识别大体积资源(如未压缩的图片)
-
时间线视图:
- 可视化请求时间分布
- 检测队列阻塞现象
- 定位DNS解析/TCP连接等阶段耗时
-
对比测试:
- 使用
Replay > Against Specific Session进行AB测试 - 结合
Filters排除干扰请求 - 导出CSV数据用于进一步分析
- 使用
五、常见问题解决方案
5.1 抓包空白处理流程
- 检查代理设置是否正确
- 清除浏览器DNS缓存
- 重启Fiddler服务(
File > Capture Traffic切换状态) - 尝试更换监听端口
- 检查系统hosts文件是否有冲突配置
5.2 证书错误排查
- 错误代码
NET::ERR_CERT_INVALID:证书未正确安装 - 错误代码
NET::ERR_CERT_AUTHORITY_INVALID:未信任根证书 - iOS设备出现”不信任的证书”:需在设置中手动启用
- Android 7+设备:需将证书安装到系统分区
5.3 性能优化建议
- 关闭不必要的过滤器规则
- 限制会话列表显示数量(
Rules > Performance > Limit Sessions) - 使用
AnyProcess过滤器排除系统进程 - 定期清理旧会话(
File > Remove All Sessions)
通过系统掌握这些技术要点,开发者可以构建完整的网络调试知识体系。建议结合实际项目进行实践,逐步掌握从基础抓包到高级协议分析的全流程能力。对于企业级应用,可考虑集成日志服务与监控告警系统,实现网络问题的自动化检测与告警。