强制 HTTP/3 降级配方
📉 App 用 HTTP/3(QUIC) 抓不到,阻断 UDP 强制降级到 HTTP/2。
思路
HTTP/3 走 UDP,r0capture 不支持。但 App 通常支持 HTTP/2 fallback——阻断 UDP 后,App 会降级到 TCP(HTTP/2),r0capture 就能抓到。
步骤
1. 阻断 UDP
在设备防火墙阻断 UDP(需 root):
bash
adb shell "su -c 'iptables -A OUTPUT -p udp -j DROP'"或路由器层面阻断 UDP。
2. 验证降级
App 应仍能联网(走 TCP HTTP/2),但 HTTP/3 失效。
3. 抓包
bash
python3 r0capture.py -U -f com.app -v -p out.pcap现在抓到的是降级后的 HTTP/2 流量。
4. 恢复 UDP
抓完恢复:
bash
adb shell "su -c 'iptables -D OUTPUT -p udp -j DROP'"注意
- HTTP/2 支持有限(详见 HTTP/2 限制),降级后仍可能抓不到(若 App 用 Cronet 自带 SSL)
- 部分硬依赖 HTTP/3 的功能可能失效