CentOS 7 中如何使用 tcpdump 捕获特定 TCP 标志的数据包
在 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命令之前,请确保您熟悉其用法和过滤选项,因为不正确的过滤器选项可能会导致捕获到不需要的数据包。
原文地址: https://www.cveoy.top/t/topic/jnjV 著作权归作者所有。请勿转载和采集!