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 / -uTCP だけ / 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 は、登録不要・無料で遊べます(それより先はブロンズ以上のプランで遊べます)。

Linux コマンド一覧(LinuC レベル1 の範囲)へ戻る