
netstatコマンドでネットワークの隅々まで丸裸に!ネットワーク管理者は必見の知識。
netstatコマンドとは?ネットワーク管理の基礎
netstatコマンドは、ネットワークの状態を監視・分析するための強力なツールです。ネットワーク接続、ルーティングテーブル、ネットワークインターフェースの状態など、様々な情報を表示できます。特にサーバー管理やネットワークトラブルシューティングにおいて、netstatは欠かせない存在です。
この記事では、netstatコマンドの基本的な使い方から、より実践的な活用方法までを解説します。ネットワークエンジニアだけでなく、開発者やシステム管理者の方々も、netstatを使いこなせるようになることを目指します。
ただし、注意点として、netstatコマンドは非推奨となり、ssコマンドに置き換わりつつあります。ssコマンドについても簡単に触れ、より新しいツールへの移行も視野に入れた解説を行います。
netstatコマンドの基本的な使い方
netstatコマンドは、ターミナルから実行します。基本的なオプションと、その出力結果について見ていきましょう。
最も基本的な使い方は、オプションなしでnetstat
と入力することです。これにより、アクティブなネットワーク接続の一覧が表示されます。
netstat
-a
オプションを使用すると、LISTEN状態のソケットや、確立された接続だけでなく、すべてのソケットを表示します。
netstat -a
-n
オプションは、ホスト名やサービス名を名前解決せずに、IPアドレスやポート番号をそのまま表示します。名前解決のオーバーヘッドを避け、より高速に結果を得たい場合に便利です。
netstat -an
-t
オプションは、TCP接続のみを表示します。
netstat -at
-u
オプションは、UDP接続のみを表示します。
netstat -au
-l
オプションは、LISTEN状態のソケットのみを表示します。どのポートでどのサービスが待ち受けているかを確認する際に役立ちます。
netstat -l
-p
オプションは、各接続に関連するプロセスID(PID)とプログラム名を表示します。root権限が必要な場合があります。どのプロセスがどのネットワーク接続を使用しているかを特定するのに役立ちます。
sudo netstat -p
-r
オプションは、ルーティングテーブルを表示します。
netstat -r
-i
オプションは、ネットワークインターフェースの統計情報を表示します。
netstat -i
-s
オプションは、プロトコルごとの統計情報を表示します。TCP、UDP、ICMPなどのプロトコルのパケット数やエラー数を確認できます。
netstat -s
netstatコマンドの実践的な活用例
ここでは、netstatコマンドをより実践的な場面で活用する方法を見ていきましょう。
特定のポートを使用しているプロセスを特定する: ある特定のポートが使用されているかどうかを確認し、どのプロセスがそれを使用しているかを特定できます。
sudo netstat -nap | grep :80
この例では、80番ポートを使用しているプロセスを特定しています。ポート番号は適宜変更してください。
特定のIPアドレスからの接続を確認する: 特定のIPアドレスからの接続状況を監視できます。
netstat -an | grep 192.168.1.100
この例では、192.168.1.100からの接続を表示します。IPアドレスは適宜変更してください。
DoS攻撃の兆候を検出する: 大量のSYN_RECEIVED状態の接続がある場合、DoS攻撃を受けている可能性があります。
netstat -an | grep SYN_RECEIVED | wc -l
このコマンドは、SYN_RECEIVED状態の接続数をカウントします。異常に多い場合は注意が必要です。
ssコマンドへの移行
netstatコマンドは非推奨となり、より新しいss
コマンドが推奨されています。ss
コマンドは、netstatよりも高速で、より多くの情報を提供できます。
基本的な使い方はnetstatと似ていますが、オプションの記述方法などが異なります。
例えば、アクティブなTCP接続を表示するには、以下のコマンドを使用します。
ss -t -a
すべてのリスニングソケットを表示するには、以下のコマンドを使用します。
ss -l
ss
コマンドの詳細については、man ss
でマニュアルページを参照してください。
参考リンク
まとめ
netstatコマンドは、ネットワークの状態を把握するための強力なツールです。基本的な使い方から実践的な活用例までを理解することで、ネットワーク管理やトラブルシューティングに役立てることができます。
ただし、netstatは非推奨となり、ssコマンドへの移行が進んでいます。ssコマンドについても学習し、より新しいツールを使いこなせるようにしましょう。
ネットワークの知識は、現代のITエンジニアにとって不可欠なスキルです。netstatやssコマンドを駆使して、ネットワークの理解を深めていきましょう。