ss 概要
`ss` コマンドはカーネルの `netlink` インターフェースを通じてソケット情報を直接取得するため、大量の接続があるシステムでは `netstat` よりもはるかに高速に動作します。また、`netstat` が提供しないより多くの TCP 状態情報と詳細なソケット統計を提供します。現代の Linux システムでネットワーク関連情報を照会する際は、`ss` の使用が強く推奨されます。
ss の主要な役割
`ss` コマンドは主に以下の目的で使用されます:
主要な活用分野
- ネットワーク接続およびリスニングポートの確認: システムのすべてのアクティブな TCP、UDP、UNIX ソケットを表示します。
- プロセス-ポートマッピング: どのプロセスが特定のポートを使用しているかを確認します。
- ルーティングテーブルの確認: IP パケットが送信される経路を定義するルーティングテーブルを表示します。
- ネットワークインターフェース統計: 各ネットワークインターフェースのパケット送信および受信統計を提供します。
- ソケット状態の詳細分析: TCP 接続の詳細状態 (例: `ESTAB`, `LISTEN`, `TIME-WAIT` など) と統計を深く分析します。
`ss` vs `netstat`
`ss` は `netstat` の現代的で強力な代替です。
- ss: 現代的で高速、カーネルのソケット統計への直接アクセス、IPv6 完全サポート、より多くのフィルタリングオプションを提供。
- netstat: レガシーツール、`/proc` ファイルシステムベース、大規模接続時に遅くなる可能性、IPv6 サポート不完全。
主要な ss コマンドオプション
`ss` コマンドはさまざまなオプションを組み合わせて、必要なネットワーク情報を詳細にフィルタリングして表示できます。
1. ソケットタイプおよび状態フィルタリング
2. 出力形式および詳細情報
3. ルーティングおよびその他
生成されたコマンド:
コマンドを組み合わせてみてください。
説明:
`ss` コマンドを実行します。
これらのオプションを組み合わせて、AIと一緒に仮想的にコマンドを実行してみてください。
使用例
`ss` コマンドのさまざまな活用例を通じて、システムのネットワーク接続およびソケット状態を効果的に監視・分析してみましょう。
すべてのアクティブな TCP 接続およびリスニングポートの確認
sudo ss -tulpn
現在のシステムでアクティブなすべての TCP ソケット (リスニングを含む) を数字アドレスで表示し、関連するプログラム名と PID も表示します。
すべてのリスニング (Listening) TCP ポートのみを確認
sudo ss -tlpn
現在接続を待機しているすべての TCP リスニングポートを数字形式で表示します。ウェブサーバー、データベースなどのサービスポートが開いているか確認するのに役立ちます。
特定のポートを使用しているプロセスの確認
sudo ss -tlpn | grep :22
ポート `22` (SSH) を使用しているすべての TCP 接続およびリスニングポートの詳細情報を確認します。 (SSH サーバーの診断時に役立ちます)
ESTABLISHED 状態のすべての TCP 接続の確認
ss -t state established
現在アクティブでデータ通信中のすべての TCP 接続を表示します。外部接続が正常か確認するのに役立ちます。
TIME-WAIT 状態のソケット数の確認
ss -s | grep -i time-wait
TCP 接続終了後に `TIME-WAIT` 状態で残っているソケットの数を確認します。この数が多すぎると、システムリソースが枯渇する原因になる可能性があります。
すべての UDP ソケットの確認
ss -ulpn
現在のシステムで使用中のすべての UDP ソケット接続およびリスニングポートを確認します。
ルーティングテーブルの確認
ss -r
システムの IP ルーティングテーブルを表示します。 `ip route show` と類似しています。