要过滤掉握手包并只抓取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的数据包,即过滤掉握手包

tcpdump 只抓取http 协议的包过滤掉握手包

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

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