在使用 dumpcap 在 Ubuntu 中捕获网络数据包时,你可能需要对捕获的数据包进行过滤。dumpcap 是 Wireshark 的命令行版本,支持使用 Berkeley Packet Filter (BPF) 语法来指定过滤器表达式。以下是一些常见的方法和示例:
捕获所有数据包:
sudo dumpcap -i any
按接口捕获数据包:
sudo dumpcap -i eth0
将捕获的数据包写入文件:
sudo dumpcap -i eth0 -w capture.pcap
限制捕获的数据包数量:
sudo dumpcap -i eth0 -c 100 -w capture.pcap
设置捕获的最大文件大小:
sudo dumpcap -i eth0 -C 10 -W 5 -w capture.pcap
这里 -C 10 表示每个文件最大为 10MB,-W 5 表示最多保留 5 个文件。
使用 BPF 表达式来过滤捕获的数据包:
捕获特定 IP 地址的数据包:
sudo dumpcap -i eth0 host 192.168.1.1
捕获特定端口的数据包:
sudo dumpcap -i eth0 port 80
捕获特定协议的数据包:
sudo dumpcap -i eth0 tcp
组合多个条件:
捕获源 IP 为 192.168.1.1 且目标端口为 80 的 TCP 数据包:
sudo dumpcap -i eth0 host 192.168.1.1 and tcp port 80
捕获源或目标 IP 为 192.168.1.1 的数据包:
sudo dumpcap -i eth0 host 192.168.1.1 or src host 192.168.1.1
捕获特定网络的数据包:
sudo dumpcap -i eth0 net 192.168.1.0/24
设置快照长度:限制捕获的数据包长度。
sudo dumpcap -i eth0 -s 0 # 0 表示不截断数据包
实时显示捕获的数据包:
sudo dumpcap -i eth0 -l
使用更详细输出:
sudo dumpcap -v
通过这些方法,你可以灵活地使用 dumpcap 来捕获和分析网络流量。记得在使用 dumpcap 时需要超级用户权限,因为它需要访问网络接口。