dumpcap 是 Wireshark 的命令行版本,用于捕获网络流量。在使用 dumpcap 时,可以使用 -Y 或 --filter 选项来指定一个 BPF (Berkeley Packet Filter) 表达式,以便只捕获符合特定条件的数据包。
BPF 表达式是一种强大的工具,可以让你根据各种标准(如源地址、目的地址、端口号、协议类型等)来过滤数据包。以下是一些基本的 BPF 表达式示例:
捕获所有进入或离开特定 IP 地址的数据包:
dumpcap -i eth0 host 192.168.1.1
捕获特定网络接口上的所有 TCP 数据包:
dumpcap -i eth0 tcp
捕获特定网络接口上源端口为 80 的所有数据包:
dumpcap -i eth0 tcp port 80
捕获特定网络接口上目的端口为 443 的所有数据包:
dumpcap -i eth0 tcp port 443
捕获特定网络接口上源或目的 IP 地址为 192.168.1.1 的所有数据包:
dumpcap -i eth0 host 192.168.1.1
捕获特定网络接口上源或目的 IP 地址为 192.168.1.1 且 TCP 协议的数据包:
dumpcap -i eth0 tcp and host 192.168.1.1
捕获特定网络接口上源或目的 IP 地址为 192.168.1.1 到 192.168.1.255 范围内的所有数据包:
dumpcap -i eth0 net 192.168.1.0/24
请注意,BPF 表达式的语法非常灵活,可以根据需要进行组合和扩展。你可以使用逻辑运算符(如 and、or、not)以及比较运算符(如 ==、!=、<、>、<=、>=)来构建更复杂的表达式。
在使用 dumpcap 时,请确保你有足够的权限来捕获网络流量。在某些操作系统上,你可能需要以 root 用户身份运行 dumpcap 或使用 sudo 命令来获取所需的权限。