オプションを組み合わせて詳しく調査

 netstatコマンドは複数のオプション・パラメータを組み合わせることで,接続や待ち受けの状況をさらに詳しく調べることができる。

 例えば,オプション・パラメータの「-n」を使うと,実行結果の表示にコンピュータ名やサービス名を使わず,IPアドレスとポート番号で表示する。自分のパソコンで待ち受けしている状態をIPアドレスやポート番号で調べたいときには,-aオプションに-nオプションを組み合わせて,以下のように打ち込む。

 C:\>netstat -an

 実行結果が図4となる。本特集の第5回の図3のLocal AddressとForeign Addressでコンピュータ名やサービス名で表示されていたところが,図4ではすべてIPアドレスとポート番号で表示されていることがわかる。

図4●「-a」「-n」オプションの組み合わせでIPアドレスとポート番号を表示<br>-nオプションを組み合わせると,コンピュータ名やサービス名を使わずにIPアドレスやポート番号で実行結果を表示する。
図4●「-a」「-n」オプションの組み合わせでIPアドレスとポート番号を表示
-nオプションを組み合わせると,コンピュータ名やサービス名を使わずにIPアドレスやポート番号で実行結果を表示する。
[画像のクリックで拡大表示]

 例えば,接続先のマシンがドメイン名ではなくWindowsマシンのコンピュータ名で表示されたとしよう。これでは,社内ネットワークのどのセグメントに属しているのかがわからないことがある。このようなとき,-aオプションに-nオプションを組み合わせてnetstatコマンドを実行すれば,接続先のマシンのIPアドレスを表示するので,所属するセグメントがすぐにわかる。

 ちなみにサービス名とポート番号の対応付けは,Windowsのservicesファイルを参照することで行っている。

プロセス名やコンポーネント名を調べる

 netstatコマンドを実行して,見覚えのない相手と接続していたり,待ち受け状態のポートがあったりすると,ウイルスやスパイウエアが動いている可能性がある。こうしたときには,それぞれの接続にどのようなプロセスやコンポーネントが起動されているかをチェックするとよい。

 自分のパソコンで通信しているプロセスについて調べたいときには,オプション・パラメータの「-b」を使って,以下のように打ち込む。

 C:\>netstat -b

 実行すると,開いているポート番号とそのポートを使っているプロセス名が表示される(図5)。ここでは3140番ポートを使って,CoolMsgr.exeというプロセスが接続中であることがわかる。この-bオプションは,Windows XP SP2とWindows Server 2003 SP2で使える

図5●「-b」オプションでプロセス名を表示
図5●「-b」オプションでプロセス名を表示
[画像のクリックで拡大表示]

 さらにコンポーネントまで調べたいときには,「-v」という補助的に使うオプション・パラメータと組み合わせて以下のように打ち込む。

 C:\>netstat -bv

 実行するとプロセス名に加えて,そのプロセスで利用しているコンポーネント名も表示される(図6)。例えばCoolMsgr.exeのところではmswsock.dllなど四つのコンポーネントが使われていることがわかる。ただし,-bvオプションを付けたnetstatコマンドを実行して結果が表示されるまでには時間がかかる。

図6●「-b」「-v」オプションの組み合わせでプロセス名とコンポーネント名を表示
図6●「-b」「-v」オプションの組み合わせでプロセス名とコンポーネント名を表示
[画像のクリックで拡大表示]

 このほか,待ち受け状態にあるポートとそれを利用しているプロセスやコンポーネントを調べたいときには,「-b」,「-a」,「-n」の三つのオプションを組み合わせて,以下のように打ち込む。

 C:\>netstat -ban

 実行した結果の一部が図7である。ここではWindowsが各種サービスを起動するときに実行するsvchost.exeというプロセスが表示されている。

図7●「-b」「-a」「-n」オプションを組み合わせて実行した結果の一部
図7●「-b」「-a」「-n」オプションを組み合わせて実行した結果の一部
[画像のクリックで拡大表示]

 さらに各プロセスがどのようなサービスから起動されているのかまで調べるときには,コマンド・プロンプトで「tasklist /svc」と打ち込む。

 実行結果として,現在実行中のプロセス名とそのプロセス番号(PID)に加えて,サービス名が表示される(図8)。ここで不審なソフトが動いていないかどうかをチェックできる。

図8●tasklistコマンドの実行結果の一部
図8●tasklistコマンドの実行結果の一部
[画像のクリックで拡大表示]