Michael_P 提供の写真
この記事は Balakrishnan M によって書かれました
しばらく前に、editcap ユーティリティを使用してネットワーク ダンプを取得する方法に関する 11 の例を確認しました。この記事では、mergecap ユーティリティと tshark コマンドを確認します。
Mergecap は、複数のダンプを 1 つのダンプ ファイルに結合するパケット ダンプ結合ツールです。タイムスタンプに基づいて、パケットは順番に出力ファイルに書き込まれます。デフォルトでは、出力ファイルは libpcap 形式で書き込まれます。ただし、mergecap オプションを使用すると、wireshark ツールでサポートされているものを含む、さまざまな異なる形式で出力を生成できます。
mergecap は、wireshark パッケージで利用できます。 mergecap を使用するには、wireshark/ethereal パッケージがインストールされていることを確認してください。
2 つのダンプ ファイルを 1 つの output_dump ファイルに結合
input_dump1 と input_dump2 のキャプチャ ファイルを結合し、output_dump ファイルに書き込みます。
# mergecap -v input_dump1 input_dump2 -w output_dump
この例では、input_dump2 には、input_dump1 の後にキャプチャされたパケットが含まれています。 output_dump には、最初に intput_dump2 パケットが含まれ、その後に intput_dump1 パケットが続きます。
# mergecap input_dump1 input_dump2 -w output_dump -a
出力ダンプ ファイルを標準出力に出力
2 つのネットワーク ダンプ ファイルを結合し、出力をファイルに書き込む代わりに標準出力に出力します。
# mergecap -v input1_dump input2_dump -w -
出力ファイルを特定のカプセル化形式で出力
以下に示すように、オプション -T を使用して、目的のカプセル化形式で出力ファイルを取得します。
# mergecap -v -T ether -w merge_cap capture1 capture2 capture3
3.特定の長さのパケットをマージ
この例では、output_dump に最大 100 バイト長のパケットが含まれています。
# mergecap -v -s 100 dump1 dump2 dump3 -w output_dump
Tshark – パケット キャプチャ ツール
Tshark はネットワーク パケットをキャプチャするための強力なツールであり、ネットワーク トラフィックの分析に使用できます。 Wireshark ネットワーク アナライザ ディストリビューションが付属しています。
ネットワーク キャプチャを継続的にキャプチャ
次の例では、ネットワーク パケットを 60 秒間連続してキャプチャします。キャプチャの 60 秒後、自動的に停止します。 capture_out には、最後の 60 秒間にネットワークを流れたパケットが含まれます。
# tshark -q -w capture_out -a duration:60
次の例では、パケットが画面に出力され、同時に出力ファイルに書き込まれます。
# tshark -S -q -w capture_out -a duration:10
tshark を使用してネットワーク統計を取得する
特定の間隔でネットワークを流れるパケットの数を確認するには、次のコマンドを使用します。
# tshark -q -w capture_duration1 -a duration:1 -z io,stat,1
特定のホストのネットワーク パケットをキャプチャ
次の例を使用して、特定のホストのパケット フロー (送信および受信パケット) をキャプチャします。この例では、ホスト 192.168.1.185 のネットワークで毎秒いくつのパケットが流れているかがわかります。
# tshark -S -q -w capture_duration6 -a duration:6 -z io,stat,1,ip.addr==192.168.1.150 After capturing all the packets for 6 seconds duration, it will print the statistics as like the following, 145 packets dropped 19749 packets captured IO Statistics Interval: 1.000 secs Column #0: ip.addr==192.168.1.185 | Column #0 Time |frames| bytes 000.000-001.000 2733 545242 001.000-002.000 2991 583374 002.000-003.000 3310 650716 003.000-004.000 3236 641896 004.000-005.000 3518 690860 005.000-006.000 3310 654988 006.000-007.000 638 122812
特定のポートでネットワーク パケットをキャプチャする
この例では、ssh パケットのみをキャプチャします。
# tshark -f “tcp port 22” -w capture_out
特定の期間のネットワーク パケットをキャプチャする
次の例では、パケットを特定の期間 (5 秒) キャプチャし、キャプチャ ファイルのサイズが特定のサイズ (1000KB) に達すると、次のファイルに切り替えます。
# tshark -a filesize:1000 -a duration:5 -a files:5 -w ethcap1
サイズの出力キャプチャ ファイル名の例:
ethcap1_00001_20090216174203 - 1000K ethcap1_00002_20090216174205 - 1000K ethcap1_00003_20090216174207 - 835K
その他の tshark キャプチャ コマンド
オプション -c を使用して、特定のパケット数までパケットをキャプチャします。次の例では、10 パケットのみで ethcap1 ファイルを作成します。
# tshark -c 10 -w ethcap1
オプション -r を使用して、からネットワーク パケットを圧縮ファイルとして読み取ります。
# tshark -r capture_dump.gz
オプション -r を使用して、特定のパケット タイプのみを表示します。次の例では、ネットワーク アナライザーで rtp パケットのみを使用してファイル capture_dump を作成します。
# tshark -R “rtp” -r capture_dump
以下のフィルタを使用して、ポート 1720 に流れる tcp パケットをキャプチャします。
# tshark -f “tcp port 1720”
次の例では、ポート 1720 または 1721 に着信するパケットをキャプチャします。
# tshark -f “port 1720 or port 1721” -w capture_dump
デフォルトでは、tshark は eth0 デバイスを使用してパケット キャプチャを行います。以下に示すように、オプション -i を使用して特定のイーサネット アダプタを指定することもできます。
# tshark -i eth1 -w -a duration:10 capture_dump
この記事は Balakrishnan Mariyappan によって書かれました。 彼は bk Systems (p) Ltd で働いており、オープン ソースへの貢献に関心があります。 The Geek Stuff は、あなたのヒントやゲスト記事を歓迎します。