Tshark でリアルタイムにトラフィックを監視する

WiresharkWiresharkBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、Wireshark のコマンドラインツール tshark を使用して、ネットワークトラフィックをリアルタイムで監視する方法を学びます。eth1 インターフェイスでパケットをキャプチャし、ライブ統計情報の更新を設定し、-i--update-interval などの主要なコマンドを使用して要約された出力を分析する練習を行います。

実践的な演習を通じて、TCP ハンドシェイクを観察し、セッションを終了し、IP アドレスやプロトコルなどのリアルタイムトラフィックの詳細を解釈します。この実験は、重要なネットワーク分析技術の実践的な経験を提供します。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL wireshark(("Wireshark")) -.-> wireshark/WiresharkGroup(["Wireshark"]) wireshark/WiresharkGroup -.-> wireshark/interface("Interface Overview") wireshark/WiresharkGroup -.-> wireshark/packet_capture("Packet Capture") wireshark/WiresharkGroup -.-> wireshark/commandline_usage("Command Line Usage") subgraph Lab Skills wireshark/interface -.-> lab-548934{{"Tshark でリアルタイムにトラフィックを監視する"}} wireshark/packet_capture -.-> lab-548934{{"Tshark でリアルタイムにトラフィックを監視する"}} wireshark/commandline_usage -.-> lab-548934{{"Tshark でリアルタイムにトラフィックを監視する"}} end

-i eth1 でキャプチャを開始する

このステップでは、Wireshark のコマンドラインツール tshark を使用して、eth1 インターフェイスでネットワークパケットのキャプチャを開始する方法を学びます。これは、ネットワークトラフィック分析の基本的な操作です。

ネットワークインターフェイスは、コンピュータがネットワークに接続する物理的または仮想的なポイントです。tshark の -i フラグは、パケットをキャプチャするネットワークインターフェイスを指定します。ほとんどの Linux システムでは、eth1 は最初の Ethernet インターフェイスを表し、通常はメインの有線ネットワーク接続です。LabEx の仮想マシン (VM) 環境では、eth1 はネットワークに接続されたデフォルトの Ethernet インターフェイスです。

フィルタを指定せずに tshark を実行すると、指定されたインターフェイスを通過するすべてのネットワークトラフィックがキャプチャされます。これには、受信パケットと送信パケットの両方が含まれます。これから使用するコマンドは、このトラフィックのリアルタイムビューを提供します。

キャプチャを開始するには、以下の手順に従ってください。

  1. LabEx VM のターミナルを開きます (すでに ~/project ディレクトリにいるはずです)。
  2. 以下のコマンドを実行して、eth1 でキャプチャを開始します。
tshark -i eth1

このコマンドは、tshark に eth1 インターフェイスを監視させ、キャプチャされた各パケットを表示するように指示します。出力は、各ネットワークパケットの詳細情報をリアルタイムで表示します。

パケットのキャプチャが開始されると、次のような出力が表示されるはずです。

Capturing on 'eth1'
1 0.000000000 192.168.1.100 → 192.168.1.1    TCP 74 55942 → 80 [SYN] Seq=0 Win=64240 Len=0 MSS=1460 SACK_PERM=1 TSval=123456789 TSecr=0 WS=128
2 0.000123456 192.168.1.1 → 192.168.1.100    TCP 74 80 → 55942 [SYN, ACK] Seq=0 Ack=1 Win=65535 Len=0 MSS=1460 SACK_PERM=1 TSval=987654321 TSecr=123456789 WS=128

各行はキャプチャされたパケットを表し、タイムスタンプ、送信元と宛先の IP アドレス、プロトコルタイプ (この場合は TCP)、およびさまざまなプロトコル固有の詳細が表示されます。最初のパケットは TCP 接続の開始 (SYN フラグ) を示し、2 番目のパケットは応答 (SYN-ACK) を示しています。

キャプチャを停止するには、ターミナルで Ctrl+C を押します。これにより、コマンドプロンプトに戻る前に、キャプチャされたパケットの概要が表示されます。概要には、キャプチャされたパケットの数や処理されたパケットの数などの統計情報が含まれます。

--update-interval 1000 で 1 秒ごとの更新を設定する

このステップでは、tshark を設定して、ネットワークトラフィックの統計情報を定期的に更新表示するようにします。この方法は、初心者にとって特に役立ちます。常にパケットの詳細に埋もれることなく、ネットワーク活動を明確かつ管理しやすい形で把握できるからです。

--update-interval パラメータは、tshark が表示を更新する頻度を制御します。値はミリ秒 (ms) で指定され、1000 ms は 1 秒に相当します。これは、ネットワークトラフィックのスナップショットが 1 秒ごとに得られることを意味し、パターンや変化を観察しやすくなります。

始める前に、やろうとしていることを理解しましょう。

  • eth1 ネットワークインターフェイス (ほとんどのシステムでのデフォルトの Ethernet ポート) を監視します。
  • 個々のパケットを見る代わりに、集計されたカウントを見ます。
  • 表示は 1 秒ごとに自動的に更新されます。

これを設定する方法は次のとおりです。

  1. まず、正しい作業ディレクトリにいることを確認します。ターミナルを開き、次のコマンドで移動します。
cd ~/project
  1. 次に、1 秒ごとに更新しながら監視を開始するコマンドを実行します。
tshark -i eth1 --update-interval 1000

このコマンドを実行すると、次のような出力が表示されます。

Capturing on 'eth1'
Packets: 15
Packets: 32
Packets: 47

出力に関する重要な注意事項:

  • "Packets" のカウントは、tshark を開始してからキャプチャされたパケットの総数を示します。
  • 新しい行は、指定された間隔 (1 秒) 後の更新を表します。
  • 数字は実際のネットワーク活動に応じて異なります。
  • 数字が大きいほど、その期間中のネットワークトラフィックが多いことを示します。

この方法では、ネットワーク活動の定期的なクリーンな概要が得られます。これは、ネットワーク監視を初めて学び、詳細に迷い込むことなくトラフィックパターンを観察したいときに特に便利です。

-P でリアルタイムの概要を表示する

このステップでは、tshark の概要モードを使ってネットワークトラフィックを俯瞰的に監視する方法を探ります。個々のパケットの詳細に圧倒されることなくトラフィックパターンを観察したい場合、この方法は特に有用です。各車を調べる代わりに高速道路の交通の流れを見るようなものだと考えてください。

-P パラメータは、tshark に個々のパケットを表示する代わりに定期的な統計情報を表示するよう指示します。--update-interval と組み合わせると、指定したタイミングで更新されるダッシュボードのような表示が得られます。概要を把握するだけの場合は、生のパケットデータをスクロールするよりもはるかに効率的です。

始める前に、ネットワークトラフィックをキャプチャする権限がある正しい作業ディレクトリにいることを確認してください。これから使うコマンドは、前のステップで学んだ内容を基にしています。

tshark -i eth1 --update-interval 1000 -P

各部分の機能は次のとおりです。

  • -i eth1 は監視するネットワークインターフェイスを指定します。
  • --update-interval 1000 は更新間隔を 1000 ミリ秒 (1 秒) に設定します。
  • -P は定期的な統計情報の表示モードを有効にします。

コマンドを実行すると、1 秒ごとに更新される出力が表示され、3 つの重要な指標が示されます。

Capturing on 'eth1'
Packets: 15    Avg. packet size: 342 bytes    Packets/s: 5
Packets: 32    Avg. packet size: 356 bytes    Packets/s: 8
Packets: 47    Avg. packet size: 378 bytes    Packets/s: 7

これらの指標は次の情報を示しています。

  1. 開始してからキャプチャされたパケットの総数
  2. これらのパケットの平均サイズ (バイト単位)
  3. 現在のインターフェイスを流れるパケットの速度

この表示は、ネットワーク活動における突然のトラフィックの急増や異常なパターンを見つけるのに特に役立ちます。ネットワークの状況が変化するにつれて数字は動的に変化し、ネットワークで何が起こっているかをリアルタイムで把握できます。

Ctrl+C で終了する

このステップでは、実行中の tshark のパケットキャプチャセッションを安全に停止する方法を学びます。初心者にとって、単にターミナルを閉じたり、プロセスを急に終了させたりすると、データが失われる可能性があることを理解することが重要です。適切な方法は、標準的な Linux の割り込みメカニズムを使用することです。

tshark を実行すると、ネットワークトラフィックを継続的に監視し、データをメモリに書き込みます。Ctrl+C を押すと、SIGINT (割り込みシグナル) が送信され、tshark に次のことを指示します。

  1. 新しいパケットのキャプチャを直ちに停止する
  2. 収集した統計情報を確定して表示する
  3. きれいに終了し、コマンドプロンプトに戻る

具体的な手順は次のとおりです。

  1. まず、tshark のキャプチャが実行中であることを確認します (前の手順と同じコマンド -i eth1 --update-interval 1000 -P を使用)
  2. キーボードで Ctrl キーを押し続けます
  3. Ctrl キーを押し続けながら、C キーを 1 回押します

次のような出力が表示されます。

^C
47 packets captured

^C の記号は、Ctrl+C を押したことを確認します。数字は、セッション中に正常にキャプチャされたパケットの数を示します。このカウントは、停止する前にキャプチャが期待通りに機能したことを確認するのに役立ちます。

この方法は、すべてのキャプチャデータを保存し、きれいに終了します。一方、強制終了すると、停止時に処理中のパケットが失われる可能性があります。

まとめ

この実験では、Wireshark のコマンドラインインターフェイスである Tshark を使用して、ネットワークトラフィックをリアルタイムで監視する方法を学びました。主要な技術には、-i を使用して eth1 でパケットキャプチャを開始すること、--update-interval を介して定期的な更新を設定すること、および -P を使用してリアルタイムのパケット概要を表示することが含まれていました。

演習では、生のパケットをキャプチャし、TCP ハンドシェイクを分析し、リアルタイムのトラフィック統計を追跡する実践的な経験を積みました。これらの基本的なスキルにより、ターミナルベースのパケット検査を通じて効率的なネットワーク監視とトラブルシューティングが可能になります。