linux

Linux下dumpcap的过滤规则

小樊
50
2025-10-02 06:20:01
栏目: 智能运维

在Linux下使用dumpcap时,可以使用BPF(Berkeley Packet Filter)语法来设置过滤规则。这些规则允许你捕获特定类型的网络流量,从而减少捕获的数据量并提高分析效率。以下是一些常用的dumpcap过滤规则示例:

基本过滤规则

  1. 按IP地址过滤

    • 捕获来自特定IP地址的流量:
      dumpcap -i eth0 src host 192.168.1.100
      
    • 捕获发往特定IP地址的流量:
      dumpcap -i eth0 dst host 192.168.1.100
      
    • 捕获两个特定IP地址之间的流量:
      dumpcap -i eth0 host 192.168.1.100 and host 192.168.1.200
      
  2. 按端口过滤

    • 捕获特定端口的流量(例如,HTTP端口80):
      dumpcap -i eth0 port 80
      
    • 捕获源端口和目标端口都为特定端口的流量:
      dumpcap -i eth0 src port 80 and dst port 80
      
  3. 按协议过滤

    • 捕获TCP协议的流量:
      dumpcap -i eth0 tcp
      
    • 捕获UDP协议的流量:
      dumpcap -i eth0 udp
      
    • 捕获ICMP协议的流量:
      dumpcap -i eth0 icmp
      
  4. 组合过滤规则

    • 捕获来自特定IP地址且目标端口为80的TCP流量:
      dumpcap -i eth0 src host 192.168.1.100 and tcp port 80
      
    • 捕获两个特定IP地址之间且协议为TCP的流量:
      dumpcap -i eth0 host 192.168.1.100 and host 192.168.1.200 and tcp
      

高级过滤规则

  1. 捕获特定类型的数据包

    • 捕获HTTP请求:
      dumpcap -i eth0 tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]>>4)<<2)) != 0)
      
    • 捕获DNS查询:
      dumpcap -i eth0 udp port 53
      
  2. 捕获特定长度的数据包

    • 捕获长度大于1000字节的数据包:
      dumpcap -i eth0 len > 1000
      
  3. 捕获特定时间范围内的数据包

    • 捕获在特定时间段内的数据包(例如,上午9点到下午5点):
      dumpcap -i eth0 -w output.pcap -G 3600 -W bysec -C 1000 -c 10000 -q "time >= 09:00:00 and time <= 17:00:00"
      

使用示例

假设你想捕获来自IP地址192.168.1.100且目标端口为80的TCP流量,并将捕获的数据包保存到文件output.pcap中,可以使用以下命令:

dumpcap -i eth0 src host 192.168.1.100 and tcp port 80 -w output.pcap

通过这些过滤规则,你可以灵活地捕获所需的网络流量,从而更有效地进行网络分析和故障排除。

0
看了该问题的人还看了