すべてのプロダクト
Search
ドキュメントセンター

Elastic Compute Service:パケットキャプチャツールを使用してネットワークパケットをキャプチャする

最終更新日:Jul 11, 2025

ソースサーバーがターゲットサーバーにアクセスする際に、パケット損失やレイテンシなどの例外が発生した場合、パケットをキャプチャして元のインタラクションデータを取得し、トラブルシューティングと分析を行うことができます。このトピックでは、Linux と Windows でパケットキャプチャツールを使用してネットワークパケットをキャプチャする方法について説明します。

パケットキャプチャプロセス

ネットワークの例外が発生した場合、データパケットのキャプチャは、問題を特定するための重要な方法の 1 つです。次の図は、パケットキャプチャプロセスを示しています。

上記のプロセスについて、以下の点に注意してください。

番号

手順

説明

1

問題の症状を特定する

この手順では、ping や traceroute などのツールを使用して、以下の現象が発生しているかどうかを分析および判断できます。

  • パケット損失が発生する。

  • ネットワークレイテンシが高すぎる。

  • 特定のサービスまたはポートにアクセスできない。

2

適切なパケットキャプチャツールを選択する

ビジネス要件、ハードウェア、およびソフトウェア環境に基づいて、適切なパケットキャプチャツールを選択します。

  • Linux インスタンス: tcpdump を使用できます。これは、パケットキャプチャ要件を満たすための豊富なパラメータをサポートするコマンドラインツールです。

  • Windows インスタンス: Wireshark を使用できます。これは、グラフィカルインターフェースを備えた強力なパケットキャプチャツールです。

3

パケットキャプチャツールをインストールして構成する

ネットワークパケットをキャプチャする前に、効率を向上させるために、必要に応じてパケットキャプチャツールのフィルタ条件を構成することをお勧めします。

4

ネットワークパケットをキャプチャする

ネットワークパケットをキャプチャする前に、以下の情報を明確にしてください。

  • ネットワークポート。

  • ターゲットポート。

  • プロトコルタイプ。

5

キャプチャされたデータを分析する

キャプチャされたデータを以下の方法で分析します。

  • TCP ハンドシェイクプロセスを確認する。

  • 再送パケットを特定する。

  • 応答時間を分析する。

  • エラーコードのトラブルシューティングを行う。

6

問題を解決し、結果を確認する

キャプチャされたデータに基づいて問題を特定できない場合は、他のツールまたは方法を使用してさらにトラブルシューティングを行います。

  • ping や traceroute などのコマンドを実行して、ネットワーク接続、パケット損失、およびレイテンシを確認する。

  • ルートテーブルの構成または関連するネットワークデバイスのログを確認して、さらに分析を行う。

Linux インスタンスで tcpdump ツールを使用する

Linux インスタンスでは、tcpdump ツールを使用してネットワークパケットをキャプチャおよび分析できます。ほとんどの Linux ディストリビューションには、tcpdump ツールがプリインストールされています。 tcpdump ツールがインストールされていない場合は、Advanced Package Tool (APT) や Yellowdog Updater Modified (YUM) などのパッケージ管理ツールを使用してインストールできます。詳細については、「パッケージ管理ツールを使用してソフトウェアを管理する」をご参照ください。

説明

tcpdump コマンド:

tcpdump [ -AbdDefhHIJKlLnNOpqStuUvxX# ] [ -B buffer_size ]
               [ -c count ] [ --count ] [ -C file_size ]
               [ -E spi@ipaddr algo:secret,...  ]
               [ -F file ] [ -G rotate_seconds ] [ -i interface ]
               [ --immediate-mode ] [ -j tstamp_type ] [ -m module ]
               [ -M secret ] [ --number ] [ --print ] [ -Q in|out|inout ]
               [ -r file ] [ -s snaplen ] [ -T type ] [ --version ]
               [ -V file ] [ -w file ] [ -W filecount ] [ -y datalinktype ]
               [ -z postrotate-command ] [ -Z user ]
               [ --time-stamp-precision=tstamp_precision ]
               [ --micro ] [ --nano ]
               [ expression ]

次の表は、上記のコマンドで頻繁に使用されるパラメータについて説明しています。

パラメータ

説明

-s

キャプチャサイズ。値 0 は、システム定義のキャプチャサイズに基づいてデータパケットがキャプチャされることを示します。

-w

キャプチャされたパケットをファイルに保存して後で分析できるようにします。コンソールにパケットデータを解析して出力するのではなく、ファイルに保存します。

-i

リッスンするインターフェース (ネットワークインターフェース)。

-vvv

詳細なインタラクションデータを出力します。

expression

パケットをフィルタリングするために使用される正規表現。以下のように式を使用できます。

  • プリミティブのタイプを指定します。指定可能なタイプは、host (ホスト)、net (ネットワーク)、および port (ポート) です。

  • 転送方向を指定します。指定可能な転送方向は、src (ソース)、dst (宛先)、dst or src (ソースまたは宛先)、および dst and src (ソースと宛先) です。

  • プロトコルを指定します。指定可能なプロトコルには、ICMP、IP、ARP、RARP、TCP、および UDP が含まれます。

説明

tcpdump ツールのその他のパラメータと使用方法の詳細については、「tcpdump man ページ」をご参照ください。

次のセクションでは、tcpdump コマンドの使用方法とコマンド出力の例について説明します。

  • 特定のネットワークインターフェースとポートのパケットをキャプチャする。

    次のコマンドを実行して、eth0 ネットワークインターフェースとポート 22 間のパケットをキャプチャし、キャプチャされたパケットデータをコンソールに表示します。

    tcpdump -s 0 -i eth0 port 22

    キャプチャプロセス中、キャプチャされたパケットデータはリアルタイムで表示されます。 Ctrl + C を押すと、キャプチャプロセスを停止できます。 キャプチャプロセスが停止すると、キャプチャされたデータの概要が表示されます。

    tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
    listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
    20:24:59.414951 IP 172.xx.xx.226.ssh > 42.xx.xx.107.43414: Flags [P.], seq 442372:442536, ack 53, win 141, length 164
    20:24:59.415002 IP 172.xx.xx.226.ssh > 42.xx.xx.107.43414: Flags [P.], seq 442536:442700, ack 53, win 141, length 164
    20:24:59.415052 IP 172.xx.xx.226.ssh > 42.xx.xx.107.43414: Flags [P.], seq 442700:442864, ack 53, win 141, length 164
    20:24:59.415103 IP 172.xx.xx.226.ssh > 42.xx.xx.107.43414: Flags [P.], seq 442864:443028, ack 53, win 141, length 164
  • 特定のネットワークインターフェースとポートのパケットをキャプチャし、キャプチャされたパケットの詳細情報を出力する。

    次のコマンドを実行して、eth1 ネットワークインターフェースとポート 22 間のパケットをキャプチャし、キャプチャされたパケットの詳細情報をコンソールに表示します。

    tcpdump -s 0 -i eth1 -vvv port 22

    キャプチャプロセス中、パケットデータはリアルタイムで表示されます。 Ctrl + C を押すと、キャプチャプロセスを停止できます。 キャプチャプロセスが停止すると、キャプチャされたデータの概要が表示されます。

    tcpdump: listening on eth1, link-type EN10MB (Ethernet), snapshot length 262144 bytes
    15:45:54.817920 IP (tos 0x10, ttl 64, id 61958, offset 0, flags [DF], proto TCP (6), length 172)
        iZr1ulp9t4u4a8Z.ssh > 123.xxx.xxx.74.2057: Flags [P.], cksum 0x80cd (incorrect -> 0x2ee9), seq 890113592:890113724, ack 2345612678, win 592, length 132
    15:45:54.894215 IP (tos 0x14, ttl 116, id 16850, offset 0, flags [DF], proto TCP (6), length 40)
        123.139.88.74.2057 > iZr1ulp9t4u4a8Z.ssh: Flags [.], cksum 0x1e6a (correct), seq 1, ack 132, win 1021, length 0
    15:45:54.913403 IP (tos 0x10, ttl 64, id 61959, offset 0, flags [DF], proto TCP (6), length 172)
        iZr1ulp9t4u4a8Z.ssh > 123.xxx.xxx.74.2057: Flags [P.], cksum 0x80cd (incorrect -> 0x1105), seq 132:264, ack 1, win 592, length 132
    15:45:54.988025 IP (tos 0x10, ttl 64, id 61960, offset 0, flags [DF], proto TCP (6), length 236)
        iZr1ulp9t4u4a8Z.ssh > 123.xxx.xxx.74.2057: Flags [P.], cksum 0x810d (incorrect -> 0x98d1), seq 264:460, ack 1, win 592, length 196
  • 特定のネットワークインターフェースと IP アドレスについて、特定のプロトコルのパケットをキャプチャする。

    次のコマンドを実行して、eth0 ネットワークインターフェースと特定の IP アドレス間の Internet Control Message Protocol (ICMP) ping パケットをキャプチャし、キャプチャされたパケットの詳細情報をコンソールに表示します。

    tcpdump -s 0 -i eth0 -vvv dst 123.xxx.xxx.74 and icmp

    キャプチャプロセス中、パケットデータはリアルタイムで表示されます。 Ctrl + C を押すと、キャプチャプロセスを停止できます。 キャプチャプロセスが停止すると、キャプチャされたデータの概要が表示されます。

    tcpdump: listening on eth0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
    15:43:29.116058 IP (tos 0x14, ttl 64, id 26185, offset 0, flags [none], proto ICMP (1), length 60)
        iZr1ulp9t4u4a8Z > 123.xxx.xxx.74: ICMP echo reply, id 2048, seq 65, length 40
    15:43:30.129600 IP (tos 0x14, ttl 64, id 27043, offset 0, flags [none], proto ICMP (1), length 60)
        iZr1ulp9t4u4a8Z > 123.xxx.xxx.74: ICMP echo reply, id 2048, seq 66, length 40
    15:43:31.141576 IP (tos 0x14, ttl 64, id 27201, offset 0, flags [none], proto ICMP (1), length 60)
        iZr1ulp9t4u4a8Z > 123.xxx.xxx.74: ICMP echo reply, id 2048, seq 67, length 40
    15:43:32.153912 IP (tos 0x14, ttl 64, id 27802, offset 0, flags [none], proto ICMP (1), length 60)
        iZr1ulp9t4u4a8Z > 123.xxx.xxx.74: ICMP echo reply, id 2048, seq 68, length 40
  • パケットをキャプチャし、パケットをファイルに保存する。

    次のコマンドを実行して、すべてのネットワークインターフェースのパケットをキャプチャし、キャプチャされたパケットを特定のファイルに保存します。

    tcpdump -i any -s 0 -w test.cap

    次のコマンド出力例は、パケットキャプチャが進行中であることを示しています。

    tcpdump: data link type LINUX_SLL2
    tcpdump: listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 262144 bytes

    キャプチャプロセスを停止するには、Ctrl + C を押します。 キャプチャプロセスが停止すると、キャプチャされたデータの概要が表示されます。

    ^C97 packets captured
    127 packets received by filter
    0 packets dropped by kernel
  • 生成されたパケットキャプチャファイルの内容を表示する。

    次のコマンドを実行して、tcpdump によって生成されたパケットキャプチャファイルの内容を表示します。

    tcpdump -r test.cap

Windows インスタンスで Wireshark ツールを使用する

このセクションでは、Windows インスタンスで Wireshark ツールを使用してネットワークパケットをキャプチャおよび分析する方法について説明します。

手順

  1. Wireshark ツールをインストールして起動します。

    Wireshark 公式 Web サイトにアクセスし、Wireshark インストールパッケージを入手して、Wireshark ツールをインストールします。

  2. [キャプチャ]> [オプション] を選択します。

  3. [Wireshark キャプチャオプション] ページで、インターフェース名または IP アドレスに基づいてパケットキャプチャ用のネットワークインターフェースを選択し、[開始] をクリックします。

    image

  4. 十分なデータパケットがキャプチャされたら、[キャプチャ] > [停止] を選択します。

  5. [ファイル] > [保存] を選択して、キャプチャされたパケットをファイルに保存します。

  6. (オプション) パケットキャプチャファイルを表示するには、Wireshark インターフェースのメニューバーで [ファイル] > [開く] を選択し、表示するパケットキャプチャファイルを選択します。

説明

Wireshark ツールの使用方法とデータの分析方法の詳細については、Wireshark 公式 Web サイトをご参照ください。

参照