7.9. netstatでネットワーク接続状態の確認をする -netstatコマンド-


7.9. netstatでネットワーク接続状態の確認をする -netstatコマンド-

【コマンド説明】
ホストのネットワーク接続状態やソケット/インターフェイスごとのネットワーク統計などを確認するためのコマンドです。実行例は下記の通りです。

# netstat

Active Internet connections (w/o servers)

(1)      (2)      (3)               (4)                                (5)                        (6)
Proto  Recv-Q Send-Q    Local Address               Foreign Address             State

tcp         0      0 192.168.2.81:ssh            192.168.2.122:56780         ESTABLISHED

tcp        0      0 192.168.2.81:ssh            192.168.2.118:51874         ESTABLISHED

Active UNIX domain sockets (w/o servers)

(7)     (8)     (9)        (10)        (11)             (12)    (13)
Proto RefCnt Flags       Type       State         I-Node   Path

unix  10     [ ]         DGRAM                    9663038 /dev/log

「Active Internet connections」以下は、ネットワークの接続状態(ソケットの状態)を表しています。ソケットとはIPアドレスとポート番号の組を指定したもののことです。

「Active UNIX domain sockets」以下は、ローカルマシン上のプロセスが利用しているソケット(UNIXドメインソケット)の状態を表しています。外部とのネットワークの状態を確認したい場合は「Active Internet connections」(1)〜(7)を参照して下さい。各項目の意味は以下の通りです。

  1. 「Proto」       プロトコルがTCP、UDPどちらであるか
  2. 「Recv-Q」       ソケットに接続されたユーザーに送られなかったデータのバイト数
  3. 「Send-Q」      リモート・ホストが拒否したデータのバイト数
  4. 「Local Address」   ローカル側の「ローカル側のホスト名:サービス名(ポート番号)」
  5. 「Foreign Address」 「リモート側のホスト名:サービス名(ポート名)」
  6. 「State」 ソケットの状態を表します。「ESTABLISHED」はコネクションが確立されている状態、「CLOSE_WAIT」は終了待ちの状態であることを示します。ポート番号がウェルノウンポートの場合はサービス名で表示されます。
  7. 「Proto」          プロトコルがTCP、UDPどちらであるか
  8. 「RefCnt」        このソケットに接続されているプロセス数
  9. 「Flags」         現在のフラグ。
  10. 「ACC」はソケットが接続されておらず、プログラムが接続要求を待っていることを表します。
  11. 「Type」        ソケットのアクセス・タイプ。
  12. 「State」       ソケットの状態。「Free」は割り当てがないソケット、
  13. 「LISTENING」は接続要求待ちのソケット、「CONNECTING」は接続中のソケット、「CONNECTED」は接続されているソケット、「DISCONNECTING」は切断中のソケット、「UNKNOWN」は不明なソケット、なにも書かれていない場合は他のソケットに接続されていないソケット。
  14. 「I-Node」        inode番号
  15. 「Path」          ソケットを利用しているプロセスのパス

【オプション説明】
netstatコマンドには下記の様なオプションがあります。

-t TCPに関する情報を表示する
-u UDPに関する情報の表示する
-a 状態に関わらず全てのソケットに関する情報を表示する
-l リスニング状態のソケットに関する情報を表示する
-i LANインタフェースに関する情報を表示する
-r ルーティング・テーブルに関する情報を表示する

【動画説明】
オプションなしでnetstatコマンドを実行します。表示が長くなるためパイプでlessコマンドを組み合わせます。

# netstat | less

次に "-a"オプションをつけて全てのソケットに関する情報を表示してみましょう。

# netstat –a | less

-rオプションをつけてルーティング情報を表示してみましょう。

# netstat –r

【問題】
1. netstatコマンドを使用してtcpに関する情報のみを表示してみましょう。
2. netstatコマンドを使用してルーティング情報を確認してみましょう。

資料をダウンロード