tcpdumpを使用してパケットの内容をキャプチャして表示する方法

tcpdumpを使用してパケットの内容をキャプチャして表示する方法

HTTPトラフィックをファイルのポート8007に送信してから、後で表示しようとします。

# tcpdump -i eth0 -s0 -n -w /tmp/capture port 8007 &
# tcpdump -r /tmp/capture -A | grep '10.2.1.50'

私はパケットデータをASCII形式で見ることを期待しましたが、そうではありません。私が得るのはこれです:

23:03:16.819935 IP 10.2.1.50.8007 > 10.2.1.120.57469: . ack 1369 win 272 <nop,nop,timestamp 188139705 215355175>
23:03:16.819943 IP 10.2.1.120.57469 > 10.2.1.50.8007: P 1369:1592(223) ack 1 win 12 <nop,nop,timestamp 215355175 188139703>
23:03:16.819947 IP 10.2.1.50.8007 > 10.2.1.120.57469: . ack 1592 win 272 <nop,nop,timestamp 188139705 215355175>
23:03:17.029587 IP 10.2.1.50.8007 > 10.2.1.120.57469: P 1:780(779) ack 1592 win 272 <nop,nop,timestamp 188139758 215355175>
23:03:17.029736 IP 10.2.1.50.8007 > 10.2.1.153.49989: F 822:822(0) ack 3494 win 272 <nop,nop,timestamp 188139758 1641992210>
23:03:17.040759 IP 10.2.1.120.57469 > 10.2.1.50.8007: . ack 780 win 15 <nop,nop,timestamp 215355396 188139758>
23:03:17.079305 IP 10.2.1.153.49989 > 10.2.1.50.8007: . ack 823 win 15 <nop,nop,timestamp 1642053303 188139758>

実際の内容を表示するには、書き込みまたは読み取りをどのように変更する必要がありますか? -vなどの他のオプションを試しましたが、コンテンツでは機能しません。 SLES 11 SP2を使用しています。これはtcpdump正しいツールですか?

ありがとうございます。

- 編集する

# tcpdump --version
tcpdump version 3.9.8
libpcap version 0.9-PRE-CVS

-Xオプションも試してみましたが、まだペイロードデータを見ることはできません。

答え1

出力はgrepにパイプされるため、ヘッダーのみが表示され、パケットの内容は表示されません。したがって、IPアドレスを持つ行のみを取得します。

-Aオプションはtcpdumpパケットの内容も提供します。

答え2

使用tcpdump -X

たとえば(私が使用するFedora / Centosの場合):

sudo tcpdump -nvvvXi br0 

    13:29:20.311228 00:1c:73:86:12:f9 > 01:00:5e:00:01:81, ethertype IPv4 (0x0800), length 86: (tos 0x0, ttl 5, id 0, offset 0, flags [none], proto UDP (17), length 72)
        10.134.245.1.ptp-general > 224.0.1.129.ptp-general: Ptp MessageType: Follow_Up, SequenceId: 8208
    
            0x0000:  4500 0048 0000 0000 0511 d49c 0a86 f501  E..H............
            0x0010:  e000 0181 0140 0140 0034 0cd0 0802 002c  .....@[email protected].....,
            0x0020:  0100 0000 0000 0000 0000 0000 0000 0000  ................
            0x0030:  444c a8ff ffc7 1f6b 0236 2010 0200 0000  DL.....k.6......
            0x0040:  5f2a b430 0d5e b480                      _*.0.^..

答え3

これが内容です。コンテンツをフィルタリングするために使用したいくつかのコマンドがあります。

答え4

OPがIP 10.2.1.50から来るパケットの内容を見たいと思うようです。
この記事を偶然見つけて更新したいと思いました。 tcpdumpでスイッチを使用する
私は、保存されたpcapファイルをスイッチと一緒に使用したことがありませんが、機能できることを願っています。ライブtcpdumpでサンプルを使用する方法 - 10.2.1.50の「着信と発信」トラフィックを確認したり、ネットワークの結果を確認したり、10.2.1.50で発生したトラフィックを確認します。役に立つことを願っています。 host


tcpdump -nnA host 10.2.1.50
tcpdump -nnA net 10.2.1.0/24
tcpdump -nnA src 10.2.1.50

編集するまた、正しくgrepするには、-Aスイッチを使用してください
tcpdump -r /tmp/capture -A | grep -A5 '10.2.1.50'
。 A5スイッチは、10.2.1.50に一致する行の後に次の5行を表示します。

関連情報