はじめに
この実験では、Linux においてコマンドラインツール netstat を使用したネットワーク監視に焦点を当てます。ネットワーク監視は、システム管理者が自身のシステム上の接続、サービス、およびトラフィックパターンを理解するために不可欠です。
この実験を通じて、アクティブなネットワーク接続、リスニング中のサービス、およびネットワークインターフェイスの統計情報を表示するために netstat ユーティリティを使用する方法を学びます。これらのスキルは、ネットワーク問題のトラブルシューティング、システムパフォーマンスの監視、およびネットワークセキュリティの確保において基本的なものです。
この実験の終了時には、Linux システム上のネットワーク活動に関する洞察を得るために netstat を効果的に使用できるようになります。これは、あらゆるシステム管理者や IT 専門家にとって価値のあるスキルです。
netstat を使ったネットワーク接続の理解
netstat コマンドは、ネットワーク接続、ルーティングテーブル、インターフェイス統計などを表示する強力なネットワークユーティリティです。このステップでは、アクティブなネットワーク接続を表示するために netstat を使用する方法を学びます。
まず、作業するプロジェクトディレクトリに移動しましょう。
cd /home/labex/project
netstat とは何か?
netstat(ネットワーク統計)コマンドは、ネットワーク接続、ルーティングテーブル、インターフェイス統計など、様々なネットワーク関連の情報を表示します。これは、システムのネットワーク活動を理解するための貴重なツールです。
アクティブな接続の表示
特定のオプションを指定して netstat コマンドを実行し、アクティブな TCP 接続を表示しましょう。
netstat -nat > connections.txt
このコマンドでは:
-nは、アドレスとポート番号を数値形式で表示し、ホスト名やサービス名に解決しません。-aは、すべてのソケット(リスニング中と非リスニング中の両方)を表示します。-tは、TCP 接続のみを表示します。> connections.txtは、出力をconnections.txtという名前のファイルにリダイレクトします。
では、作成したファイルの内容を表示しましょう。
cat connections.txt
出力は次のようになるはずです。
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN
tcp6 0 0 :::22 :::* LISTEN
出力の理解
Proto:使用されているプロトコル(この場合は TCP)Recv-Q:このソケットに接続されたユーザープログラムによってコピーされていないバイト数Send-Q:リモートホストによって確認されていないバイト数Local Address:ソケットのローカル側のアドレスとポート番号Foreign Address:ソケットのリモート側のアドレスとポート番号State:ソケットの状態(LISTEN、ESTABLISHED など)
LISTEN 状態は、サービスが実行中で、特定のポートで着信接続を待機していることを示します。
リスニングサービスの監視
このステップでは、システム上で接続を待機しているサービスを特定する方法を学びます。この情報は、セキュリティ監査やネットワーク関連の問題のトラブルシューティングにおいて重要です。
リスニング中のサービスの特定
netstat コマンドを使用して、LISTEN 状態のサービスを具体的に探しましょう。
netstat -natu | grep LISTEN > listening_services.txt
このコマンドでは:
-nは数値形式のアドレスを表示します。-aはすべてのソケットを表示します。-tは TCP 接続を含みます。-uは UDP 接続を含みます。| grep LISTENは出力をフィルタリングして、"LISTEN" を含む行のみを表示します。> listening_services.txtは出力をファイルに保存します。
では、ファイルの内容を確認しましょう。
cat listening_services.txt
次のような出力が表示されるはずです。
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN
tcp6 0 0 :::22 :::* LISTEN
リスニング中のサービスの理解
出力の各行は、現在接続を受け付けているサービスを表しています。
0.0.0.0でリスニングしているサービスは、任意のネットワークインターフェイスからの接続を受け付けます。127.0.0.1でリスニングしているサービスは、ローカルマシンからの接続のみを受け付けます。:::でリスニングしているサービスは、任意のネットワークインターフェイスからの接続を受け付ける IPv6 アドレスです。
ポート番号(SSH の場合は 22、CUPS 印刷サービスの場合は 631 など)は、どのサービスがリスニングしているかを識別します。例えば:
- ポート 22: SSH サービス
- ポート 80: HTTP(ウェブ)サービス
- ポート 443: HTTPS サービス
- ポート 631: CUPS 印刷サービス
この情報は、システム上で公開されているサービスを理解するのに役立ち、セキュリティ評価やトラブルシューティングにおいて価値があります。
ネットワークインターフェイス統計情報の分析
このステップでは、ネットワークインターフェイスの統計情報を表示する方法を学びます。これらの統計情報は、ネットワークインターフェイスのパフォーマンスと使用状況に関する貴重な情報を提供します。
インターフェイスの統計情報の表示
netstat を使用して、すべてのネットワークインターフェイスの統計情報を表示しましょう。
netstat -i > interface_stats.txt
このコマンドでは:
-iはすべてのネットワークインターフェイスのテーブルを表示します。> interface_stats.txtは出力をファイルに保存します。
では、ファイルの内容を確認しましょう。
cat interface_stats.txt
次のような出力が表示されるはずです。
Kernel Interface table
Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0 1500 123456 0 0 0 98765 0 0 0 BMRU
lo 65536 789 0 0 0 789 0 0 0 LRU
ネットワークインターフェイスの統計情報の理解
出力は、各ネットワークインターフェイスに関する重要な統計情報を提供します。
Iface:ネットワークインターフェイスの名前eth0:通常は最初の Ethernet インターフェイスlo:ローカル接続に使用されるループバックインターフェイス
MTU:最大転送単位(Maximum Transmission Unit) - 送信できる最大のパケットサイズ- 標準的な Ethernet では通常 1500 バイトが使用されます。
- ループバックインターフェイスは通常、より大きな MTU(65536)を持っています。
RX-OK:エラーなく受信されたパケットの数RX-ERR:エラーがあった受信パケットの数RX-DRP:ドロップされた受信パケットの数RX-OVR:受信パケットのオーバーランの数TX-OK:エラーなく送信されたパケットの数TX-ERR:エラーがあった送信パケットの数TX-DRP:ドロップされた送信パケットの数TX-OVR:送信パケットのオーバーランの数Flg:インターフェイスの状態を示すフラグB:ブロードキャストアドレスが設定されているM:マルチキャストが有効になっているR:インターフェイスが稼働中U:インターフェイスがアップ状態
これらの統計情報は、ネットワークのパフォーマンスを監視し、パケット損失や送信エラーなどの潜在的な問題を特定するのに役立ちます。
追加のネットワーク統計情報コマンド
ネットワーク統計情報をより包括的に見るには、次のコマンドも使用できます。
netstat -s | head -20 > protocol_stats.txt
このコマンドは、TCP、UDP、IP、ICMP などのプロトコルの統計情報を表示します。読みやすさのために head -20 を使用して、出力を最初の 20 行に制限しています。
では、このファイルを表示しましょう。
cat protocol_stats.txt
これにより、各プロトコルのパフォーマンスに関する詳細な統計情報が提供され、プロトコルレベルでの潜在的なネットワーク問題を特定するのに役立ちます。
まとめ
この実験では、Linux システム上のネットワーク活動のさまざまな側面を監視するために netstat コマンドを使用する方法を学びました。習得した主要なスキルは以下の通りです。
アクティブなネットワーク接続を表示して、システム上で確立されている接続を理解する。
リスニング中のサービスを特定して、どのポートが開いており、潜在的にネットワークに公開されているかを判断する。
ネットワークインターフェイスの統計情報を分析して、ネットワークインターフェイスのパフォーマンスと健全性を監視する。
これらのスキルは、ネットワーク関連の問題を理解し、トラブルシューティングする必要のあるシステム管理者、ネットワークエンジニア、セキュリティ専門家にとって不可欠です。netstat コマンドは、システムのネットワーク活動に関する貴重な洞察を提供し、最適なパフォーマンスとセキュリティを維持するのに役立ちます。
多くの最新の Linux ディストリビューションでは netstat はレガシーなコマンドとされており、ss や ip などのツールに置き換えられつつありますが、netstat を理解することは、これらすべてのツールに共通するネットワーク監視の概念の堅固な基礎を築きます。



