Linux / macOS:待受ポートとプロセスを確認する

Linux の ss と macOS の lsof で TCP、UDP、待受アドレスを確認し、誤ったサービス停止を防ぎます。

実行しているホストまたはネットワーク名前空間だけを調べます。コンテナ内の結果はホスト側とは異なります。例は TCP 8080 と UDP 53 です。

1. Linux:ss で確認する

最初は TCP、次は UDP を調べます。-n は名前解決を省略し、sudo は他ユーザーのプロセス情報を確認するために使います。UDP を TCP の LISTEN 状態で判断しないでください。

sudo ss -ltnp 'sport = :8080'
sudo ss -lunp 'sport = :53'

2. macOS:lsof で確認する

TCP は -sTCP:LISTEN で通常の接続を除外します。PID、COMMAND、NAME を見て、ループバックと全インターフェースの違いを確認します。UDP に TCP の状態フィルターは使いません。

sudo lsof -nP -iTCP:8080 -sTCP:LISTEN
sudo lsof -nP -iUDP:53

3. アプリの管理方法に従って対処する

自分のアプリと確認したら Ctrl+C や通常のサービス停止を優先します。SIGKILL は後処理を省略しデータを失う恐れがあります。検索結果を自動終了につなげないでください。結果なしでも、最終的には起動時の bind 成功を確認します。

出典と確認

資料確認日:

関連ポート