使用 Wireshark 调试 HTTP/2 流量


HTTP/2 Over TLS, 数据被加密无法直接查看。

Wireshark 的抓包原理是直接读取并分析网卡数据,要想让它解密 HTTPS 流量,有两个办法:
  • 如果你拥有 HTTPS 网站的加密私钥,可以用来解密这个网站的加密流量;
  • 某些浏览器支持将 TLS 会话中使用的对称密钥保存在外部文件中NSS Key Log Format,可供 Wireshark 加密使用。

设置环境变量:
$ export SSLKEYLOGFILE=~/tls/sslkeylog.log

通过终端启动 Firefox 或 Chrome(确保能读取到环境变量)

// 如果一直都抓不到包,也可以试试用命令行打开 Wireshark, 还没有再试试不用命令行打开。

Wireshark 显示 http2 帧的列表,不同于 http1 的请求/响应列表