ssコマンドは、Linuxでネットワーク接続を調査・分析するために非常に有用なツールです。このコマンドは、netstatコマンドと似た機能を持ちますが、ssはより速く、軽量で、現代的なネットワークトラブルシューティングツールとして広く使用されています。以下では、ssコマンドの基本的な使い方から、オプション、詳細な使用方法について説明します。
1. ssコマンドの基本
ssコマンドは、Linuxシステム上でソケットの状態を表示するツールであり、ネットワーク接続、リスニングソケット、UDPポート、TCP接続の詳細情報などを確認することができます。主にネットワークのトラブルシューティングや監視に使用されます。
基本的な構文:
cssss [オプション] [フィルター]
ssだけを実行すると、デフォルトでTCPソケットの情報が表示されます。- より詳細な情報を表示するためには、さまざまなオプションを追加することができます。
2. よく使われるオプション
ssコマンドには多くのオプションがあり、それらを駆使することで必要な情報を素早く取得できます。以下はよく使われるオプションです。
2.1 -t
TCPソケットのみを表示します。
nginxss -t
2.2 -u
UDPソケットのみを表示します。
nginxss -u
2.3 -l
リスニング状態のソケットのみを表示します。サーバーが接続を待機しているソケットの状態を確認する際に有効です。
nginxss -l
2.4 -a
すべてのソケット(リスニング中および接続中のもの)を表示します。
cssss -a
2.5 -p
プロセスID(PID)とそれに関連するプロセス名を表示します。どのアプリケーションが特定のポートを使用しているかを確認するのに役立ちます。
cssss -p
2.6 -n
ホスト名やサービス名を解決せず、IPアドレスやポート番号を数値で表示します。これにより、表示が高速化されます。
nginxss -n
2.7 -r
ホスト名を逆引きして表示します。これにより、IPアドレスの代わりにホスト名を表示できます。
nginxss -r
2.8 -4
IPv4アドレスのみを表示します。
nginxss -4
2.9 -6
IPv6アドレスのみを表示します。
nginxss -6
2.10 -o
ソケットオプション(タイムアウトなど)を表示します。
nginxss -o
2.11 -s
ソケットの統計情報を表示します。各ソケットタイプごとの統計が簡潔に表示されます。
nginxss -s
3. ssの使用例
3.1 現在のTCP接続を表示
nginxss -t
このコマンドは、現在開かれているTCP接続を一覧表示します。各接続の状態(例えば、ESTAB、TIME_WAIT、LISTENなど)が表示されます。
3.2 すべてのリスニングソケットを表示
nginxss -l
これにより、リスニング状態のTCPおよびUDPソケットが表示されます。サーバーやサービスが接続待機状態であるポートを確認できます。
3.3 プロセスIDとプロセス名を表示
cssss -t -p
このコマンドは、TCP接続を使用しているプロセスのIDと名前を表示します。どのアプリケーションがどのポートを使用しているのかを把握するのに有効です。
3.4 特定のポートでリスニングしているソケットを表示
javass -t -l sport = :80
このコマンドは、ポート80(HTTP)でリスニングしているTCPソケットのみを表示します。
3.5 現在のUDP接続を表示
nginxss -u
これにより、現在のUDP接続が一覧表示されます。UDPはコネクションレスのプロトコルであるため、TCPとは異なり、LISTEN状態の表示はありませんが、各接続の情報を確認できます。
4. 詳細な情報の取得
ssコマンドは単に接続状態を表示するだけでなく、さまざまな詳細情報を提供します。例えば、接続ごとの送受信バイト数や、接続のタイムアウト設定、遅延などを確認することができます。これにより、トラブルシューティングやパフォーマンス分析に非常に役立ちます。
4.1 接続の状態をフィルタリングする
perlss -t state established
このコマンドは、状態がESTABLISHED(確立された接続)のTCP接続のみを表示します。
4.2 接続のカウントを表示
nginxss -s
ソケットごとの統計情報を表示します。これにより、TCP、UDP、RAWソケットの各統計情報を確認できます。
5. ssとnetstatの違い
ssは、netstatの代替ツールとしてよく使用されます。netstatも同様にネットワーク接続を確認するためのツールですが、ssは次の点で優れています。
- 高速性:
ssはnetstatよりもはるかに高速で、特に大量の接続を持つシステムではその差が顕著に現れます。 - 軽量性:
ssはシステムリソースをほとんど消費せず、より効率的に動作します。 - 詳細な情報:
ssはnetstatよりも多くのオプションを提供し、細かい情報をより簡単に取得できます。
6. まとめ
ssコマンドは、Linuxシステムのネットワーク接続の詳細を調べるための強力で柔軟なツールです。さまざまなオプションを組み合わせることで、特定の接続状態やリスニングソケットの情報を効率的に取得できます。ネットワークのトラブルシューティングや監視の際には、ssコマンドを積極的に活用することが重要です。

