2014年12月2日火曜日

netstat コマンド

netstat でよく使うのが netstat -an
表示されるプロトコル
・TCP 通信と UDP 通信の2つのプロトコルが順に表示されます。

TCP 通信
・TCP は接続のステータスがあるのでステータスも表示されます。
・クライアントとなっている通信もあればサーバとなっている通信もあります。
・LISTENING というのはサーバ側がなれるステータスになります。

UDP 通信
・UDP は接続という概念がないです。ステータスのところには何も表示されません。
・サーバ側はポートを開けて待ち受けしているのでそのポート番号が表示されています。

コマンドのオプション
a: LISTENING など、ESTABLISHED 以外の情報も表示
n: IP アドレスとポートを番号で表記

参考
netstat コマンドだけだとすべてのステータスの表示はせず ESTABLISHED / CLOSE_WAIT / TIME_WAIT ぐらいの表示となります。
アドレス、ポート番号の名前解決もした表記になります。
アドレスの名前解決ではドメイン名の部分は表示されずホスト名だけです。


統計情報とかルーティング情報の表示
netstat  -s  -> 統計情報を表示する(OS 起動時からの値)
netstat  -r  -> ルーティング情報を表示


プロセス情報も表示する
netstat  -o  -> プロセスIDを表示
netstat  -b  -> プロセス名を表示


プロセス名を表示し、アドレス・ポートを数字で表記する。
netstat -anbv


netstat で見かける State 一覧
LISTENING ・・・ (SYN を受ける側)通信を待ち受けてる状態
SYN_SENT ・・・ (SYN を送る側)SYN を送ったが通信は確立していない。この状態で止まった時、相手が無応答となっていて、クライアントアプリケーションがうまく動作していないことが考えられる。

ESTABLISHED ・・・ 通信が確立している状態。

CLOSE_WAIT ・・・ (FIN を送信する側)相手から FIN を受け取った状態。アプリケーション終了処理中。
TIME_WAIT ・・・ (FIN を受信する側)コネクションの終了待ち。タイムアウト待ちなので時間が経てば終了する。


0 件のコメント:

コメントを投稿