Tshark でログを使ったデバッグ

WiresharkWiresharkBeginner
今すぐ練習

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

はじめに

この実験では、Wireshark のコマンドラインツールである Tshark を使用した基本的なデバッグ手法を学びます。--log-level を使ってデバッグレベルを設定する方法、-i を使って eth1 でリアルタイムのトラフィックをキャプチャする方法、および --log-file を使ってログをファイルに保存して分析する方法を探ります。

実践的な演習を通じて、デバッグモードの設定、ネットワークトラフィックの監視、およびログ出力の解釈を練習します。この実験では、制御された仮想マシン (VM) 環境で Tshark の主要なデバッグ機能を実際に体験することができます。


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/display_filters("Display Filters") wireshark/WiresharkGroup -.-> wireshark/packet_analysis("Packet Analysis") wireshark/WiresharkGroup -.-> wireshark/commandline_usage("Command Line Usage") subgraph Lab Skills wireshark/interface -.-> lab-548920{{"Tshark でログを使ったデバッグ"}} wireshark/packet_capture -.-> lab-548920{{"Tshark でログを使ったデバッグ"}} wireshark/display_filters -.-> lab-548920{{"Tshark でログを使ったデバッグ"}} wireshark/packet_analysis -.-> lab-548920{{"Tshark でログを使ったデバッグ"}} wireshark/commandline_usage -.-> lab-548920{{"Tshark でログを使ったデバッグ"}} end

--log-level debug でデバッグレベルを設定する

このステップでは、Wireshark のコマンドラインツール tshark を使用する際に、ログメッセージの詳細レベルを調整する方法を学びます。--log-level フラグは、tshark が表示する情報量を制御するのに役立ちます。これは、裏で何が起こっているのかを理解したい場合や問題をトラブルシューティングする必要がある場合に特に便利です。

  1. まず、作業環境を準備しましょう。LabEx の仮想マシン (VM) でターミナルを開きます。整理しやすいように、デフォルトのプロジェクトディレクトリで作業します。

    cd ~/project
  2. ログレベルを設定する基本的なコマンド構造は簡単です。フラグの後に希望するレベルを指定するだけです。

    tshark --log-level <level>

    以下は、最も一般的に使用されるログレベルで、詳細度が低い順に並んでいます。

    • critical - tshark の動作を妨げる可能性のある深刻なエラーのみを表示します。
    • warning - 重大ではないが注意すべき潜在的な問題を表示します。
    • message - 通常の操作メッセージを表示するデフォルトのレベルです。
    • info - tshark の活動に関する追加の情報メッセージを提供します。
    • debug - 詳細なトラブルシューティングのために、最も詳細な技術情報を表示します。
  3. この演習では、最大限の情報を表示するために debug レベルを使用します。これにより、tshark のすべての裏での操作を理解するのに役立ちます。次のコマンドを実行します。

    tshark --log-level debug
  4. コマンドを実行すると、通常よりもはるかに多くの出力が表示されることに気づくでしょう。このデバッグ出力には、初期化の詳細、内部処理メッセージ、および tshark がネットワークトラフィックを処理する方法に関する技術情報が含まれています。

  5. tshark を停止する準備ができたら、ターミナルで Ctrl+C を押すだけです。このキーボードショートカットは、現在実行中のコマンドを停止するための割り込み信号を送信します。

-i eth1 でトラフィックをキャプチャする

このステップでは、Wireshark の強力なコマンドラインツール tshark を使用して、リアルタイムのネットワークトラフィックをキャプチャする方法を探ります。ネットワークインターフェイスは、コンピュータがネットワークに接続する物理的または仮想的なポイントであり、eth1 は通常、Linux システムの最初の Ethernet インターフェイスです。

  1. まず、LabEx の仮想マシン (VM) で利用可能なネットワークインターフェイスを特定しましょう。これにより、正しいインターフェイスを監視していることを確認できます。

    tshark -D

    このコマンドは、tshark がアクセスできるすべてのネットワークインターフェイスをリスト表示します。出力の中から eth1 を探してください。これは通常、メインの Ethernet 接続です。

  2. 次に、実際のネットワークトラフィックのキャプチャを開始しましょう。-i フラグは、tshark に監視するインターフェイスを指定します。

    tshark -i eth1
  3. パケットがネットワークを流れると、それらがリアルタイムで表示されます。各行は 1 つのネットワークパケットを表し、以下の情報を示します。

    • キャプチャされた正確な時間 (タイムスタンプ)
    • パケットの送信元と宛先 (IP アドレス)
    • 含まれるネットワーク通信の種類 (プロトコル)
    • パケットが運ぶデータ量 (パケット長)
  4. 代表的なトラフィックサンプルを収集するために、キャプチャを約 10 秒間実行します。準備ができたら、Ctrl+C を押してキャプチャを停止します。これにより、リアルタイムのパケットキャプチャの実践経験が得られます。

  5. 場合によっては、特定の数のパケットをキャプチャしたいことがあります。-c フラグを使用すると、この上限を設定できます。

    tshark -i eth1 -c 10

    このコマンドは、正確に 10 個のパケットをキャプチャした後に自動的に停止します。これは、簡単なテストに便利です。

  6. これをデバッグと組み合わせることで、キャプチャプロセスに関するより詳細な情報を取得できます。

    tshark -i eth1 --log-level debug

    これにより、パケットだけでなく、tshark の内部操作も表示され、裏で何が起こっているのかを理解するのに役立ちます。

--log-file tshark.log でログをファイルに保存する

このステップでは、--log-file オプションを使用して、tshark のキャプチャログをファイルに保存し、後で分析する方法を学びます。これは、ネットワークトラフィックパターンを記録したり、接続性の問題をトラブルシューティングしたりする際に特に有用です。リアルタイムの出力を見る代わりに、自分の都合の良いときにデータを確認できるからです。

  1. まず、デフォルトの作業ディレクトリにいることを確認してください。ログファイルは現在のディレクトリに作成されるため、これは重要です。

    cd ~/project
  2. ネットワークトラフィックのキャプチャを開始し、同時にすべてのログを tshark.log という名前のファイルに保存するには、このコマンドを実行します。-i eth1 は、Ethernet インターフェイスからキャプチャすることを指定しています。

    tshark -i eth1 --log-file tshark.log
  3. 十分なデータを収集するために、キャプチャを約 10 秒間実行し、その後 Ctrl+C を押してキャプチャプロセスを正常に停止します。このキーボード割り込みにより、ログファイルが適切に閉じられます。

  4. ディレクトリの内容をリスト表示することで、ログファイルが正常に作成されたことを確認します。-l フラグは、サイズやタイムスタンプなどの詳細なファイル情報を表示します。

    ls -l tshark.log

    ファイルのサイズと作成時間が表示され、キャプチャが正常に機能したことが確認できるはずです。

  5. キャプチャされたパケットを調べるために、ログファイルの内容を表示します。cat コマンドは、ファイルの全内容をターミナルに表示します。

    cat tshark.log

    出力には、タイムスタンプ、送信元/宛先アドレス、プロトコル情報など、読みやすい形式でキャプチャされたパケットが表示されます。

  6. 前のステップを組み合わせたより完全な例として、複数の有用なパラメータを含むこの拡張コマンドを試してみてください。

    tshark -i eth1 --log-level debug --log-file tshark.log -c 20

    この包括的なコマンドは以下のことを行います。

    • eth1 ネットワークインターフェイスからパケットをキャプチャします。
    • ログレベルをデバッグに設定して、最大限の詳細を取得します。
    • すべての出力を tshark.log ファイルに保存します。
    • 正確に 20 個のパケットをキャプチャした後に自動的に停止します。

エラーを含むログを確認する

このステップでは、前のステップで作成した tshark ログファイルを分析し、潜在的なネットワーク問題やエラーを特定します。ログはネットワーク活動と潜在的な問題の詳細な記録を提供するため、これはネットワークのトラブルシューティングにおいて重要なスキルです。

  1. まだプロジェクトディレクトリにいない場合は、まずそこに移動します。これにより、正しいログファイルを操作することが保証されます。

    cd ~/project
  2. キャプチャされたネットワークトラフィックの全体像を把握するために、ログファイルの全内容を表示します。cat コマンドは、ファイルの全内容をターミナルに表示します。

    cat tshark.log
  3. ログ内のエラーメッセージを具体的に検索するには、大文字小文字を区別しない一致 (-i フラグ) で grep を使用します。これにより、大文字小文字に関係なくすべてのエラーエントリを見つけることができます。

    grep -i "error" tshark.log
  4. より包括的な分析のために、警告や失敗を含む複数の種類の問題を検索します。-E フラグは拡張正規表現を有効にします。

    grep -E -i "error|warning|fail" tshark.log
  5. エラーの発生回数を数えるには、grep の出力を単語数カウント (wc) の行数カウント (-l) にパイプします。これにより、ログに記録されたエラーの数をすぐに把握できます。

    grep -i "error" tshark.log | wc -l
  6. パケットレベルのエラーをより構造化された形で見るには、tshark の表示フィルタ (-Y) を使用して、エラーフラグが設定されたフレームのみを表示します。これにより、キャプチャ内の問題のあるパケットを特定するのに役立ちます。

    tshark -r tshark.log -Y "frame.error_flag == 1"
  7. さらなる分析やレポートのためにエラーメッセージのみを保存するには、grep の出力を新しいファイルにリダイレクトします。これにより、エラーのみのクリーンなログが作成されます。

    grep -i "error" tshark.log > errors.txt

まとめ

この実験では、Wireshark のコマンドラインツール tshark を使用したネットワークトラフィック分析の実践的な手法を学びました。--log-level debug を使用してデバッグレベルを設定し、詳細な動作メッセージを取得する方法を調査しました。これは、複雑なネットワーク問題のトラブルシューティングにおいて重要です。

さらに、利用可能なインターフェイスを特定し、リアルタイムのパケットデータを分析することで、eth1 インターフェイスでのライブトラフィックのキャプチャを練習しました。これらの基本的なスキルにより、コマンドライン環境での効率的なネットワーク監視と問題診断が可能になります。