tcpdumpを使用してすべてのデータを表示するには?

tcpdumpを使用してすべてのデータを表示するには?

キャプチャネットワークトラフィックを使用していますtcpdump。問題は、パケットが長すぎると、キャプチャされたすべてのデータを見ることができないことです。たとえば、tcpフレームの長さが500を超えると、100〜200以下しか表示されません。すべてのフレームデータ(500+)を表示するには?パラメータ-vvを追加してみました-vvv。これは私のコマンドです:

tcpdump -i eth1 tcp and host 10.27.13.14 and port 6973 -vv -X -c 1000

ベストアンサー1

-ssnaplenフラグを使用して各パケットのサイズを指定できます。

-s 0マニュアルページによると、デフォルトのパケットサイズは65535バイトに設定されています。これにより、パケットを処理するのに必要な時間が長くなり、パケットバッファリング量が減少します。ここではこれが機能しますが、パケット損失が発生する可能性があるため、他の状況では適切ではない可能性があります。

snaplenより良い方法は、必要なものをキャプチャするために必要な最小値にフラグを設定することです。もう一つの答えパケット全体を表示するには1500バイトを使用し、ヘッダーにのみ興味がある場合は160バイトを使用することをお勧めします。

したがって、-s 0ここでは機能することができますが、後で使用するにはまず始めて、必要に応じて調整することをお勧めします-s 1500

からman tcpdump

より大きなスナップショットを撮ると、パケットを処理するのに必要な時間が増えるだけでなく、パケットバッファリングの量も効果的に減少します。これにより、パケット損失が発生する可能性があります。興味のあるプロトコル情報をキャプチャする最小数に snaplen を制限する必要があります。 snaplenを0に設定すると、最近のバージョンのtcpdumpとの互換性のためにデフォルトの65535に設定されます。

おすすめ記事