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

我需要分析网络上的流量转储,以检查是否所有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标头长度,以确保它没有数据

免责声明:没有经过实际测试,但应该指出你的方向

相关文章

在Linux上编写运行C语言程序,经常会遇到程序崩溃、卡死等异...
git使用小结很多人可能和我一样,起初对git是一无所知的。我...
1. 操作系统环境、安装包准备 宿主机:Max OSX 10.10.5 虚拟...
因为业务系统需求,需要对web服务作nginx代理,在不断的尝试...
Linux模块机制浅析 Linux允许用户通过插入模块,实现干预内核...
一、Hadoop HA的Web页面访问 Hadoop开启HA后,会同时存在两个...