よくやるけど、毎回調べるやつ。。netstat
の結果をポートでgrep
するだけ。
$ netstat -an | grep -E ':(80|443)' | grep -v "CLOSE_WAIT"
- ESTABLISHED
- TCPでの接続が確立されて、現在通信が行われている状態を指す
- TIME_WAIT
- 接続終了待ちの状態を指す。しばらくすると、CLOSEDへ移行する
- LISTENING
- 利用可能なポートの待ち受け状態を指す。「-a」オプションを付加させた場合に表示される
- SYN_SENT
- サーバに接続要求(SYNchronize)を送信したが、応答(ACKnowledgement)を受けていない状態。ACKを受け取るとESTABLIHSEDへ移行する
- SYN_RECEIVED
- クライアントからSYN要求を受け取った直後の状態を指す
- FIN_WAIT_1
- サーバからFINが送信された状態。この状態では、ACKを受信するとFIN_WAIT_2へ移行し、その前にFINを受けるとCLOSINGへ移る
- FIN_WAIT_2
- ACK受信状態を指す。次はTIME_WAITへ移る
- CLOSE_WAIT
- サーバからFINを受信した状態を指す。次はLAST_ACKへ移る
- CLOSING
- FIN_WAIT_1項目のようにFINを受け取ってコネクションが閉じられる状態を指す
- LAST_ACK
- FINに対するACK待ちの状態を指す。ACKを受信するとCLOSEDへ移行して終了する
- CLOSED
- 未使用状態のTCPポート