netstatコマンド【network statistics】
概要
オプションを指定せずに実行すると、現在確立されているTCPコネクションの一覧が表示される。各接続について、接続先のホスト名(FQDN)またはIPアドレス、使用中のポート番号、自ホスト側のアドレスとポート番号、TCPの接続状態(ESTABLISHEDやTIME_WAITなど)を確認できる。
「-a」オプションでリッスン状態(外部からの接続を待ち受けている状態)のポートもあわせて表示される。「-e」はネットワークインターフェースごとの送受信バイト数やエラー件数などの統計情報、「-s」はTCP・UDP・IP・ICMPといったプロトコルごとの累積統計情報を表示する。「-r」ではルーティングテーブルを確認でき、パケットがどの経路で転送されるかを調べられる。「-n」を指定するとホスト名の逆引きを省略してIPアドレスのまま表示するため、DNSへの問い合わせが発生せず表示が速くなる。
利用できるオプションや表示形式はOSによって異なる部分がある。Windowsでは「-p」オプションで表示対象のプロトコルを絞り込める。UNIX系OSでは同オプションで各接続を使用しているプロセスのPIDとプロセス名を表示でき、どのアプリケーションが特定のポートを使用しているかを特定できる(多くの場合root権限が必要)。IPv4、IPv6の両方に対応しており、環境によっていずれか一方のみに絞った表示も可能である。
netstatコマンドは不審な外部接続の検知、使用中ポートの把握、ローカルで起動したサーバアプリケーションの動作確認など、様々な用途で利用されている。近年のLinuxディストリビューションでは、より高速で詳細な情報を取得できるssコマンドへの移行が進んでおり、netstatコマンドは非推奨(deprecated)扱いとなっている場合がある。Windows環境をはじめ多くのシステムでは依然として現役であり、ネットワーク接続状況を手早く確認するための基本的なコマンドとして定着している。
