■ はじめに
ネットワーク統計や状態を確認するために利用できる netstat コマンドについて扱う。
目次
【1】netstat 【2】構文 1)出力 【3】オプション 【4】使用上の注意 1)UDPについては、状態は表示されない 2)ssコマンドへの移行 【5】コマンド例 例1:Hello world 例2:ポート「8080」のみ表示 例3:ルーティング・テーブルの確認 例4:使用ポートが動作しているかを調べる 例5:TIME_WAITの状況を確認する
【1】netstat
* ホストのネットワーク状態などの表示
【2】構文
netstat [Options]
1)出力
状態
http://www.atmarkit.co.jp/ait/articles/0207/20/news003.html
| 状態 | 説明 |
|---|---|
| ESTABLISHED | 確立して通信している状態 |
| LISTENING | 待ち受け状態(リッスン状態) |
| TIME_WAIT | 終了待ち状態 |
| SYN_SENT | サーバに対して、通信開始の要求(SYN:Synchronize)を送信したが、まだそれに対する応答(ACK:Acknowledgement)を受け取っていない状態。相手が無応答のときもこの状態になる。ACKを受け取るとESTABLISHEDへ遷移する |
| SYN_RECEIVED | クライアントからSYN要求を受け取った直後の状態。SYNに対するACKを送信するとESTABLISHEDへ遷移する |
| CLOSE_WAIT | 相手からのFINを受け取った状態。アプリケーションが終了すると、FINを送信してからLAST_ACKへ遷移する |
【3】オプション
| オプション | 意味 | 備考 |
|---|---|---|
| -a | 全て(All)の接続を表示 | |
| -t | IPアドレスなど数値のみに抑制する | |
| -l | LISTENを表示 | |
| -n | ポートを表示 | |
| -r | ルーティング・テーブルを表示 | |
| -o | タイマーを表示 | --timers |
| -p | プロセスIDを表示 |
【4】使用上の注意
1)UDPについては、状態は表示されない
* そもそも、UDPは状態が存在しないので
2)ssコマンドへの移行
https://atmarkit.itmedia.co.jp/ait/articles/1710/06/news014.html
より抜粋 ~~~~~~~~ 従来はnetstatコマンドが使用されていましたが、 現在はssコマンドへの移行が進んでいます。 ~~~~~~~~
【4】コマンド例
例1:Hello world
netstat -nato Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State Timer tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN off (0.00/0/0) tcp 0 0 192.XXX.XXX.XXX:33012 XXX.XXX.XXX.XXX:80 ESTABLISHED off (0.00/0/0) tcp 0 0 192.XXX.XXX.XXX:45650 XXX.XXX.XXX.XXX:80 TIME_WAIT timewait (42.75/0/0) tcp 1 0 192.XXX.XXX.XXX:35368 XXX.XXX.XXX.XXX:80 CLOSE_WAIT off (0.00/0/0)
例2:ポート「8080」のみ表示
Linuxの場合
netstat -a | grep ":8080"
Windowsの場合
netstat -a | find ":8080"
例3:ルーティング・テーブルの確認
# 「route -e」コマンドとほぼ同様 netstat -r
例4:使用ポートが動作しているかを調べる
sudo netstat -anp | grep "LISTEN " | grep 【ポート番号】
例5:TIME_WAITの状況を確認する
# TIME_WAITの待ち時間状況を確認する (「-nato」 = 納豆?) sudo netstat -nato | grep TIME_WAIT # TIME_WAITの数を確認する netstat -an | grep TIME_WAIT | wc -l # wc -l : 指定した行数を表示する
参考文献
http://www.atmarkit.co.jp/ait/articles/0207/20/news003.html
http://www.atmarkit.co.jp/fnetwork/netcom/netcom05/netcom01.html
TIME_WAIT
https://qiita.com/kuni-nakaji/items/c07004c7d9e5bb683bc2
-o (--timers) オプション
https://qiita.com/thatsdone/items/f89a774c93bffdb5d46a
関連記事
ネットワーク系コマンド ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2016/07/27/214633
ネットワーク系コマンド ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2016/07/27/214633
ネットワーク系コマンド ~ Windows編 ~
https://dk521123.hatenablog.com/entry/2016/06/22/013700
ネットワーク系コマンド ~ DNS編 ~
https://dk521123.hatenablog.com/entry/2021/08/07/000000
ネットワーク系コマンド ~ IPアドレス編 ~
https://dk521123.hatenablog.com/entry/2016/10/03/223638
ネットワーク系コマンド ~ ポート編 ~
https://dk521123.hatenablog.com/entry/2017/06/13/225500
ネットワーク系コマンド ~ ネットワーク設定編 ~
https://dk521123.hatenablog.com/entry/2017/06/27/225225
nc コマンド
https://dk521123.hatenablog.com/entry/2017/12/06/211400
lsofコマンド
https://dk521123.hatenablog.com/entry/2017/10/26/233634
curl コマンド
https://dk521123.hatenablog.com/entry/2017/12/05/233100
pingコマンド
https://dk521123.hatenablog.com/entry/2013/07/12/231426
tracert / traceroute コマンド
https://dk521123.hatenablog.com/entry/2023/07/25/000000
ssh コマンド / scp コマンド
https://dk521123.hatenablog.com/entry/2017/12/09/231200
外部サイトに繋がらなかった場合のトラブルシュート
https://dk521123.hatenablog.com/entry/2017/10/13/231826
ファイルの内容を表示するコマンド
https://dk521123.hatenablog.com/entry/2016/08/08/235934
ファイル内容を操作するコマンド
https://dk521123.hatenablog.com/entry/2023/07/26/000000
Linux ~ パフォーマンスに関わるコマンド ~
https://dk521123.hatenablog.com/entry/2015/02/21/112554
netstatコマンドで TIME_WAIT が大量に発生する
https://dk521123.hatenablog.com/entry/2018/01/14/212835
ELB に関するトラブル「HTTP 502: Bad Gateway」が表示
https://dk521123.hatenablog.com/entry/2018/01/13/212430
ポート番号 / Port Number
https://dk521123.hatenablog.com/entry/2015/03/15/210000
経路制御 / ルーティング
https://dk521123.hatenablog.com/entry/2015/02/12/000458