我正在尝试仅捕获 TCP SYN-ACK 数据包,即同时设置 SYN 和 ACK 位:
tcpdump -vvvni eth0 tcp[tcpflags] == tcp-syn and tcp[tcpflags] == tcp-ack
但它给出了这样的错误:
tcpdump: expression rejects all packets
我仍然无法弄清楚是否有办法通过tcpdump
.
顺便说一句,我尝试捕获仅设置了 SYN 标志的数据包,期望也会有 SYN-ACK(因为这里没有矛盾),但只有纯 SYN 数据包(仅设置了 SYN 位)。所以我需要一些方法来只查看 SYN-ACK 或 SYN 和 SYN-ACK。
PS它是关于IPv4上的常规TCP。
基于查看pcap-filter手册页,尤其是最后的示例,我建议匹配至少设置了 SYN 和 ACK 的数据包的正确过滤器语法是:
相反,您的过滤器表达式尝试匹配标志同时等于SYN 和等于ACK 的数据包,这不起作用,因为它不能同时等于两者,但它只能包含两个标志。
如果您对匹配标志等于 SYN+ACK 且未设置其他标志的数据包感兴趣,那么您也可以使用更简单的语法: