Fiddler是一个非常经典且强大的HTTP/HTTPS网络调试代理工具。原理是在电脑和网络之间建立一个代理服务器,能清晰地看到所有进出的网络数据,并对其进行操作。
移动端抓包
保证网络连通:手机和电脑必须连接同一个Wi-Fi。
开启远程连接:在Fiddler中点击 Tools -> Options -> Connections,勾选 Allow remote computers to connect,默认端口是8888,点OK后需要重启Fiddler。
配置手机代理:在手机Wi-Fi设置中开启手动代理,填入电脑的IP地址和Fiddler的端口号(默认8888)。
手机安装证书:用手机浏览器访问 http://你的电脑IP:8888,下载并安装Fiddler的根证书,这样才能抓取APP的HTTPS流量。
HTTPS解密配置
开启解密开关:点击 Tools -> Options -> HTTPS,勾选 Capture HTTPS CONNECTs 和 Decrypt HTTPS traffic。
信任根证书:当弹出询问是不是信任Fiddler根证书的对话框时,点击Yes。如果后续出现问题,可以在这里点击Actions -> Reset All Certificates重置证书。
断点调试
Fiddler的断点功能相当于给网络请求按下了暂停键,让能修改数据后再放行,方便模拟各种边界场景或绕过前端限制。
两种断点方式:
请求前断点:修改请求数据后再发给服务器。
响应后断点:修改服务器返回数据后再交给客户端。
使用步骤:
点击菜单栏 Rules -> Automatic Breakpoints,选择 Before Requests(请求前)或 After Responses(响应后)。
在左侧会话列表中,被拦截的请求会显示为红色(请求前)或红色虚线框(响应后)。
双击该会话,在右侧 Inspectors 区域修改数据,然后点击绿色的 Run to Completion 按钮放行。
AutoResponder
AutoResponder可以劫持特定的网络请求,用本地文件或预设的响应直接返回给客户端,非常适合在开发或测试阶段绕过后端依赖。
操作步骤:
在左侧会话列表选中劫持的请求,拖拽到右侧的AutoResponder标签页。
在弹出的 Rule Editor 中,设置一致规则和你想替换成的响应内容(可以是本地文件或预设状态码),然后点击 Save。
保证顶部的复选框 Enable rules和Unmatched requests passthrough处于勾选状态,让规则生效。
流量过滤
当会话列表被大量无关流量淹没时,Filters功能可以帮你只监视目标接口。
基本操作:
点击右侧的 Filters 标签页,勾选顶部的 Use Filters 启用。
在 Hosts 区域选择Show only the following Hosts,填入想要测试的域名。
其他过滤方式:
在左侧会话列表中,右键点击某个会话,选择 Filter Now -> Show Only This Host,一键快速过滤。
右键点击列标题(如 Host),选择 Add Column 来添加更多信息辅助判断。
性能分析和弱网模拟
性能分析:
查看 Statistics 标签页,可以直观看到整体性能汇总。
查看 Timeline 标签页,以条形图形式直观看到每个请求的耗时,帮你快速定位短板。
模拟弱网环境:
点击 Rules -> Performance -> Simulate Modem Speeds,可以模拟低速网络下的应用表现。
常见问题
抓不到 localhost 流量:这是Windows的硬性限制。可以改用 http://localhost.fiddler 或 http://ipv4.fiddler 来访问本地站点。
手机无法连接/无法上网:检查手机代理设置是不是正确,电脑防火墙是不是允许了Fiddler程序以及放行了8888端口。
手机抓包全是隧道:这说明HTTPS解密未生效。请检查手机是不是已安装并信任了Fiddler证书。
抓包时无法上网:如果使用Chrome,可以尝试在设置里关闭 使用安全DNS"功能,这可能会和Fiddler的代理冲突。
HTTPS证书报错:先检查电脑的系统时间是不是正确。如果正确,就在Fiddler的HTTPS设置里点击 Actions -> Reset All Certificates 重置所有证书。