Skip to content

强制 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 的功能可能失效

相关文档 ​

基于 VitePress 构建 · 教学用途