netstat - NETwork STATus の表示


netstat コマンドネットワークに関するさまざまな情報を得ることができます。

% netstat
TCP: IPv4
   Local Address        Remote Address    Swind Send-Q Rwind Recv-Q  State
-------------------- -------------------- ----- ------ ----- ------ -------
hdw3ss12.34778       smlmas10.X11         63048      0 24820      0 ESTABLISHED
hdw3ss12.37089       stdfsv1.nfsd         24576      0  8760      0 TIME_WAIT
hdw3ss12.37090       stdfsv1.nfsd         24576      0  8760      0 TIME_WAIT

のような表示がされると思います。 smlms10 の X サーバーに hdw3ss12 の 34778 番ポートが接続していることなどがわかります。

% netstat -n

のように -n オプションを使用すると numeric にわざわざホスト名やプロトコル名を変換せずに 数字のまま出力します。

TCP: IPv4
   Local Address        Remote Address    Swind Send-Q Rwind Recv-Q  State
-------------------- -------------------- ----- ------ ----- ------ -------
163.143.72.52.34778  163.143.134.154.6000 63048      0 24820      0 ESTABLISHED
163.143.72.52.37089  163.143.3.21.2049    24576      0  8760      0 TIME_WAIT
163.143.72.52.37090  163.143.3.21.2049    24576      0  8760      0 TIME_WAIT

先ほどのものと見比べて X11 のポートは 6000 番だということがわかると思います。

% netstat -n < tmp

のようにファイルに状態を保存しておき、なにかツールを起動し、

% netstat -n | diff tmp -

のように diff をとることによってそのツールがどのポートを使用しているのか調べたりします。

他にもオプションがいろいろあります。

% netstat -r

とすると、ルーティングテーブルを示します。

% netstat -a

とすれば、すべてのソケットの状態を表示します。 接続(connection)やサーバ待ち受けポート(listen port)の確認ができます。

Active Internet connections (including servers)
Proto Recv-Q Send-Q  Local Address          Foreign Address        (state)
tcp4       0      0  *.88                   *.*                    LISTEN
tcp6       0      0  *.88                   *.*                    LISTEN
tcp46      0      0  *.5900                 *.*                    LISTEN
xrea