netstatとssは、サーバの 通信状態や開いているポート を確認するコマンドです。「どのポートで待ち受けているか」「今どこと繋がっているか」を見られ、障害調査やセキュリティ確認で活躍します。ssはnetstatの後継で高速なので、今はssが推奨です。
待ち受けポートを確認する(最頻出)
ss -tuln
オプションは、t=TCP、u=UDP、l=待ち受け(LISTEN)、n=名前解決せず番号表示。「このサーバは何番で待っているか」が一覧できます。
netstat -tuln # 従来コマンド(同じ意味)
確立中の接続を見る
ss -tan # TCPの全接続を状態つきで
ss -tp # プロセス名も表示(誰が繋いでいるか)
ESTABLISHED(確立中)、LISTEN(待ち受け)、TIME_WAIT(切断後の待機)などの状態が見えます。
特定ポート・IPで絞る
ss -tuln | grep 443 # 443番の待ち受けだけ
ss -tan state established # 確立中の接続だけ
ss -tan '( dport = :443 )' # 宛先443の接続
統計を見る
ss -s # 接続数の統計(TIME_WAITの数なども)
調査での使いどころ
- 「サービスが繋がらない」:
ss -tulnで、そのポートを本当に待ち受けているか確認。待っていなければサービス未起動やbind設定ミス。 - 「不審な通信がないか」:
ss -tpで、想定外のプロセスが外部と繋がっていないか確認。 - 「TIME_WAITが多い」:
ss -tan state time-wait | wc -lで数を確認(短命接続の張りすぎのサイン)。
netstatとssの違い
- ss: 高速で情報が多い。今の主流。
- netstat: 古くからあるが非推奨化。ただし手元のクセで使う人も多い。
コマンドの考え方はほぼ同じなので、まずはssを覚えれば十分です。
まとめ
ss -tuln で待ち受けポート、ss -tan で接続状態、ss -tp でプロセス確認。「サービスが本当に待ち受けているか」を確かめられるので、通信トラブルの切り分けが一段深くなります。netstatの後継として、ssを手に馴染ませておきましょう。