在 Debian 上用 dumpcap 解密流量,核心思路并不是 dumpcap 本身“解密”,而是 dumpcap 负责抓包,Wireshark/tshark 利用密钥对抓到的 pcap 进行解密。dumpcap 只是抓包后端,解密能力来自 Wireshark 套件。
下面按常见场景说明。
解密流量必须满足以下之一:
sudo apt update
sudo apt install wireshark-common
dumpcap 通常随 wireshark-common 安装:
which dumpcap
赋予抓包权限(推荐方式):
sudo dpkg-reconfigure wireshark-common
# 选择 "yes",把用户加入 wireshark 组
sudo usermod -aG wireshark $USER
newgrp wireshark
✅ 支持 TLS 1.2 / 1.3 / ECDHE
export SSLKEYLOGFILE=$HOME/tls_keys.log
例如浏览器或 curl:
curl -v https://example.com
Chrome / Firefox 会自动写入密钥。
dumpcap -i any -w capture.pcap
tshark -r capture.pcap -o "tls.keylog_file:${SSLKEYLOGFILE}" -Y http2
或用 Wireshark GUI:
Edit → Preferences → Protocols → TLS → (Pre)-Master-Secret log filename
⚠️ 现代 TLS 基本不可用
server.key
tshark -r capture.pcap \
-o "tls.keys_list:0.0.0.0,443,http,server.key"
或在 Wireshark 中:
TLS → RSA keys list
IP: 0.0.0.0
Port: 443
Protocol: http
Key File: server.key
tshark -r capture.pcap \
-o "esp.decryption_key:1234567890abcdef"
tshark -r wifi.pcap \
-o "wlan.wep_key1:wpa-pwd:密码:SSID"
dumpcap 只负责:
解密必须:
| 问题 | 原因 |
|---|---|
| 仍然显示 TLS | 使用了 ECDHE + 没有 SSLKEYLOGFILE |
| 解密失败 | 抓包不完整(缺握手) |
| 找不到 TLS 选项 | 未安装 wireshark |
| dumpcap 没权限 | 未加入 wireshark 组 |
✅ 最佳实践
SSLKEYLOGFILE + dumpcap + tshark/Wireshark
❌ 不推荐
如果你愿意,可以告诉我:
我可以给你一套 完全可执行的命令示例。