如何使用tcpdump仅过滤保持活动包

Modified on: Fri, 20 Sep 2019 19:20:02 +0800

我需要分析网络上的流量转储,以检查所有PC是否都启用了tcp keep-live功能。
我正在为此目的使用tcpdump。

我需要知道的是,是否有可能只对保持活动数据包进行过滤。

在Windows上我看到wireshark可以做到这一点,但在我的linux系统上,它只有控制台模式,我不知道如何过滤那种数据包。

最佳答案

keepalive探针是一个没有数据且ACK标志打开的数据包

tcpdump -pni $intf -v "tcp port $port and ( tcp[tcpflags] & tcp-ack != 0 and ( (ip[2:2] - ((ip[0]&0xf)<<2) ) - ((tcp[12]&0xf0)>>2) ) == 0 ) "

这是做什么的:

  • 按位,在tcp标志字段和tcp-ack之间,以确保它是ACK
  • IP数据包长度(以字节为单位) - IP标头长度 - TCP标头长度以确保它没有数据

免责声明:未进行实际测试,但应指明您的方向


相关问答

添加新评论