在 CentOS 7 中使用 tcpdump 捕获特定 TCP 标志的数据包

本指南将演示如何在 CentOS 7 中使用 tcpdump 命令捕获带有特定 TCP 标志的数据包,例如 SYN 标志(tcp.flags==0x02)。

步骤 1:安装 tcpdump

如果您尚未安装 tcpdump,请打开终端并运行以下命令:

sudo yum install tcpdump

步骤 2:修改 tcpdump 命令

使用以下命令语法修改 tcpdump 命令以捕获所需的 TCP 数据包:

sudo tcpdump -i <网络接口> 'tcp and tcp.flags==<十六进制标志值> and src host <源 IP 地址>'

示例:

以下命令将捕获来自源 IP 地址为 192.168.1.2 且带有 SYN 标志的 TCP 数据包:

sudo tcpdump -i eth0 'tcp and tcp.flags==0x02 and src host 192.168.1.2'

命令解释:

  • -i eth0:指定要监听的网络接口(例如,eth0)。
  • tcp and tcp.flags==0x02:定义要捕获的数据包的过滤器。在本例中,它将捕获带有 SYN 标志(0x02)的 TCP 数据包。
  • src host 192.168.1.2:指定要捕获的数据包的源 IP 地址。

步骤 3:运行命令并分析输出

Enter 键运行命令。tcpdump 将开始捕获匹配指定条件的数据包,并显示如下输出:

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
14:32:25.123456 IP 192.168.1.2.1234 > 10.0.0.1.80: Flags [S], seq 123456789, win 65535, options [mss 1460,nop,nop,sackOK], length 0
14:32:25.234567 IP 10.0.0.1.80 > 192.168.1.2.1234: Flags [S.], seq 987654321, ack 123456790, win 65160, options [mss 1460], length 0

要停止 tcpdump 命令,请按 Ctrl + C

注意:

  • <网络接口><十六进制标志值><源 IP 地址> 替换为您要使用的实际值。
  • 有关 TCP 标志和其他过滤选项的更多信息,请参阅 tcpdump 的手册页 (man tcpdump)。
  • 在修改 tcpdump 命令之前,请确保您熟悉其用法和过滤选项,因为不正确的过滤器选项可能会导致捕获到不需要的数据包。
CentOS 7 中如何使用 tcpdump 捕获特定 TCP 标志的数据包

原文地址: https://www.cveoy.top/t/topic/jnjV 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录