一、工具安装与基础配置
1.1 跨平台安装指南
Fiddler提供Windows原生版本与macOS的Fiddler Everywhere版本,两者均支持HTTP/HTTPS流量捕获。安装时需注意:
- Windows版:直接运行安装包,建议勾选”Add to PATH”(如适用)以便命令行调用
- macOS版:通过PKG包安装后,需在系统设置中授予网络监控权限
- 版本验证:启动后通过
Help > About确认版本号≥5.0(支持HTTPS自动解密)
1.2 核心工作模式
工具启动后默认进入捕获模式,状态栏显示三种状态:
- Capturing:实时捕获所有经过系统代理的流量
- Paused:暂停捕获(点击可恢复)
- Filtered:应用过滤器后的捕获状态
建议新手保持默认配置,通过File > Capture Traffic手动控制捕获范围。
二、多端代理配置实战
2.1 电脑端流量捕获
默认配置仅捕获本机流量,如需监控特定进程流量:
- 打开
Rules > Customize Rules(或按F12) - 搜索
OnBeforeRequest函数,添加进程过滤逻辑:if (oSession.LocalProcessID == 1234){ // 替换为目标进程IDoSession["ui-color"] = "pink"; // 高亮显示}
- 保存后重启捕获,目标进程流量将单独标记
2.2 移动端代理配置
iOS/Android通用配置流程:
-
电脑端准备:
- 开启远程连接:
Tools > Options > Connections勾选Allow remote computers to connect - 记录IP地址:在命令行执行
ipconfig(Windows)或ifconfig(macOS)获取IPv4地址 - 确认端口:默认8888(可在Connections设置中修改)
- 开启远程连接:
-
移动端配置:
- Wi-Fi设置:长按当前网络→修改网络→高级选项→手动代理
- 参数填写:
- 主机名:电脑IP地址
- 端口:8888
- iOS特殊处理:需安装描述文件(通过Safari访问
http://<电脑IP>:8888下载)
验证方法:在移动端浏览器访问http://<电脑IP>:8888,应显示Fiddler欢迎页。
三、HTTPS流量解密全攻略
3.1 证书安装原理
HTTPS抓包需要安装Fiddler根证书,其作用机制:
- 客户端发起HTTPS请求时,Fiddler作为中间人拦截
- 使用自签名根证书生成伪证书返回给客户端
- 客户端验证证书链时信任Fiddler根证书,完成加密通信
3.2 电脑端配置步骤
- 启用解密:
Tools > Options > HTTPS勾选Decrypt HTTPS traffic - 证书管理:
- 点击
Actions > Trust Root Certificate安装系统证书 - 对于企业环境,需额外导出证书(
.cer格式)并通过组策略分发
- 点击
- 特殊场景处理:
- 自签名证书网站:在
HTTPS设置中添加例外域名 - 证书固定(Pinning)应用:需使用
FiddlerScript绕过验证(见3.4节)
- 自签名证书网站:在
3.3 移动端证书配置
Android配置流程:
- 导出证书:
Actions > Export Root Certificate to Desktop生成.cer文件 - 传输到手机:通过邮件/云存储等方式
- 安装证书:
- Android 7+:设置→安全→加密与凭据→从存储设备安装
- 需设置锁屏PIN/密码后才能安装
iOS配置流程:
- 将
.cer文件上传至某在线存储服务 - 在Safari中打开链接,按提示安装描述文件
- 进入
设置→通用→关于本机→证书信任设置启用完全信任
3.4 高级证书处理技巧
证书固定绕过方案:
对于实施了证书固定的应用,可通过FiddlerScript修改响应头:
static function OnBeforeResponse(oSession: Session) {if (oSession.uriContains("api.example.com")) {oSession.oResponse["headers"] +="X-Fiddler-Cert-Pinning-Bypass: true\r\n";}}
证书有效期管理:
- 默认证书有效期1年,到期前需重新生成:
Tools > Options > HTTPS点击Actions > Reset All Certificates- 重启Fiddler并重新安装证书
四、常见问题解决方案
4.1 移动端无法连接代理
排查步骤:
- 确认电脑防火墙允许8888端口入站连接
- 检查移动端是否与电脑在同一子网(可通过ping测试)
- 尝试关闭电脑VPN/代理软件
- 重启Fiddler并重新配置代理
4.2 HTTPS请求显示为CONNECT隧道
原因分析:
- 证书未正确安装
- 应用启用了证书固定
- 使用了非标准端口(非443)
解决方案:
- 确认证书信任状态
- 在Fiddler中启用
Decrypt HTTPS traffic并勾选...from all processes - 对于非标准端口,在
Custom Rules中添加:if (oSession.port != 443){oSession.oFlags["x-overrideHttpsPorts"] = oSession.port;}
4.3 性能优化建议
- 大流量场景:在
Rules > Performance中启用Ignore Server Cert Errors - 历史数据管理:定期清理会话列表(
File > Clear All Sessions) - 内存优化:在
Tools > Fiddler Options中调整MaxTabsCount和MaxSessionCount
五、企业级应用扩展
5.1 自动化测试集成
通过FiddlerCore SDK(需单独申请许可)可将抓包功能嵌入测试框架:
// C#示例:启动Fiddler代理Fiddler.FiddlerApplication.Startup(8888, true, true);// 配置HTTPS解密Fiddler.CONFIG.IgnoreServerCertErrors = true;// 捕获特定URLFiddler.URLMonitorFilter.Add("https://api.example.com/*");
5.2 安全审计方案
结合日志服务实现流量审计:
- 配置Fiddler将会话导出为SAZ文件
- 使用日志解析工具提取关键信息:
# 示例:使用jq解析JSON格式的日志cat requests.log | jq '.[] | select(.status_code >= 400)'
- 将敏感操作日志存入对象存储,设置保留周期
结语
通过系统掌握Fiddler的代理配置、证书管理及自动化扩展能力,开发者可构建覆盖全平台的API调试环境。对于企业用户,建议结合监控告警系统建立异常流量检测机制,在提升研发效率的同时保障系统安全。实际使用中需注意遵守相关法律法规,仅在授权范围内进行流量捕获与分析。