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 Statetcp 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 Pathunix 10 [ ] DGRAM 9663038 /dev/log
「Active Internet connections」以下は、ネットワークの接続状態(ソケットの状態)を表しています。ソケットとはIPアドレスとポート番号の組を指定したもののことです。
「Active UNIX domain sockets」以下は、ローカルマシン上のプロセスが利用しているソケット(UNIXドメインソケット)の状態を表しています。外部とのネットワークの状態を確認したい場合は「Active Internet connections」(1)〜(7)を参照して下さい。各項目の意味は以下の通りです。
- 「Proto」 プロトコルがTCP、UDPどちらであるか
- 「Recv-Q」 ソケットに接続されたユーザーに送られなかったデータのバイト数
- 「Send-Q」 リモート・ホストが拒否したデータのバイト数
- 「Local Address」 ローカル側の「ローカル側のホスト名:サービス名(ポート番号)」
- 「Foreign Address」 「リモート側のホスト名:サービス名(ポート名)」
- 「State」 ソケットの状態を表します。「ESTABLISHED」はコネクションが確立されている状態、「CLOSE_WAIT」は終了待ちの状態であることを示します。ポート番号がウェルノウンポートの場合はサービス名で表示されます。
- 「Proto」 プロトコルがTCP、UDPどちらであるか
- 「RefCnt」 このソケットに接続されているプロセス数
- 「Flags」 現在のフラグ。
- 「ACC」はソケットが接続されておらず、プログラムが接続要求を待っていることを表します。
- 「Type」 ソケットのアクセス・タイプ。
- 「State」 ソケットの状態。「Free」は割り当てがないソケット、
- 「LISTENING」は接続要求待ちのソケット、「CONNECTING」は接続中のソケット、「CONNECTED」は接続されているソケット、「DISCONNECTING」は切断中のソケット、「UNKNOWN」は不明なソケット、なにも書かれていない場合は他のソケットに接続されていないソケット。
- 「I-Node」 inode番号
- 「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コマンドを使用してルーティング情報を確認してみましょう。