ネットワーク

ネットワーク

netstat(1)――TCP通信の接続状況を調べる

2010/03/23
出典:日経NETWORK 2009年6月号  pp.75-77
(記事は執筆時の情報に基づいており、現在では異なる場合があります)

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

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

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

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

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

 C:\>netstat

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

図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コマンドの実行結果に出てくる主な接続状態
待ち受け状態も調べられる
次ページ以降はITpro会員(無料)の方のみお読みいただけます。
会員の方は、 ログインしてご覧ください。
まだ会員でない方は、ぜひ登録(無料)していただき、ITproの豊富なコンテンツをご覧ください。

この記事に対するfacebookコメント

nikkeibpITpro

▲ ページトップ

Twitterもチェック

  • 17821TWEETS
  • 30030フォロー
  • 29360フォロワー

注目の書籍

好評発売中!

絶対わかる!トラブル事例で学ぶネットワークに基礎 WAN/クラウド編

トラブル事例を読む→原因・解決策を理解→トラブルの原因からネットワークの基礎を把握