Netstat
パラメータ
このコマンドのパラメータには、スラッシュ (/ ) ではなくハイフン (-) を前置する。
-a : 全てのアクティブなTCPコネクションと、そのマシンがlistenしているTCPポートおよびUDP ポートを表示する。
-b : 各コネクションやlistenポートに対応したプログラム名を表示する(Windows XPと2003 Server以降のみ)。
-e : イーサネット の統計情報を表示する(受信した総バイト 数やパケット数など)。-s と組み合わせて使うことができる。
-f : 外部のアドレスについて完全修飾ドメイン名 <FQDN > を表示する(Windowsでは使えない)。
-i : ネットワークインタフェースとそれらの統計情報を表示する(Windowsでは使えない)。
-n : アクティブなTCPコネクションを表示するが、アドレスやポート番号は数値的に表示され、名前への変換は行わない。
-o : アクティブなTCPコネクションと対応するプロセスID (PID) を表示する。Windowsタスクマネージャを併用するとPIDからどのアプリケーションかがわかる。-a, -n, および-p と共に指定できる。Windows XPと2003 Server以降で利用可能(Windows 2000ではホットフィックス がある)。
-p Windows: P rotocol : Protocolで指定したプロトコルのコネクションを表示する。Protocolに指定できるのはtcp, udp, tcpv6, udpv6 のいずれかである。-s と組み合わせてプロトコルの統計情報を表示する場合はtcp, udp, icmp, ip, tcpv6, udpv6, icmpv6, ipv6 のいずれかを指定できる。
-p Linux: P rocess : ソケット ごとのプロセスの対応を表示する(Windowsの-bに相当)。root権限が必要。
-P Solaris: P rotocol : Protocolで指定したプロトコルのコネクションを表示する。Protocolにはip, ipv6, icmp, icmpv6, igmp, udp, tcp, rawip が指定できる。
-r : ルーティングテーブル の内容を表示する。Windowsでのroute print コマンドに相当。
-s : プロトコル毎の統計情報を表示する。デフォルトでは、TCP 、UDP 、ICMP 、IP の統計情報を表示する。Windows XP以降でIPv6をインストールしている場合、TCP over IPv6 、UDP over IPv6、ICMPv6 、IPv6についての統計情報も表示する。-p を併用すると、指定したプロトコルの情報を表示できる。
-v : -b と組み合わせると、コネクション作成やlistenポートに関わるコンポーネントを羅列する。
Interval : 指定された情報をInternal秒ごとに表示する。CTRL+Cで表示が停止する。これを省略すると1回だけ表示する。
/? : ヘルプ情報を表示する(Windowsのみ)。
netstatで得られる情報
Proto(プロトコル) - プロトコル名(TCP またはUDP )
Local Address(ローカルアドレス) - ローカルコンピュータで使われているIP アドレスとポート番号。-n パラメータを指定しない場合、対応する名前が表示される。
Foreign Address(外部アドレス) - ソケットが接続されているリモートコンピュータのIP アドレスとポート番号。-n パラメータを指定しない場合、対応する名前が表示される。コネクションが確立していない場合、ポート番号はアスタリスク (*) で表示される。
State(状態) - TCP コネクションの状態を表示。とりうる状態はCLOSE_WAIT, CLOSED, ESTABLISHED, FIN_WAIT_1, FIN_WAIT_2, LAST_ACK, LISTEN, SYN_RECEIVED, SYN_SEND, TIME_WAITである。TCPコネクションの状態について詳しくはRFC 793 を参照。
例
TCPまたはUDPプロトコルの統計情報を表示する場合、次のようなコマンド行となる。
netstat -sp tcp
netstat -sp udp
アクティブなTCPコネクションと対応するプロセスIDを5秒間隔で表示する場合、次のようなコマンド行となる(Windows XP、2003、2000(ホットフィックス)以降のみ)。
netstat -o 5
macOS では次の通り。
netstat -w 5
アクティブなTCPコネクションと対応するプロセスIDを数値として表示する場合、次のようなコマンド行になる(Windows XP、2003、2000(ホットフィックス)以降)。
netstat -no
特定のプロセスIDのプロセスがオープンした全ポートを表示する場合は、次の通り。
netstat -ao | find "pid"
注意
一部のバージョンでは、printf出力に明確なフィールド区切り文字 が指定されていないため、フィールドが重なってしまい、データが読み取れなくなる場合がある。
プラットフォーム固有の注意点
Linux では、netstatでは上述のprintf問題で表示が壊れることがあるため、/proc/net/dev からデータを得る場合がある。
Windows では、netstatはIP Helper API またはIPHLPAPI.DLLのGetTcpTable およびGetUdpTable という関数を呼び出して情報を収集している。これらで得られる情報は、ローカルおよびリモートのIPアドレス とポート番号、TCP状態コードである。また、TCP /IP がインストールされていない場合は使えない。
Mac OS X v10.5 では、 /Applications/UtilitiesフォルダにNetwork Utilityというユーティリティがあり、そのNetstat タブで同等の情報を表示できる。
外部リンク
ファイルとファイルシステム管理 プロセス管理 ユーザ管理/環境 テキスト処理 シェル ビルトイン通信 検索 マニュアル ソフトウェア開発 その他
ファイルシステム ファイル管理 ディスク管理 プロセス管理 レジストリ ユーザ環境 テキスト処理 スクリプト ネットワーク メンテナンス ブート管理 ソフトウェア開発 その他