dumpcap 是 Wireshark 套件中的一个命令行工具,用于捕获网络流量。要使用 dumpcap 捕获特定协议的数据包,你可以使用 -Y 或 --filter 选项来指定一个 BPF(Berkeley Packet Filter)表达式。BPF 表达式允许你根据各种条件过滤数据包,例如源地址、目的地址、端口号或特定的协议。
以下是一些使用 dumpcap 捕获特定协议的示例:
捕获所有 HTTP 流量:
dumpcap -i eth0 -Y "tcp port 80" -w http_traffic.pcap
这里 -i eth0 指定了要监听的网络接口,-Y "tcp port 80" 是 BPF 表达式,用于过滤 TCP 端口 80 上的流量,-w http_traffic.pcap 指定了输出文件的名称。
捕获所有 HTTPS 流量:
dumpcap -i eth0 -Y "tcp port 443" -w https_traffic.pcap
类似地,这里过滤的是 TCP 端口 443 上的流量。
捕获所有 DNS 查询:
dumpcap -i eth0 -Y "udp port 53 or tcp port 53" -w dns_traffic.pcap
这个命令捕获了 UDP 和 TCP 协议上端口 53 的流量,这是 DNS 查询常用的端口。
捕获特定 IP 地址的所有流量:
dumpcap -i eth0 -Y "ip.addr == 192.168.1.100" -w traffic_from_ip.pcap
这里 -Y "ip.addr == 192.168.1.100" 表达式用于过滤源地址或目的地址为 192.168.1.100 的所有流量。
请注意,为了使用 BPF 过滤器,你需要有足够的权限。在某些操作系统上,你可能需要以 root 用户身份运行 dumpcap。
在使用 dumpcap 时,请确保你的网络接口处于混杂模式(promiscuous mode),这样它才能捕获经过该接口的所有流量,而不仅仅是发给它的数据包。如果你没有权限设置混杂模式,你可能需要联系网络管理员或使用其他工具来捕获流量。