tcpdump 只抓取http 协议的包过滤掉握手包
要过滤掉握手包并只抓取HTTP协议的包,可以使用以下命令:
tcpdump -i <interface> -s 0 -A 'tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420'
其中,<interface> 是指要监听的网络接口,例如 eth0。这个命令会将抓取到的数据以ASCII文本形式显示出来,并且只会显示HTTP协议的包。
解释一下命令的参数:
-i <interface>:指定要监听的网络接口。-s 0:设置抓取的数据包大小为0,表示抓取整个数据包。-A:以ASCII文本形式显示数据包内容。'tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420':过滤规则,只显示HTTP协议的包。这个规则是根据HTTP协议的特征进行匹配的。
注意:这个命令只会抓取HTTP协议的数据包,但并不会过滤掉握手包。要过滤掉握手包,可以使用BPF过滤器来进一步过滤数据包。以下是一个例子:
tcpdump -i <interface> -s 0 -A 'tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420' and 'tcp[13] & 2 != 0'
其中,'tcp[13] & 2 != 0' 是用来过滤SYN标志位不为0的数据包,即过滤掉握手包
原文地址: https://www.cveoy.top/t/topic/iUkP 著作权归作者所有。请勿转载和采集!