tcpdump -i eth0 -n tcp port 5000
2つのホスト間を流れるすべてのパケットをフィルタリングするには、次のものが必要です。ただし、ホストの1つは常にACKを送信します。
このACKをどのように隠すことができますか?
答え1
tcpdump -i eth0 -n 'tcp port 5000 and (tcp[tcpflags] & tcp-ack == 0)'
あなたが欲しいものをする必要があります。もちろんビットごとの合計TCPフラグとACK専用ビットマスクの間の値なので、ACKがない場合、結果は0に等しくなければなりません。
答え2
grepに次のコマンドを渡すことで非表示にすることができます。
tcpdump -i eth0 -n tcp port 5000 | grep -e ACK -v
-e option is to select a pattern (ACK in your case)
-v (to invert the grep function : grep all except the defined pattern)
答え3
私はこれをman tcpdumpフィルタの例から直接コピーしました:
ポート80前後のすべてのIPv4 HTTPパケットを印刷します。つまり、データを含むパケットのみが印刷されます。たとえば、SYNおよびFINパケットとACKパケットだけは印刷されません。 (IPv6は読者の練習問題として残しています。)
tcpdump 'tcp ポート 80 および (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'