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のみを表示する方法が必要です。
追伸それは通常のTCP IPv4経由です。
pcap-filter のマニュアルページと特に最後の例を見ると、少なくともSYNとACKの両方が設定されているパケットに一致する正しいフィルター構文は次のようになると思います。
tcp[tcpflags] & (tcp-syn|tcp-ack) == tcp-syn|tcp-ack
代わりに、フィルター式は、フラグがequalであるパケットをSYNに一致させ、equal同時にACKすると、同時に両方に等しくなることはできないため機能しませんが、両方のフラグしかcontainしかできません。
フラグがSYN + ACKに等しく、他のフラグが設定されていないパケットの照合に関心がある場合は、より単純な構文を使用することもできます。
tcp[tcpflags] == tcp-syn|tcp-ack