ss の使い方
待ち受け中のポートと接続
書き方
ss -tlnp ss -ulnp ss -tnp(つながっている接続)
-t TCP、-u UDP、-l 待ち受け、-n 数値表示、-p プロセス(root のみ)、-a すべて。Local Address が 0.0.0.0 や * なら外から届き、127.0.0.1 ならこのサーバーの中からだけ。netstat の後継です。
よく使うオプション
| オプション | 意味 |
|---|---|
-t / -u | TCP だけ / UDP だけ |
-l | 待ち受けているものだけ |
-n | 名前に直さず番号で出す |
-p | どのプロセスかも出す(他人のものは root が要る) |
-a | 待ち受けもつながっているものも全部 |
-s | 数のまとめだけを出す |
例
$ sudo ss -tlnpState Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=1123,fd=3))
LISTEN 0 511 127.0.0.1:8080 0.0.0.0:* users:(("node",pid=2210,fd=19))TCP で待ち受けているポートと、そのプロセスを見ます。サービスが本当に待ち受けているかの確認に使います。
$ ss -tn state established
今つながっている TCP の接続だけを出します。
$ sudo ss -tlnp | grep ':80 '
80 番で待ち受けているものがあるかだけを確かめます。
$ ss -s
接続の数のまとめを見ます。接続が増えすぎていないかの目安になります。
よくある間違い・注意
- Local Address が 127.0.0.1 のものは、サーバーの中からしかつながりません。外から使うなら 0.0.0.0 や * で待ち受けさせます。
- -p の Process 欄は、root でないと他人のプロセスが空になります。
- netstat は古いコマンドで、入っていないことがあります。同じことは ss でできます。
実際に打って練習する
Linux レベル1 コースの Lv61「開いている門 ss」で覚えます(第4章 サーバーの守り手(パッケージとサービス))。ブラウザの中のシミュレーターで、本物と同じように打って確かめられます。
Lv1〜16 は、登録不要・無料で遊べます(それより先はブロンズ以上のプランで遊べます)。