0

netstat:知ってます → 使えます にする為の記事

今日のコマンド

netstat

TCP通信の接続状況を調べる

こんな時使う
・自分のパソコンがTCPでつながっている相手のIPアドレスやホスト名,
開いているポート番号など知りたい。
・自分のパソコンがどんな相手とどのように通信しているか確認したい。
・スパイウエアやウイルスが勝手にポートを開いたりしていないか確認したい。

また、管理者コマンドとしての側面からも、
「サーバーにつながらない!」「反応が遅い!!」といったときに,
・やりとりしたパケットの数がどれくらいか?
・エラーは起こっているのか?
といった統計情報観点からの切り分けが可能。


 

# netstat -atnp
- - -
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      1029/sshd
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      1728/master
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      1396/mysqld
tcp        0      0 0.0.0.0:56078               0.0.0.0:*                   LISTEN      928/rpc.statd
tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN      908/rpcbind
tcp        0      0 192.168.33.10:22            192.168.33.1:50694          ESTABLISHED 25242/sshd
tcp        0      0 192.168.33.10:22            192.168.33.1:53391          ESTABLISHED 9768/sshd
tcp        0      0 192.168.33.10:22            192.168.33.1:51933          ESTABLISHED 17922/sshd
tcp        0      0 :::22                       :::*                        LISTEN      1029/sshd
tcp        0      0 ::1:25                      :::*                        LISTEN      1728/master
tcp        0      0 :::53993                    :::*                        LISTEN      928/rpc.statd
tcp        0      0 :::111                      :::*                        LISTEN      908/rpcbind
tcp        0      0 :::80                       :::*                        LISTEN      1792/httpd
tcp        0      0 ::ffff:192.168.33.10:80     ::ffff:192.168.33.1:51793   TIME_WAIT   -
tcp        0      0 ::ffff:192.168.33.10:80     ::ffff:192.168.33.1:51795   TIME_WAIT   -
- - -

Local Address : 接続元情報(コンピュータ名:ポート番号)
Foreign Address : 接続先情報(コンピュータ名:ポート番号)
State : 現在のTCPの接続状態

LISTENING    サーバとして、クライアントからの接続を待機中
SYN_SENT     コネクション要求中
ESTABLISHED  コネクション確立状態(通信中)
CLOSE_WAIT   コネクション終了待ち
TIME_WAIT    コネクション終了後

相手側アドレスが 0.0.0.0 は、 来るものは拒まず(どこから接続されてもよい)ということで、 自分自身がサーバとして動作していることを示します。

◆ TCPのコネクションの確立までのシーケンス(3 Way HandShake)

クライアント側         サーバ側
      |       SYN         |
      |------------------>|
      |     SYN,ACK       |
      |<------------------|
      |       ACK         |
      |------------------>|
      |

tcp

■ netstat -s

ネットワークの統計情報(現在までの送受信の結果情報)
→ ネットワークやネットワーク機能を調べることができる。

# netstat -s | grep -i fail
0 input ICMP message failed.
0 ICMP messages failed
0 failed connection attempts
↑ 0だったり
# netstat -s | grep -i active
278 active connections openings
↑ 0以外だったり 上記の場合はTCPが不機能な可能性が高い

■ netstat -r
⇢ ルーティング情報

$ netstat -r
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
10.0.2.0        *               255.255.255.0   U         0 0          0 eth0
192.168.33.0    *               255.255.255.0   U         0 0          0 eth1
link-local      *               255.255.0.0     U         0 0          0 eth1
default         10.0.2.2        0.0.0.0         UG        0 0          0 eth0

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です