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

简单说就是:
- Fiddler 端配置:开 HTTPS 解密、允许远程连接、导出根证书
- 模拟器端配置:网络桥接、设置代理指向 PC IP:8888、安装根证书并信任
- (关键)把证书从用户证书目录挪到系统证书目录(否则 Android 7+ 不信任用户证书)
一、Fiddler 端配置
1. 开启 HTTPS 解密
Tools → Options → HTTPS 标签页:
- 勾选 "Capture HTTPS CONNECTs"
- 勾选 "Decrypt HTTPS traffic"
- 勾选 "Ignore server certificate errors"(忽略不安全证书,自签名也能抓)


2. 允许远程计算机连接
Tools → Options → Connections 标签页:
- 勾选 "Allow remote computers to connect"
- 记下端口号(默认 8888,可改)
- 勾选 "Reuse client connections"
- 点 OK 保存

3. 导出 Fiddler 根证书
回到 HTTPS 标签,点 "Actions" → "Export Root Certificate to Desktop",Fiddler 会在桌面生成一个 FiddlerRoot.cer。
双击这个证书,选 "Local Computer" → 把它装到 "Trusted Root Certification Authorities"(受信任的根证书颁发机构)。一路 Next 到 Finish。


Fiddler 配置完成后,关掉 Fiddler 重启一次,让所有设置生效。
二、模拟器端配置
1. 网络桥接
模拟器(雷电、夜神、MuMu 等)默认是 NAT 模式,模拟器和 PC 是两个网段,不能直接互相访问。要装桥接驱动,让模拟器跟 PC 一个网段。

步骤:
- 模拟器设置 → 网络 → 选 "桥接模式"
- 点 "安装网桥驱动",等待驱动安装完成
- 保存设置,模拟器会自动重启
重启后,模拟器的 IP 应该跟 PC 在同一个网段(比如都是 192.168.1.x)。
2. WLAN 代理设置
模拟器里:
- 打开"设置 → WLAN"
- 找到当前连接的 WiFi,长按或点"修改"
- 勾选"显示高级选项"
- 代理改成 "手动"
- 主机名:你 PC 的 IP(
ipconfig看,通常是192.168.x.x) - 端口:8888(对应上面 Fiddler 设的端口)
- 保存

此时打开模拟器浏览器随便访问个 HTTP 网站,Fiddler 里应该已经能看到抓到的流量了。如果看不到:
- 检查 PC 防火墙是否拦截了 8888 端口入站
- 检查 Fiddler 是不是在监听同一个端口
- 检查模拟器的 IP 是不是真的桥接成功(
adb shell ip addr看)
3. 安装 Fiddler 根证书到模拟器
HTTPS 抓包需要模拟器信任 Fiddler 的根证书。最简单的方式:
- 模拟器浏览器访问
http://<PC的IP>:8888 - 会看到 Fiddler 自带的页面,有个 "FiddlerRoot certificate" 下载链接
- 点下载并安装
- 系统会让你设密码(锁屏密码)+ 证书名(填 "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

常见坑
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