使用Fiddler抓取手机上的HTTP/HTTPS数据包,是让手机通过Fiddler所在的电脑作为代理上网。
一、准备工作
保证电脑和手机连接在同一个局域网连同一个 Wi-Fi 即可。
关闭电脑防火墙或放行 Fiddler,否则手机会连不上代理。
二、Fiddler 端的设置
打开Fiddler点击菜单栏 Tools -Options -Connections。
勾选 Allow remote computers to connect,端口保持默认 8888 即可。
点击 OK后,会提示需要重启Fiddler确定重启。
鼠标悬停在 Fiddler 右上角的 Online 图标上,就能看到电脑的局域网 IP(或通过命令行 ipconfig 查看)。这个 IP 和端口 8888 之后要在手机上填写。
三、手机端设置代理
Android / iOS 通用步骤
进入手机的 Wi-Fi 设置,找到当前连接的 Wi-Fi,点击修改网络或详情(一般长按网络名或点击右侧箭头/i 图标)。
将代理方式从无/关闭改为 手动。
填入:
服务器/主机名:电脑的局域网 IP(如 192.168.1.100)
端口:8888
保存。此时手机的所有网络请求就会经过 Fiddler,可以先尝试抓一下 HTTP 的包测试是不是连通。
四、安装Fiddler证书以抓取HTTPS
如果不安装证书,Fiddler只能看到HTTPS请求的连接隧道无法解密内容。
在手机浏览器(Chrome/Safari)中访问 http://电脑IP:8888(如 http://192.168.1.100:8888)。
页面会显示Fiddler Echo Service,点击下方的FiddlerRoot certificate链接下载证书文件cer 格式。
Android 安装证书
不同系统版本入口略有差别,一般是设置- 安全 -加密和凭据 - 安装证书 - CA 证书。
系统会提示需要先设置锁屏密码如果无则先设一个,然后选择刚才下载的 .cer文件,输入名称如Fiddler安装即可。
Android 7.0 及以上版本,用户自行安装的 CA 证书仅被浏览器信任,绝大多数 APP 的网络请求默认不信任用户证书,会导致无法抓取 APP 的 HTTPS 包。如果只是抓网页不受影响;如果想抓 APP需借助 Root + Magisk 模块(如 Move Certificates)把证书移入系统证书区,或使用 VirtualXposed、JustTrustMe 等方案绕过SSL证书绑定。
iOS 安装证书
下载证书后会弹出描述文件安装提示,点击允许。
然后进入 设置 -通用 -VPN 和设备管理,找到Fiddler描述文件点击安装,输入手机密码。
安装后还需要去 设置 -通用 - 关于本机 -证书信任设置,开启DO_NOT_TRUST_FiddlerRoot的开关,才能真正生效。
iOS 同样存在部分APP锁定了证书(SSL Pinning),需要越狱后配合SSL Kill Switch等插件才能抓取。
五、开始抓包和过滤
安装完证书后,用手机浏览器访问一个HTTPS网站(如 https://www.zmtests.com),Fiddler 左侧会话列表应能出现对应的请求,右侧可看到明文内容。
为了方便只看手机流量,可以在Fiddler 右侧Filters 标签页中:
勾选Use Filters
在Client IP处选择或输入手机的 IP,这样只展示该 IP 的请求。
也可在Hosts过滤域名,排除无关流量。
六、常见问题
抓包完毕后必须把手机Wi-Fi的代理改回无或DHCP,否则关闭Fiddler后手机将无法正常上网。
如果手机设置代理后连不上网或Fiddler无任何请求:
检查电脑防火墙是不是拦截了 8888 端口,可临时关闭防火墙测试。
确定电脑 IP 填写正确且在同一网段。
在手机浏览器中再次访问 http://电脑IP:8888,如果打不开说明网络不通或Fiddler未成功监听。