enz*_*959 5 linux tcpdump keep-alive
我需要分析我网络上的流量转储,以检查是否所有 PC 都启用了 tcp keep-live 功能。为此,我正在使用 tcpdump。
我需要知道的是是否有可能只过滤保持活动的数据包。
在 Windows 上,我看到 wireshark 可以做到这一点,但在我的只有控制台模式的 linux 系统上,我不知道如何过滤那种数据包。
小智 7
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 ) "
Run Code Online (Sandbox Code Playgroud)
这是做什么的:
免责声明:未经实际测试,但应该为您指明一个好的方向
Wireshark 使用与 tcpdump 相同的捕获语法。两者都通过 libpcap 工作。不过,我认为您在 Wireshark 中看到的功能是一个显示过滤器,它可以启发式分析相邻数据包。我认为您在捕获时可以做的最好的事情就是寻找 1 字节或 0 字节 ACK 来响应保持活动请求。尝试这个;
tcpdump -vv "tcp[tcpflags] == tcp-ack and less 1"
并查看是否在预期主机之间获得流量。
RFC 1122涵盖了 TCP Keep-alives,并将大部分实施工作留给了供应商。
此外,您可以考虑tcpdump
在 Linux 主机上使用捕获到文件,然后将捕获传输到工作站进行分析。
归档时间: |
|
查看次数: |
18365 次 |
最近记录: |