ばくのエンジニア日誌

技術的なメモなどを書いていきます。

netstatコマンドの使い方

xamppコントロールパネルでApacheが起動しなくて、色々と試行錯誤した時に使ったnetstatコマンドについてまとめました。

netstatコマンド概要

Windowsコマンドプロンプトnetstatを打つと、プロトコルの統計と現在の TCP/IP ネットワーク接続を表示してくれます。
OSのバージョンによって使えるオプションがあったりなかったりするので、netstat -?で確認します。

netstat -?
プロトコルの統計と現在の TCP/IP ネットワーク接続を表示します。

NETSTAT [-a] [-b] [-e] [-n] [-o] [-p proto] [-r] [-s] [-v] [interval]

 -a            すべての接続とリッスン ポートを表示します。
 -b            それぞれの接続またはリッスン ポートの作成に使われた実行可能ファイルを表示します。場合により、よく知られた実行可能ファイルが複数の独立したコンポーネントをホストすることもあり、この場合、接続またはリッスン ポートの作成に使われたコンポーネント群が表示されます。この場合、実行可能ファイル名は下に [] で表示され、上には TCP/IP に到達するまで順に呼び出したコンポーネントが表示されます。このオプションには時間がかかり、十分なアクセス許可がないとエラーが発生することに注意してください。
 -e            イーサネットの統計を表示します。これは、-s オプションと併用できます。
 -n            アドレスとポート番号を数値形式で表示します。
 -o            各接続に関連付けられたそれらを所有するプロセス ID を表示します

 -p proto      proto で指定されたプロトコルの接続を表示します。; proto は次のいずれかです: TCP、 UDP、TCPv6、または UDPv6。プロトコルごとの統計を表示するため、-s オプションと併用する場合、proto は次のいずれかです: IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP またはUDPv6。
 -r            ルーティング テーブルを表示します。
 -s            プロトコルごとの統計を表示します。既定では、IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP および UDPv6 の統計が表示されます。 -p オプションを使って、既定のプロトコルのサブセットを指定することもできます。
 -v            -b と併用した場合、このオプションでは、すべての実行可能ファイルの接続またはリッスン ポートの作成に使われたコンポーネント群が表示されます。

 interval      各表示で interval 秒間一時停止しながら、選択した統計を再表示します。統計の再表示を停止するには、CTRL+C を押してください。interval が省略された場合、現在の構成情報を一度だけ表示します。

コマンド結果の見方

オプションなしの場合、以下の順に表示されました。

Proto Local Address Foreign Address State
プロトコルの種類(TCP,UDP) ローカル側のコンピュータ名(or IPAddress):サービス名(or ポート番号) 通信相手のコンピュータ名(or IPAddress):サービス名(or ポート番号) 通信状態(TCPのみ)

サービス名がどのポート番号に対応しているかは、以下のサイトが参考になります。 TCP/UDPポート番号一覧

お気に入りのオプション

個人的にお気に入りのオプションを紹介します。

-a

すべての接続とリッスン

-n

コンピュータ名でなくIPAddressで、サービス名でなくポート番号で表示。見た目が整うのでこちらが好き。

-o

プロセスIDを表示。killしたい時に使えます。

-b

通信を行っている実行ファイル名(もしくはサービス)が表示されます。

-v

その通信に関連している(呼び出している)コンポーネントのファイル名(DLLファイル名など)も表示されます。

参考サイト

netstatコマンドを使いこなす
netstatでリッスンしているプロセスを特定する