ssコマンドとは
ss(エスエス)コマンドは、Linuxでソケットや接続状態を高速に表示する、netstatの代替として使われるコマンドです。iproute2に含まれ、カーネルのソケット診断情報を使って、TCP・UDP・UNIX等のソケットを詳しく絞り込めます。
オプションなしでは、通常は接続済みの非待ち受けソケットを表示します。「何も出ない=ソケットがない」ではありません。待ち受けソケットや特定プロトコルを含めるオプション、状態・エンドポイントのフィルターを目的に合わせて指定します。
ssは大量のソケットをすべて眺めるより、プロトコル・アドレスファミリー・状態・アドレス・ポートの条件でカーネル側の候補を絞り、必要なソケットのキュー、プロセス、タイマー、TCP内部情報を読むツールです。

絞り込みの軸
目的のトランスポートまたはローカルIPCの種類だけを選びます。
同じポート番号でもアドレスファミリーが違うソケットを分けます。
TCP状態式で必要な段階だけを抽出します。
ソース・宛先条件、プレフィックス、ポート比較で対象通信を絞ります。
権限があればPID、プログラム、サービスの情報などを表示します。
メモリー、タイマー、RTT、輻輳ウィンドウ、再送などを必要に応じて追加します。
ソケットはIP通信だけではない
ソケットはアプリケーションとカーネルが通信エンドポイントを扱う仕組みで、TCP・UDPのインターネットソケットだけでなく、同一ホスト内のUNIXドメインソケット、RAWソケット、Netlinkソケットなどがあります。ssはアドレスファミリーとプロトコルを選んで表示できます。
Webサーバーの調査ならTCPの待ち受け、DNSならUDPとTCP、ローカルデーモンとの連携ならUNIXソケットというように、アプリケーションの通信方式から対象を決めます。
既定表示に待ち受けソケットは含まれない
オプションなしのssは、開かれている非待ち受けソケットのうち、確立済みの接続などを表示します。サーバーポートを確認するには待ち受け表示を明示し、TCP・UDPなどのプロトコルも指定します。
すべて表示する選択肢は便利ですが、使用中ホストでは大量行になります。最初からすべてを保存するより、プロトコル、状態、ポート、処理の順に絞ると誤読を減らせます。
LocalとPeerを状態に合わせて読む
接続済みTCPではLocal Address:PortとPeer Address:Portが通信の両端です。待ち受けソケットではローカル側が割り当て先となり、ピア側は未特定を示すワイルドカードになります。UDPソケットはconnectされていない場合、通信相手が特定されません。
IPv6の::で待ち受けるソケットがIPv4も受け付けるかは、システム設定とソケットオプションに依存します。表示一行だけでデュアルスタック動作を断定せず、IPv4・IPv6それぞれの待ち受けと実際の接続を確認します。
Recv-QとSend-Qの意味はソケット状態で変わる
接続済みソケットのRecv-Qはアプリケーションがまだ読んでいない受信データ、Send-Qは送信済みだが確認応答待ち等のデータを表すのが基本です。値が継続増加すれば、アプリケーション処理停滞、ピア受信、ネットワーク損失等を候補にします。
待ち受けソケットでは、キューの列が未accept接続数やバックログ上限など、接続済みソケットとは別の意味になります。両者の値を同じバイト量として比較してはいけません。詳しい意味はカーネルのバージョンとマニュアルでも確認します。
プロセス表示には権限が必要
プロセス表示のオプションは、ソケットを持つプログラム名、PID、ファイル記述子などを表示します。自分以外の利用者が動かすプロセスや詳しい情報は、特権がないと欠ける場合があります。空欄だから所有プロセスがないとは限りません。
コンテナーやネットワーク名前空間内のソケットは、調査している名前空間から見えない場合があります。ホスト、コンテナー、ポッド、名前空間のどこでコマンドを実行したかを記録します。
TCP内部情報は速度測定ではない
詳細表示のオプションでは、RTT、RTTのばらつき、輻輳制御、輻輳ウィンドウ、MSS、再送、ペーシングなどを表示できる場合があります。これらはそのTCPソケットの現在または累積状態であり、インターネット回線全体の最大速度ではありません。
短命接続では表示前に終了し、アイドル接続では最新状態が古い場合があります。アプリケーションログ、パケットキャプチャー、インターフェースカウンター、継続監視と照合します。
Netlink利用で大量ソケットを扱いやすい
ssはカーネルのソケット診断インターフェースへNetlink経由で問い合わせ、条件に合う情報を取得します。Linux net-tools版netstatが大量ソケットで遅くなる場合に、より詳しい状態とフィルターを扱えます。
ただしssはnetstatの選択肢をそのまま置き換えるコマンドではありません。構文と既定表示が違い、経路表やインターフェース統計はipコマンド等へ役割が分かれます。
スナップショットでありパケットキャプチャーではない
ssが表示するのはソケット状態とカーネル統計です。パケットのペイロード、TCPオプションを含む個々のパケット、途中のルーター、過去に終了したすべての接続は表示しません。
短い問題を捕まえるには間隔実行、継続監視、イベント追跡、アプリケーションメトリクス等を使います。パケット順序や再送原因を詳しく見る必要があれば、権限とプライバシーへ配慮してパケットキャプチャーを行います。
ssはLinuxソケットを条件で絞り、エンドポイント・状態・待ち行列・処理・タイマー・TCP内部値を読むツールです。既定表示の範囲、権限、名前空間、スナップショットという限界を含めて解釈します。
ssの既定表示、protocol・family・state・endpoint filter、process・timer・memory・TCP詳細:ss(8) manual page