温馨提示×

如何配置Linux Sniffer的过滤器

小樊
50
2025-09-21 22:21:20
栏目: 智能运维

在Linux中,tcpdump是一个常用的网络抓包工具,它可以捕获经过网络接口的数据包,并根据指定的过滤器规则进行筛选。以下是如何配置tcpdump过滤器的步骤:

1. 基本语法

tcpdump的过滤器使用BPF(Berkeley Packet Filter)语法。基本格式如下:

tcpdump [选项] [表达式]

2. 常用过滤器表达式

  • 主机host <IP>net <网络>

    • host 192.168.1.1:捕获与IP地址192.168.1.1相关的数据包。
    • net 192.168.1.0/24:捕获与192.168.1.0网络相关的数据包。
  • 端口port <端口号>portrange <起始端口>-<结束端口>

    • port 80:捕获目标或源端口为80的数据包。
    • portrange 80-89:捕获目标或源端口在80到89之间的数据包。
  • 协议proto <协议>tcpudpicmp

    • proto tcp:捕获TCP协议的数据包。
    • udp:捕获UDP协议的数据包。
  • 方向srcdstsrc or dst

    • src host 192.168.1.1:捕获源IP为192.168.1.1的数据包。
    • dst port 80:捕获目标端口为80的数据包。

3. 组合过滤器

可以使用逻辑运算符组合多个过滤器表达式:

  • and:逻辑与
  • or:逻辑或
  • not:逻辑非

例如:

tcpdump host 192.168.1.1 and port 80

这个命令会捕获与IP地址192.168.1.1相关且目标或源端口为80的数据包。

4. 高级过滤器

  • 时间范围-c <数量>-G <秒数>-W <文件数>

    • -c 100:捕获100个数据包后停止。
    • -G 60-W 4:每60秒保存一次数据包到文件,最多保存4个文件。
  • 输出格式-w <文件>-nn

    • -w capture.pcap:将捕获的数据包保存到文件capture.pcap。
    • -nn:不解析协议名称和端口名称,显示数字。

5. 示例

以下是一些示例命令:

# 捕获与IP地址192.168.1.1相关且目标端口为80的数据包
tcpdump host 192.168.1.1 and dst port 80

# 捕获源端口为22且目标网络为192.168.1.0/24的数据包
tcpdump src port 22 and net 192.168.1.0/24

# 捕获所有TCP数据包并保存到文件
tcpdump -w all_tcp_packets.pcap tcp

# 捕获前100个数据包并显示详细信息
tcpdump -c 100 -nn

6. 注意事项

  • 运行tcpdump可能需要root权限。
  • 过滤器表达式区分大小写。
  • 使用tcpdump -n可以查看过滤器表达式的解释。

通过以上步骤,你可以灵活地配置tcpdump过滤器来捕获和分析网络流量。

0