Fiddler抓包安卓电模拟器解决无法抓包问题

问题场景

开发安卓 App 时,经常需要抓真机或者模拟器里的 App 流量来调试接口。用 Fiddler 抓 PC 浏览器流量是默认行为,但要把模拟器/手机的流量引到 Fiddler 来,需要做几步配置 —— TLS,在 HTTP 之上加一层 TLS 加密,防止中间人窃听和篡改。">HTTPS 解密、远程连接允许、根证书安装、模拟器代理设置、证书信任。下面是完整流程,我把踩过的坑也都标出来。

整体流程

Fiddler抓包安卓电模拟器解决无法抓包问题

简单说就是:

  1. Fiddler 端配置:开 HTTPS 解密、允许远程连接、导出根证书
  2. 模拟器端配置:网络桥接、设置代理指向 PC IP:8888、安装根证书并信任
  3. (关键)把证书从用户证书目录挪到系统证书目录(否则 Android 7+ 不信任用户证书)

一、Fiddler 端配置

1. 开启 HTTPS 解密

Tools → Options → HTTPS 标签页:

  • 勾选 "Capture HTTPS CONNECTs"
  • 勾选 "Decrypt HTTPS traffic"
  • 勾选 "Ignore server certificate errors"(忽略不安全证书,自签名也能抓)

Fiddler抓包安卓电模拟器解决无法抓包问题

Fiddler抓包安卓电模拟器解决无法抓包问题

2. 允许远程计算机连接

Tools → Options → Connections 标签页:

  • 勾选 "Allow remote computers to connect"
  • 记下端口号(默认 8888,可改)
  • 勾选 "Reuse client connections"
  • 点 OK 保存

Fiddler抓包安卓电模拟器解决无法抓包问题

3. 导出 Fiddler 根证书

回到 HTTPS 标签,点 "Actions" → "Export Root Certificate to Desktop",Fiddler 会在桌面生成一个 FiddlerRoot.cer

双击这个证书,选 "Local Computer" → 把它装到 "Trusted Root Certification Authorities"(受信任的根证书颁发机构)。一路 Next 到 Finish。

Fiddler抓包安卓电模拟器解决无法抓包问题

Fiddler抓包安卓电模拟器解决无法抓包问题

Fiddler 配置完成后,关掉 Fiddler 重启一次,让所有设置生效。

二、模拟器端配置

1. 网络桥接

模拟器(雷电、夜神、MuMu 等)默认是 NAT 模式,模拟器和 PC 是两个网段,不能直接互相访问。要装桥接驱动,让模拟器跟 PC 一个网段。

Fiddler抓包安卓电模拟器解决无法抓包问题

步骤:

  • 模拟器设置 → 网络 → 选 "桥接模式"
  • 点 "安装网桥驱动",等待驱动安装完成
  • 保存设置,模拟器会自动重启

重启后,模拟器的 IP 应该跟 PC 在同一个网段(比如都是 192.168.1.x)。

2. WLAN 代理设置

模拟器里:

  • 打开"设置 → WLAN"
  • 找到当前连接的 WiFi,长按或点"修改"
  • 勾选"显示高级选项"
  • 代理改成 "手动"
  • 主机名:你 PC 的 IP(ipconfig 看,通常是 192.168.x.x)
  • 端口:8888(对应上面 Fiddler 设的端口)
  • 保存

Fiddler抓包安卓电模拟器解决无法抓包问题

此时打开模拟器浏览器随便访问个 HTTP 网站,Fiddler 里应该已经能看到抓到的流量了。如果看不到:

  • 检查 PC 防火墙是否拦截了 8888 端口入站
  • 检查 Fiddler 是不是在监听同一个端口
  • 检查模拟器的 IP 是不是真的桥接成功(adb shell ip addr 看)

3. 安装 Fiddler 根证书到模拟器

HTTPS 抓包需要模拟器信任 Fiddler 的根证书。最简单的方式:

  • 模拟器浏览器访问 http://<PC的IP>:8888
  • 会看到 Fiddler 自带的页面,有个 "FiddlerRoot certificate" 下载链接
  • 点下载并安装
  • 系统会让你设密码(锁屏密码)+ 证书名(填 "Fiddler")

Fiddler抓包安卓电模拟器解决无法抓包问题

4. (关键)把证书挪到系统目录

这一步是抓 HTTPS 的真正难点。Android 7 (Nougat) 开始,App 默认只信任系统证书目录里的证书,不信任用户安装的证书。所以上一步装的证书只在浏览器里有效,App 里抓不到 HTTPS。

解决:用 adb 命令把证书从用户证书目录挪到系统证书目录。

用户证书目录:

/data/misc/user/0/cacerts-added/

系统证书目录:

/system/etc/security/cacerts/

具体操作(以雷电模拟器为例):

# 1. 连上模拟器(雷电默认端口 5555,夜神是 62001)
adb connect 127.0.0.1:5555

# 2. 获取 root 权限
adb shell
su

# 3. 重新挂载 /system 为可写(关键!)
mount -o remount,rw /system

# 4. 从用户证书目录拷贝到系统证书目录
cp /data/misc/user/0/cacerts-added/*.0 /system/etc/security/cacerts/

# 5. 改权限
chmod 644 /system/etc/security/cacerts/*.0

# 6. 退出 + 重启模拟器
exit
exit
adb reboot

Fiddler抓包安卓电模拟器解决无法抓包问题

常见坑

1. adb 报 "permission denied" / "su: not found"

模拟器没开 root 权限。雷电、夜神在模拟器设置里有 "ROOT 权限" 开关,打开后重启。MuMu 是自带 root 的,部分版本要在"高级设置"里开。

2. mount 报 "read-only file system"

mount -o remount,rw /system 是必须步骤。如果还失败,可能模拟器的 /system 分区被强制 read-only,换个模拟器或者用 Magisk 这种方案。

3. 抓到流量但 HTTPS 显示 "Tunnel to..." 看不到内容

证书没装好或者没信任。检查:

  • Fiddler 里 HTTPS 是不是勾了 "Decrypt HTTPS traffic"
  • 模拟器里 设置 → 安全 → 信任的凭据 里有没有 Fiddler 证书
  • 证书挪到系统目录后有没有 reboot

4. 抓到 App 的 HTTPS 但内容是乱码 / 二进制

App 可能用了 SSL Pinning(代码里写死了证书指纹,任何中间证书都拒绝)。这种就不是 Fiddler 能搞定的了,需要用 Frida 或 Xposed 注入绕开 SSL Pinning。

5. Android 11+ 模拟器装证书更麻烦

新版 Android 把系统证书目录的写入限制更严格了。可以试试 NVISO/MagiskTrustUserCerts 模块,通过 Magisk 把用户证书复制到系统目录,不需要直接动 /system。

替代工具:HTTPS 抓包的现代选择

Fiddler 是老牌工具,但 2024+ 抓包圈子里更多用:

  • Charles —— macOS 用户首选,UI 比 Fiddler 现代
  • mitmproxy —— 命令行,自动化抓包神器,Python 写脚本改请求超方便
  • Proxyman —— Mac 上的 Charles 升级版,UI 极好
  • HTTP Toolkit —— 跨平台,免费版很够用,Chrome / Node / Android 抓包"一键"接入

选哪个看场景:Fiddler 简单粗暴 + Windows 友好 + 免费,新人入门最快。

—— 别看了 · 2026
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理 邮箱1846861578@qq.com。
技术教程

深入解析4层代理和7层代理的区别:优化网络性能的关键选择

2023-10-23 10:48:00

技术教程

差生文具多系列VisualStudioCode最好看的编程字体

2023-11-8 16:28:11

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索