🌐
【ネットワーク】netstatコマンドとssコマンドを用いて、基本的なネットワーク情報の確認する
基本的なネットワーク情報の確認するためのコマンドとしてnetstat
コマンドとss
コマンドが挙げられる。その使用方法などについて解説する。
接続状態を確認するコマンド(netstat)
接続されているべき機器が正常に接続され、通信が行われているかどうか、どのくらいの情報が流されているのかといったことを確認することができる。
1.netstatの基本的な使い方
ターミナル
netstat
ターミナル(出力結果)
$ netstat
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 27 localhost:38488 localhost:40787 ESTABLISHED
tcp 0 0 localhost:38262 localhost:40787 ESTABLISHED
tcp 0 0 localhost:40787 localhost:38488 ESTABLISHED
tcp 0 0 localhost:40787 localhost:38262 ESTABLISHED
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags Type State I-Node Path
unix 2 [ ] DGRAM 16219 /var/run/chrony/chronyd.sock
unix 2 [ ] DGRAM 20785 /run/user/1000/systemd/notify
unix 3 [ ] DGRAM CONNECTED 18509 /run/systemd/notify
unix 2 [ ] DGRAM 18518 /run/systemd/journal/syslog
unix 8 [ ] DGRAM CONNECTED 18526 /run/systemd/journal/dev-log
項目 | 内容 | 備考 |
---|---|---|
Proto | 使われているプロトコル | だいたいTCP |
Recv-Q | ソケットの受信バッファに残っている受信データのバイト数 | |
Send-Q | ソケットの送信バッファに残っている送信データのバイト数 | |
Local Address | ローカル側のアドレスとポート番号 | IPアドレス:ポート番号 |
Foregin Address | 相手側のアドレスとポート番号 | |
State | TCPの接続状態のステータス | CLOSEDやESTABLISHEDなど |
Stateの詳細について
項目 | 内容 |
---|---|
CLOSED | 未使用のTCPポート(netstatコマンドを実行してもこれは表示されない) |
ESTABLISHED | TCPコネクションが確立して通信している状態。 |
LISTEN | 待ち受け状態 |
SYN_SENT | 通信開始の要求(SYN:Synchronize)を送信したが、それに対する応答(ACK:Acknowledgement)を受け取っていない状態。ACKを受け取るとESTABLISHEDになる。 |
SYN_RECEIVED | クライアントからSYNを受け取った状態。受け取ったSYNに対してACKを送信するとESTABLISHEDになる。 |
FIN_WAIT_1 | 自分側から先にFIN(転送終了のパケット)を送信した状態。そのFINに対するACKを受信するとFIN_WAIT_2になるが、先に相手からのFINを受け取るとCLOSINGになる。 |
FIN_WAIT_2 | 自分側から先にFIN(転送終了のパケット)を送信した状態。自分側から送信したFINに対するACKを受け取った状態。相手からのFINを受け取り、それに対してACKを返すとTIME_WAITになる。 |
TIME_WAIT | コネクションの終了待ち状態。しばらくしてからCLOSEDになる。(netstatの表示から消える。) |
CLOSE_WAIT | 相手からのFINを受け取った状態。FINを送信してからLAST_ACKになる。 |
LAST_ACK | 送信したFINに対するACK待ち状態。ACKを受け取ったらCLOSEDになる。(netstatの表示から消える。) |
CLOSING | FINに対するACKを受け取るとTIME_WAITになる。 |
2.netstatのオプション
項目 | 内容 |
---|---|
-a | すべての接続を表示 |
-n | 外部アドレスをIPアドレスで表示,プロトコルではなくポート番号で表示 |
-e | インターフェースの統計情報を表示 |
-r | ルーティングテーブルを表示 |
-tuln | ルーティングテーブルを表示 |
接続状態を確認するコマンド(ss)
接続されているべき機器が正常に接続され、通信が行われているかどうか、どのくらいの情報が流されているのかといったことを確認することができる。
1.ssの基本的な使い方
ターミナル
ss
ターミナル(出力結果)
$ ss
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
udp UNCONN 0 0 127.0.0.53%lo:53 0.0.0.0:*
udp UNCONN 0 0 127.0.0.1:323 0.0.0.0:*
2.ssのオプション
項目 | 内容 |
---|---|
-a | すべての接続を表示 |
-s | インターフェースの統計情報を表示 |
-tuln | ルーティングテーブルを表示 |
参考
Discussion