[Linux] netstatコマンドの使い方 – ネットワーク接続状況の確認

netstatコマンドは、Linuxでネットワーク接続状況を確認するためのツールです。

主に、現在の接続、ルーティングテーブル、インターフェースの統計情報、マスカレード接続などを表示します。

基本的な使い方として、netstatを実行すると、すべての接続が表示されます。

-tオプションでTCP接続、-uでUDP接続、-lでリッスン中のポート、-pでプロセスIDを確認できます。

-nオプションを使うと、ホスト名の解決をせずにIPアドレスを表示します。

この記事でわかること
  • netstatコマンドの基本的な使い方
  • 詳細なオプションの活用法
  • ネットワーク接続の応用例
  • 代替ツールとの比較
  • トラブルシューティングの手法

目次から探す

netstatコマンドとは

netstatコマンドは、LinuxやUnix系のオペレーティングシステムで使用されるネットワーク関連の情報を表示するためのコマンドです。

このコマンドを使用することで、現在のネットワーク接続状況、リッスン中のポート、ルーティングテーブル、インターフェースの統計情報などを確認することができます。

ネットワークのトラブルシューティングやセキュリティの監視に役立つため、システム管理者やネットワークエンジニアにとって非常に重要なツールです。

netstatは、TCP/IPプロトコルスタックに関する情報を提供し、接続の状態やデータの送受信状況を把握するのに役立ちます。

これにより、ネットワークのパフォーマンスを最適化したり、不正な接続を検出したりすることが可能になります。

netstatコマンドの基本的な使い方

現在のネットワーク接続を確認する

netstatコマンドを使用することで、現在のネットワーク接続状況を確認できます。

基本的なコマンドは以下の通りです。

netstat

このコマンドを実行すると、TCPおよびUDPの接続状況が表示され、各接続の状態やローカルアドレス、リモートアドレスなどの情報が得られます。

TCP接続を表示するオプション -t

TCP接続のみを表示したい場合は、-tオプションを使用します。

以下のコマンドでTCP接続を確認できます。

netstat -t

このコマンドを実行すると、TCP接続のリストが表示され、各接続の状態(ESTABLISHED、LISTENINGなど)も確認できます。

UDP接続を表示するオプション -u

UDP接続を表示するには、-uオプションを使用します。

コマンドは以下の通りです。

netstat -u

このコマンドを実行すると、現在のUDP接続の情報が表示されます。

UDPはコネクションレスプロトコルであるため、接続状態は表示されません。

リッスン中のポートを確認するオプション -l

リッスン中のポートを確認するには、-lオプションを使用します。

以下のコマンドでリッスン中のポートを表示できます。

netstat -l

このコマンドを実行すると、現在リッスンしているポートのリストが表示され、どのサービスが待機しているかを確認できます。

プロセスIDを表示するオプション -p

接続に関連するプロセスID(PID)を表示するには、-pオプションを使用します。

コマンドは以下の通りです。

netstat -p

このコマンドを実行すると、各接続に関連するプロセスのIDと名前が表示され、どのアプリケーションがネットワーク接続を使用しているかを特定できます。

IPアドレスを表示するオプション -n

IPアドレスを数値形式で表示するには、-nオプションを使用します。

以下のコマンドで実行できます。

netstat -n

このコマンドを実行すると、ホスト名ではなくIPアドレスが表示され、接続先の情報をより迅速に確認できます。

netstatコマンドの詳細なオプション

接続状態を表示するオプション -a

-aオプションを使用すると、すべての接続状態を表示できます。

リッスン中のポートと確立された接続の両方が表示されるため、ネットワークの全体像を把握するのに役立ちます。

コマンドは以下の通りです。

netstat -a

このコマンドを実行すると、TCPおよびUDPのすべての接続状態がリストアップされます。

ルーティングテーブルを表示するオプション -r

ルーティングテーブルを確認するには、-rオプションを使用します。

このオプションを指定することで、ネットワークパケットがどのようにルーティングされるかを確認できます。

コマンドは以下の通りです。

netstat -r

このコマンドを実行すると、ルーティングテーブルの情報が表示され、各ネットワークのゲートウェイやインターフェースが確認できます。

インターフェースの統計情報を表示するオプション -i

ネットワークインターフェースの統計情報を表示するには、-iオプションを使用します。

以下のコマンドで実行できます。

netstat -i

このコマンドを実行すると、各インターフェースの送受信パケット数やエラー数などの統計情報が表示され、ネットワークのパフォーマンスを評価するのに役立ちます。

マスカレード接続を表示するオプション -M

マスカレード接続を表示するには、-Mオプションを使用します。

このオプションは、IPマスカレードを使用している場合に、どの接続がマスカレードされているかを確認するのに役立ちます。

コマンドは以下の通りです。

netstat -M

このコマンドを実行すると、マスカレード接続の情報が表示され、ネットワークのセキュリティやトラフィックの管理に役立ちます。

統計情報を表示するオプション -s

ネットワークプロトコルの統計情報を表示するには、-sオプションを使用します。

このオプションを指定することで、各プロトコルの送受信パケット数やエラー数などの詳細な統計が得られます。

コマンドは以下の通りです。

netstat -s

このコマンドを実行すると、TCP、UDP、ICMPなどの各プロトコルに関する統計情報が表示され、ネットワークの状態を把握するのに役立ちます。

netstatコマンドの応用例

特定のポート番号でフィルタリングする

特定のポート番号に関連する接続を確認するには、grepコマンドと組み合わせて使用します。

例えば、ポート80(HTTP)に関連する接続を表示するには、以下のコマンドを実行します。

netstat -an | grep :80

このコマンドを実行すると、ポート80での接続状況が表示され、どのIPアドレスが接続しているかを確認できます。

特定のプロトコルでフィルタリングする

特定のプロトコル(TCPまたはUDP)でフィルタリングする場合も、grepを使用します。

例えば、UDP接続のみを表示するには、以下のコマンドを実行します。

netstat -anu

このコマンドを実行すると、現在のUDP接続のリストが表示され、特定のプロトコルに関連する情報を簡単に確認できます。

リモートホストとの接続を確認する

特定のリモートホストとの接続を確認するには、grepを使用してIPアドレスやホスト名でフィルタリングします。

例えば、リモートホストのIPアドレスが192.168.1.10の場合、以下のコマンドを実行します。

netstat -an | grep 192.168.1.10

このコマンドを実行すると、指定したリモートホストとの接続状況が表示され、接続の状態を確認できます。

ネットワークトラブルシューティングに活用する

netstatコマンドは、ネットワークトラブルシューティングに非常に役立ちます。

例えば、接続が確立されているか、リッスン中のポートが正しいかを確認することで、問題の特定が可能です。

以下のコマンドで、すべての接続状態を確認できます。

netstat -a

このコマンドを実行すると、すべての接続とその状態が表示され、問題の原因を特定する手助けになります。

スクリプトでnetstatを自動化する

netstatコマンドをスクリプトに組み込むことで、定期的にネットワーク状況を監視することができます。

以下は、netstatの出力をログファイルに保存する簡単なスクリプトの例です。

#!/bin/bash
# netstat_log.sh
date >> netstat.log
netstat -an >> netstat.log
echo "------------------------" >> netstat.log

このスクリプトを実行すると、現在のネットワーク接続状況がnetstat.logファイルに追記され、定期的な監視が可能になります。

スケジュール管理ツール(cronなど)を使用して、定期的に実行することもできます。

netstatコマンドの代替ツール

ssコマンドとの比較

ssコマンドは、netstatの代替として広く使用されているツールで、より高速かつ詳細な情報を提供します。

ssは、ソケットの状態を表示するためのコマンドで、TCP、UDP、UNIXドメインソケットなどの情報を確認できます。

以下は、ssコマンドの基本的な使用例です。

ss -tuln

このコマンドを実行すると、リッスン中のTCPおよびUDPソケットが表示されます。

ssは、netstatよりも少ないリソースで動作し、より多くのオプションを提供するため、パフォーマンスの観点からも優れています。

ipコマンドとの比較

ipコマンドは、ネットワークインターフェースやルーティングテーブルの管理に特化したツールです。

netstatが接続状況を表示するのに対し、ipコマンドはネットワーク設定の変更や確認を行うために使用されます。

例えば、現在のルーティングテーブルを表示するには、以下のコマンドを実行します。

ip route show

ipコマンドは、ネットワークの設定や管理を行うための強力なツールであり、netstatの機能を補完する役割を果たします。

ifconfigコマンドとの比較

ifconfigコマンドは、ネットワークインターフェースの設定や状態を確認するための古いツールです。

netstatが接続状況を表示するのに対し、ifconfigはインターフェースのIPアドレスやMACアドレス、送受信パケット数などの情報を提供します。

以下は、ifconfigコマンドの使用例です。

ifconfig

このコマンドを実行すると、すべてのネットワークインターフェースの情報が表示されます。

ただし、ifconfigは新しいLinuxディストリビューションでは非推奨とされており、ipコマンドに置き換えられることが推奨されています。

netstatifconfigは異なる目的で使用されるため、状況に応じて使い分けることが重要です。

よくある質問

netstatコマンドが見つからない場合はどうすればいいですか?

netstatコマンドが見つからない場合、まずはインストールされているか確認します。

多くのLinuxディストリビューションでは、net-toolsパッケージに含まれています。

以下のコマンドでインストールできます。

  • Debian系(Ubuntuなど):
sudo apt-get install net-tools
  • Red Hat系(CentOSなど):
sudo yum install net-tools

インストール後、再度netstatコマンドを実行してみてください。

netstatコマンドで特定のポートが表示されないのはなぜですか?

netstatコマンドで特定のポートが表示されない場合、以下の理由が考えられます。

  • ポートがリッスンしていない: サービスが起動していないか、リッスンしていない可能性があります。
  • フィルタリング: grepなどでフィルタリングしている場合、正しいポート番号を指定しているか確認してください。
  • 権限の問題: 一部の情報は管理者権限が必要な場合があります。

sudoを使ってコマンドを実行してみてください。

netstatコマンドの出力結果を保存する方法は?

netstatコマンドの出力結果をファイルに保存するには、リダイレクトを使用します。

以下のコマンドで、出力をoutput.txtというファイルに保存できます。

netstat -an > output.txt

このコマンドを実行すると、netstatの出力がoutput.txtファイルに書き込まれます。

追加で出力を追記したい場合は、>>を使用します。

netstat -an >> output.txt

これにより、既存のファイルに新しい出力が追加されます。

まとめ

この記事では、netstatコマンドの基本的な使い方や詳細なオプション、応用例、代替ツールについて詳しく解説しました。

これにより、ネットワーク接続状況の確認やトラブルシューティングに役立つ情報を得ることができるでしょう。

今後は、実際にコマンドを使ってネットワークの状態を確認し、必要に応じて他のツールと併用して、より効果的なネットワーク管理を行ってみてください。

  • URLをコピーしました!
目次から探す