
sudo ss -antp
State (中略) Local Address:Port Peer Address:Port Process LISTEN (中略) 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=1111,fd=10)) LISTEN (中略) 0.0.0.0:443 0.0.0.0:* users:(("nginx",pid=2222,fd=10)) ESTAB (中略) 172.168.0.2:443 192.0.2.1:54001 users:(("nginx",pid=2222,fd=10))
本記事では、ss コマンドの見方やオプションの使い方を解説していきます。
| ネットワークのコマンド | |||
|---|---|---|---|
ss コマンドのオプション
ss コマンドの各オプションを紹介します。
-t TCP ソケットのみ表示
オプション無しの場合は、全てのソケットが表示されるので、-t でフィルタリングします。
ss -t
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process ESTAB 0 0 172.168.0.2:ssh 192.0.2.1:53000 ESTAB 0 0 172.168.0.2:https 192.0.2.1:54001
| 出力 | 説明 |
|---|---|
| State | ソケットの状態 (後述) |
| Recv-Q | ■ソケットの状態が ESTABLISHED ソケットの受信バッファに残っている受信データのバイト数 (まだユーザープログラムに渡されてないデータ) ■ソケットの状態が LISTEN キューにある確立済み TCP コネクションの数 (accept 前) |
| Send-Q | ■ソケットの状態が ESTABLISHED ソケットの送信バッファに残っている送信データのバイト数 (リモートホストから ACK が返ってきてないデータ) ■ソケットの状態が LISTEN 確立済み TCP コネクションをキューイングするキューの数 (accept 前) |
| Local Address:Port | ローカル側ソケットのアドレスとポート番号 (ss コマンドを叩いた PC 側) |
| Peer Address:Port | リモート側ソケットのアドレスとポート番号 |
https://hana-shin.hatenablog.com/entry/2022/09/18/191918
| ソケットの状態 | 説明 |
|---|---|
| CLOSED | ソケットは使用されていない。パッシブオープンは LISTEN に遷移 |
| LISTEN | 相手からの SYN 待ちの状態。 |
| SYN_SENT | 自分から SYN を送信。ソケットはコネクションを確立しようと試みている |
| SYN_RECV | 相手から SYN を受信し、自分から SYN/ACK を返した |
| ESTABLISHED | ソケットはコネクションを確立している |
| FIN_WAIT1 | ソケットがクローズされ、コネクションを停止中 |
| FIN_WAIT2 | コネクションがクローズされ、ソケットは相手側の停止待ち |
| TIME_WAIT | ソケットはクローズした後、ACK の再送が不要になるまで待機 (すぐに CLOSED に移行すると、再送先がわからなくなるため) |
| CLOSED | ソケットは使用されていない |
| CLOSE_WAIT | 相手側は停止しており、自分のソケットのクローズ待ち |
| LAST_ACK | 相手側は停止しており、自分のソケットがクローズされる 相手からの ACK を待ち |
| CLOSING | 両方のソケットが停止しているが、相手からの ACK 待ち |
-l LISTEN 状態のソケットを表示
ss -lt
$ ss -tl State Recv-Q Send-Q Local Address:Port Peer Address:Port Process LISTEN 0 128 0.0.0.0:ssh 0.0.0.0:* LISTEN. 0 511 0.0.0.0:https 0.0.0.0:* LISTEN 0 128 [::]:ssh [::]:* LISTEN 0 511 [::]:https [::]:*
State が LISTEN 状態のソケットだけを確認できました。
-a 全てのソケットを表示
LISTEN 状態と non-LISTEN 状態のソケットをどちらも表示します。
ss -at
$ ss -at State Recv-Q Send-Q Local Address:Port Peer Address:Port Process LISTEN 0 128 0.0.0.0:ssh 0.0.0.0:* LISTEN 0 511 0.0.0.0:https 0.0.0.0:* ESTAB 0 52 172.168.0.2:ssh 192.0.2.1:5300 LISTEN 0 128 [::]:ssh [::]:* LISTEN 0 511 [::]:https [::]:*
-n ポートやアドレスを数値で表示
ss -tn
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process ESTAB 0 0 172.168.0.2:22 192.0.2.1:53000 ESTAB 0 0 172.168.0.2:443 192.0.2.1:54001
先ほどまでプロトコル名 (ssh, https) で表示されていた箇所が、ポート番号で表示されています。
-p プロセス名を表示
権限が無いとプロセス情報を取得できないので、sudo を付けています。
sudo ss -tp
State (中略) Local Address:Port Peer Address:Port Process ESTAB (中略) 172.168.0.2:ssh 192.0.2.1:53000 users:(("sshd",pid=1111,fd=10)) ESTAB (中略) 172.168.0.2:https 192.0.2.1:54001 users:(("nginx",pid=2222,fd=10))
-s ソケットのサマリー統計を表示
ss -s
Total: 175 TCP: 5 (estab 1, closed 0, orphaned 0, timewait 0) Transport Total IP IPv6 RAW 1 0 1 UDP 4 2 2 TCP 5 3 2 INET 10 5 5 FRAG 0 0 0
現在の TCP ソケットの合計と各ソケットの状態などがわかります。(LISTEN は表示されてない)
全てのソケットを表示すると、たしかに5つのソケットが存在することを確認できます。
ss -at
$ ss -at State Recv-Q Send-Q Local Address:Port Peer Address:Port Process LISTEN 0 128 0.0.0.0:ssh 0.0.0.0:* LISTEN 0 511 0.0.0.0:https 0.0.0.0:* ESTAB 0 52 172.168.0.2:ssh 192.0.2.1:5300 LISTEN 0 128 [::]:ssh [::]:* LISTEN 0 511 [::]:https [::]:*
関連記事
| 学習ロードマップ | |||||
|---|---|---|---|---|---|
| ネットワークのコマンド | |||
|---|---|---|---|
| OSI 参照モデル | |||
|---|---|---|---|









![[改訂新版] 3分間ネットワーク基礎講座](https://m.media-amazon.com/images/I/51oegv0Zi4L._SL160_.jpg)






















