Dumpcap与其他网络工具的协同使用
与 Wireshark 和 TShark 的协同
dumpcap -i eth0 -w capture.pcap
# 在 Wireshark 中 File → Open → capture.pcap
dumpcap -i eth0 -w - | tshark -r - -Y "http"
与文件处理工具的协同
capinfos capture.pcap
# 按时间切分
editcap -A "2025-01-01 00:00:00" -B "2025-01-01 01:00:00" capture.pcap slice.pcap
# 合并多个文件
mergecap -w merged.pcap part1.pcap part2.pcap
# 十六进制转储转 pcap
text2pcap hexdump.txt fromhex.pcap
与 tcpdump、grep、awk、sed 的文本处理协同
dumpcap -i eth0 -w - | tcpdump -r - -n
dumpcap -i eth0 -w - | grep "GET /"
dumpcap -i eth0 -w - | awk '/^IP/{print $3}'
与 netcat 和 Python 的自动化协同
# 接收端
nc -l -p 12345 | dumpcap -r - -w remote.pcap
# 发送端
dumpcap -i eth0 -l -w - | nc <接收端IP> 12345
import subprocess, shlex
cmd = "dumpcap -i eth0 -w - 'tcp port 80'"
proc = subprocess.Popen(shlex.split(cmd), stdout=subprocess.PIPE, stderr=subprocess.PIPE)
for line in proc.stdout:
print(line.decode())
与 IDS 和安全分析工具的协同
# 1) 抓取
dumpcap -i eth0 -f "port 80" -w snort_input.pcap
# 2) 用 Snort 分析
snort -r snort_input.pcap -c /etc/snort/snort.conf
dumpcap -i eth0 -w traffic.pcap
tcpflow -r traffic.pcap
权限与性能要点
sudo usermod -aG wireshark $USER
sudo chown root:wireshark /usr/sbin/dumpcap
sudo chmod 750 /usr/sbin/dumpcap
# 重新登录后生效
sudo setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip' /usr/bin/dumpcap