「どのポートが開いているか確認したい」「どのプロセスがネットワークを使っているか調べたい」——ssコマンドはそんなときの定番ツールです。netstatの後継として現代のLinuxで標準的に使われています。
ss vs netstat
| 比較項目 | ss | netstat |
|---|---|---|
| 推奨度 | ◎ 現在の標準 | △ 非推奨(廃止予定) |
| 速度 | 高速 | 低速 |
| パッケージ | iproute2(デフォルト) | net-tools(要インストール) |
ss コマンドの基本
# よく使うオプション
# -t: TCP -u: UDP -l: LISTEN中 -n: 数値表示 -p: プロセス名
# LISTEN中のTCP/UDPポートを表示(最も使う)
$ sudo ss -tuln
# プロセス名も表示
$ sudo ss -tulnp
# 確立済みのTCP接続を表示
$ ss -tn
# 特定ポートの接続を確認
$ ss -tn sport = :80 # ローカル80番ポート
$ ss -tn dport = :443 # リモート443番ポート
# 特定プロセスのソケットを確認
$ ss -p | grep nginx
# 接続状態のサマリー
$ ss -s出力の読み方
$ sudo ss -tulnp
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
tcp LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=1234))
tcp LISTEN 0 511 0.0.0.0:80 0.0.0.0:* users:(("nginx",pid=5678))
# 各列の意味
# State : LISTEN(待受中)/ ESTABLISHED(接続中)/ TIME-WAIT など
# Recv-Q : 受信バッファのデータ量
# Send-Q : 送信バッファのデータ量
# Local : ローカルのIPアドレスとポート
# Peer : 接続先のIPアドレスとポート(LISTENは0.0.0.0:*)
# Process : 使用しているプロセス名とPIDセキュリティチェックに活用する
# 外部からアクセス可能なポートを確認
$ sudo ss -tulnp | grep "0.0.0.0" # IPv4で全インターフェース公開
$ sudo ss -tulnp | grep "[::]" # IPv6で全インターフェース公開
# 想定外のポートが開いていないか確認
# 必要なポートのみ開いているかチェックする習慣をつける
# 接続元IPを確認(不審な接続がないか)
$ sudo ss -tn state established | grep -v "127.0.0.1"まとめ
netstatは非推奨。現代のLinuxではssを使うsudo ss -tulnpがすべての基本。開いているポートとプロセスを一覧表示- STATEはLISTEN(待受)・ESTABLISHED(接続中)・TIME-WAIT(切断中)を覚えておく
0.0.0.0:ポートは外部から全インターフェースでアクセス可能な状態。定期確認を
📋 Phase 3 ネットワーク基礎チートシートで全コマンドをまとめて確認できます。



コメント