一、协议捕获基础配置
1.1 HTTP流量捕获
作为默认支持的协议类型,HTTP流量捕获无需特殊配置。启动Fiddler后,所有通过本地回环地址(127.0.0.1)或系统代理的HTTP请求将自动显示在会话列表中。建议通过Options > Connections设置监听端口(默认8888),并勾选Allow remote computers to connect以支持远程设备接入。
1.2 HTTPS解密配置
对于加密流量,需完成三步关键配置:
-
证书信任链建立
进入Tools > Options > HTTPS,勾选以下选项:Decrypt HTTPS trafficIgnore server certificate errors (unsafe)...from all processes(全流量解密)
-
证书生成与部署
点击Actions > Trust Root Certificate,将根证书安装至系统证书库。对于移动端抓包,需额外导出证书:# 命令行生成PEM格式证书(示例)openssl x509 -in FiddlerRoot.cer -inform DER -outform PEM -out FiddlerRoot.pem
-
浏览器证书管理
在Chrome/Firefox中导入生成的.cer文件,路径为设置 > 隐私与安全 > 证书管理 > 授权中心。企业环境需注意证书策略冲突问题。
二、移动端抓包实战
2.1 代理服务器配置
-
网络环境准备
确保移动设备与开发机处于同一局域网,关闭主机防火墙(或开放8888端口)。在Fiddler中启用远程连接:// FiddlerScript示例:修改OnBeforeRequest响应头static function OnBeforeRequest(oSession: Session) {if (oSession.HTTPMethodIs("CONNECT")) {oSession["x-replywithtunnel"] = "FakeTunnel";}}
-
设备代理设置
- iOS:
设置 > Wi-Fi > HTTP代理 > 手动,输入主机IP和端口 - Android:长按WiFi网络选择
修改网络 > 高级选项 > 代理,部分定制ROM需通过ADB命令:adb shell settings put global http_proxy <IP>:<PORT>
- iOS:
2.2 证书安装与验证
-
iOS设备
通过Safari访问http://<主机IP>:8888下载证书,在设置 > 已下载描述文件中安装,最后至关于本机 > 证书信任设置启用完全信任。 -
Android设备
将证书文件(.cer或.pem)放入/sdcard/Download/目录,通过设置 > 安全 > 加密与凭据 > 从存储设备安装选择证书文件。部分系统需Root权限才能安装用户证书。
三、高级过滤与自动化
3.1 多维度过滤系统
-
基础域名过滤
在Filters选项卡设置:Hosts:支持通配符(如*.baidu.com)Processes:通过进程名过滤(如chrome.exe)- 注意:同时启用域名和进程过滤可能导致会话丢失,建议优先使用单一过滤维度。
-
响应状态过滤
通过Status Code字段筛选特定HTTP状态码(如仅显示4xx/5xx错误),结合Response Size可定位大文件传输问题。
3.2 自动化规则引擎
利用FiddlerScript实现复杂逻辑:
// 示例:自动重定向特定请求static function OnBeforeResponse(oSession: Session) {if (oSession.uriContains("api.example.com/v1")) {oSession.fullUrl = oSession.fullUrl.Replace("v1", "v2");oSession["ui-color"] = "pink"; // 高亮显示修改的会话}}
四、常见问题处理
4.1 证书错误排查
- 现象:浏览器显示
NET::ERR_CERT_AUTHORITY_INVALID - 解决方案:
- 确认系统时间正确
- 检查证书是否安装至
受信任的根证书颁发机构存储区 - 尝试清除浏览器SSL状态(Chrome:
设置 > 隐私和安全 > 清除浏览数据 > 缓存的图像和文件)
4.2 移动端抓包失败
- iOS:检查是否启用
Airplane Mode或VPN干扰 - Android:确认系统版本是否限制非市场应用安装证书(需ADB命令或Root)
- 通用方案:使用
tcpdump + Wireshark组合工具进行底层抓包
五、性能优化建议
-
会话缓存管理
通过Rules > Performance > Decrypt HTTPS动态控制解密范围,减少高流量场景下的CPU占用。 -
自定义列显示
右键点击会话列表标题栏,添加X-Powered-By、Server等响应头字段,快速识别服务端技术栈。 -
导出格式选择
支持HTTPArchive(.har)、CSV、XML等多种格式,其中HAR格式可直接导入Postman或Chrome DevTools进行二次分析。
通过系统化的配置和实战技巧,开发者可充分发挥Fiddler在协议分析、性能调优和安全审计方面的价值。建议结合Charles、Wireshark等工具形成完整抓包工具链,应对不同层级的网络调试需求。