今回取り上げるnetstat(ネットスタット)コマンドは,通信の接続状況を調べて表示するコマンドである。自分のパソコンがTCPでつながっている相手のIPアドレスやホスト名,開いているポート番号などがわかる。例えば新しいネットワーク・アプリケーションを使い始めたときに,自分のパソコンがどんな相手とどのように通信しているか確認したいときに使う。スパイウエアやウイルスが勝手にポートを開いたりしていないかどうかを確認するためにも使える。

 また,「サーバーにつながらない」,「反応が遅い」といったときに,netstatコマンドを実行すると,やりとりしたパケットの数がどれくらいか,エラーは起こっているのかといった統計情報がわかる。

 このように,netstatコマンドは,アプリケーションの設定確認や悪質なソフトウエアの検出,トラブル対策といったいろいろな場面で使える便利なコマンドである。

開いているポート番号などを表示

 まずは実際にnetstatコマンドを使ってみよう。いつものようにWindowsマシンのコマンド・プロンプトを起動すれば準備は完了。そこで以下のように「netstat」と打ち込み,Enter(エンター)キーを押すだけだ。

 C:\>netstat

 実行すると,「自分のパソコンが誰とどのような通信をしているか」という現在の接続状況として,プロトコルの種類やIPアドレス,ポート番号などが表示される(図1)。

図1●netstatコマンドの基本的な使い方
図1●netstatコマンドの基本的な使い方
[画像のクリックで拡大表示]

 それでは実行結果を順に詳しく見ていこう。先頭行の左端にあるProto(プロト)という項目は,接続しているプロトコルの種類を示す。TCPかUDPのどちらかになる。今回の実行結果ではすべてTCPと表示されている。これは,単に「netstat」と打ち込んだだけでは,コネクションを確立するTCPしか表示されないためである。

 Protoの右隣にあるLocal Address(ローカル アドレス)は,netstatコマンドを実行したパソコンのコンピュータ名(あるいはIPアドレス)とポート番号(あるいはサービス名)を示す項目である。「:(コロン)」で区切って表示する。Local Addressの右隣のForeign Address(フォーリン アドレス)は,通信相手の情報を示す項目である。やはり「:」で区切って,コンピュータ名(あるいはIPアドレス)とポート番号(あるいはサービス名)を表示する。

 今回の実行結果を見ると,下から2行目のForeign Addressに「www.tripodworks.co.jp:http」と表示されている。自分のパソコンからwww.tripodworks.co.jpというドメイン名のマシンへHTTPというサービスで通信していることがわかる。

 先頭行の右端にあるState(ステート)は現在の接続の状態を表す。例えばESTABLISHED(エスタブリッシュド)と表示されていれば,通信相手と接続中の状態にあるということを示す。Stateでよく表示される接続の状態は表1を見てほしい。

表1●netstatコマンドの実行結果に出てくる主な接続状態
表1●netstatコマンドの実行結果に出てくる主な接続状態