netstatコマンドでネットワーク状態を把握する方法

先生

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コマンドを駆使して、ネットワークの理解を深めていきましょう。