Windows 10本地用Fiddler捕获VirtualBox中Android x86流量的方法
用Fiddler捕获VirtualBox中Android x86虚拟机的网络流量
我来一步步教你搞定这个需求,全程都是实操步骤,跟着来就行:
1. 配置Fiddler允许远程连接
首先得让Fiddler接受来自虚拟机的请求:
- 打开Fiddler,点击顶部菜单栏的
Tools->Options - 切换到
Connections标签页 - 勾选 Allow remote computers to connect(默认端口是8888,记下来这个端口)
- 点击
OK保存设置,然后重启Fiddler生效 - 还要确保Windows防火墙允许Fiddler通过:打开Windows Defender防火墙的"允许应用通过防火墙"设置,找到Fiddler,勾选私有和公网网络权限(或者临时关闭防火墙测试,成功后再打开)
2. 设置VirtualBox虚拟机的网络模式
要让虚拟机和你的Windows主机在同一局域网,这样才能访问Fiddler:
- 打开VirtualBox,选中你的Android x86虚拟机,点击左侧的
设置 - 切换到
网络标签页,选择网卡1 - 连接方式选择 桥接适配器,然后在下方的"名称"里选你当前Windows主机正在使用的网卡(比如WiFi网卡或者以太网网卡)
- 点击
OK保存,启动虚拟机
3. 获取Windows主机的局域网IP
虚拟机需要通过这个IP连接到Fiddler:
- 按下Win+R,输入
cmd打开命令提示符 - 输入命令
ipconfig,找到你刚才选的桥接网卡对应的IPv4地址(比如192.168.3.105),把这个IP记下来
4. 配置Android x86的网络代理
让虚拟机的所有流量走Fiddler:
- 启动Android x86虚拟机,进入系统后打开
设置 - 找到
网络和互联网->WiFi(如果是以太网就选以太网选项) - 长按当前连接的WiFi网络,选择
修改网络 - 勾选
显示高级选项,代理设置选择 手动 - 在
代理主机名里输入刚才记的Windows主机IPv4地址,代理端口输入8888 - 点击
保存,完成代理设置
5. 安装Fiddler根证书以捕获HTTPS流量
默认Fiddler抓不了HTTPS,必须让Android信任Fiddler的证书:
- 回到Windows主机的Fiddler,点击
Tools->Options->HTTPS - 勾选 Decrypt HTTPS traffic,然后点击右侧的
Actions->Export Root Certificate to Desktop,证书会导出到桌面,文件名是FiddlerRoot.cer - 把证书传到Android虚拟机里:
- 方法一:用adb命令,在Windows cmd里输入
adb push FiddlerRoot.cer /sdcard/(前提是你已经配置了adb环境,并且虚拟机开启了USB调试) - 方法二:在Android虚拟机的浏览器里访问
http://<你的Windows主机IP>:8888,页面里会有FiddlerRoot certificate的下载链接,点击下载即可
- 方法一:用adb命令,在Windows cmd里输入
- 安装证书:
- 打开Android设置,找到
安全->加密与凭据->从存储安装证书 - 找到刚才传到虚拟机里的
FiddlerRoot.cer,选择安装,证书用途选 VPN和应用(不同Android版本路径可能略有不同,找不到的话可以搜"安装证书")
- 打开Android设置,找到
6. 验证是否成功
- 打开Fiddler,然后在Android虚拟机里打开浏览器访问任意网页(比如百度)
- 回到Fiddler,看左侧的会话列表,如果能看到对应的HTTP/HTTPS请求,就说明配置成功了
常见问题排查
- 如果抓不到请求:检查虚拟机是否能ping通Windows主机的IP;检查Fiddler的远程连接是否开启;检查Android的代理设置是否正确
- 如果HTTPS请求显示"隧道连接":确认Fiddler的HTTPS解密已开启,并且Android已经安装了根证书
- 代理设置后无法上网:检查Windows防火墙是否拦截了8888端口,或者Fiddler是否正常运行
内容的提问来源于stack exchange,提问作者Cristian Gonzalez




