開発運用

Linux ss コマンドの使い方

ssコマンドは、Linuxでネットワーク接続を調査・分析するために非常に有用なツールです。このコマンドは、netstatコマンドと似た機能を持ちますが、ssはより速く、軽量で、現代的なネットワークトラブルシューティングツールとして広く使用されています。以下では、ssコマンドの基本的な使い方から、オプション、詳細な使用方法について説明します。

1. ssコマンドの基本

ssコマンドは、Linuxシステム上でソケットの状態を表示するツールであり、ネットワーク接続、リスニングソケット、UDPポート、TCP接続の詳細情報などを確認することができます。主にネットワークのトラブルシューティングや監視に使用されます。

基本的な構文:

css
ss [オプション] [フィルター]
  • ssだけを実行すると、デフォルトでTCPソケットの情報が表示されます。
  • より詳細な情報を表示するためには、さまざまなオプションを追加することができます。

2. よく使われるオプション

ssコマンドには多くのオプションがあり、それらを駆使することで必要な情報を素早く取得できます。以下はよく使われるオプションです。

2.1 -t

TCPソケットのみを表示します。

nginx
ss -t

2.2 -u

UDPソケットのみを表示します。

nginx
ss -u

2.3 -l

リスニング状態のソケットのみを表示します。サーバーが接続を待機しているソケットの状態を確認する際に有効です。

nginx
ss -l

2.4 -a

すべてのソケット(リスニング中および接続中のもの)を表示します。

css
ss -a

2.5 -p

プロセスID(PID)とそれに関連するプロセス名を表示します。どのアプリケーションが特定のポートを使用しているかを確認するのに役立ちます。

css
ss -p

2.6 -n

ホスト名やサービス名を解決せず、IPアドレスやポート番号を数値で表示します。これにより、表示が高速化されます。

nginx
ss -n

2.7 -r

ホスト名を逆引きして表示します。これにより、IPアドレスの代わりにホスト名を表示できます。

nginx
ss -r

2.8 -4

IPv4アドレスのみを表示します。

nginx
ss -4

2.9 -6

IPv6アドレスのみを表示します。

nginx
ss -6

2.10 -o

ソケットオプション(タイムアウトなど)を表示します。

nginx
ss -o

2.11 -s

ソケットの統計情報を表示します。各ソケットタイプごとの統計が簡潔に表示されます。

nginx
ss -s

3. ssの使用例

3.1 現在のTCP接続を表示

nginx
ss -t

このコマンドは、現在開かれているTCP接続を一覧表示します。各接続の状態(例えば、ESTABTIME_WAITLISTENなど)が表示されます。

3.2 すべてのリスニングソケットを表示

nginx
ss -l

これにより、リスニング状態のTCPおよびUDPソケットが表示されます。サーバーやサービスが接続待機状態であるポートを確認できます。

3.3 プロセスIDとプロセス名を表示

css
ss -t -p

このコマンドは、TCP接続を使用しているプロセスのIDと名前を表示します。どのアプリケーションがどのポートを使用しているのかを把握するのに有効です。

3.4 特定のポートでリスニングしているソケットを表示

java
ss -t -l sport = :80

このコマンドは、ポート80(HTTP)でリスニングしているTCPソケットのみを表示します。

3.5 現在のUDP接続を表示

nginx
ss -u

これにより、現在のUDP接続が一覧表示されます。UDPはコネクションレスのプロトコルであるため、TCPとは異なり、LISTEN状態の表示はありませんが、各接続の情報を確認できます。

4. 詳細な情報の取得

ssコマンドは単に接続状態を表示するだけでなく、さまざまな詳細情報を提供します。例えば、接続ごとの送受信バイト数や、接続のタイムアウト設定、遅延などを確認することができます。これにより、トラブルシューティングやパフォーマンス分析に非常に役立ちます。

4.1 接続の状態をフィルタリングする

perl
ss -t state established

このコマンドは、状態がESTABLISHED(確立された接続)のTCP接続のみを表示します。

4.2 接続のカウントを表示

nginx
ss -s

ソケットごとの統計情報を表示します。これにより、TCP、UDP、RAWソケットの各統計情報を確認できます。

5. ssnetstatの違い

ssは、netstatの代替ツールとしてよく使用されます。netstatも同様にネットワーク接続を確認するためのツールですが、ssは次の点で優れています。

  • 高速性ssnetstatよりもはるかに高速で、特に大量の接続を持つシステムではその差が顕著に現れます。
  • 軽量性ssはシステムリソースをほとんど消費せず、より効率的に動作します。
  • 詳細な情報ssnetstatよりも多くのオプションを提供し、細かい情報をより簡単に取得できます。

6. まとめ

ssコマンドは、Linuxシステムのネットワーク接続の詳細を調べるための強力で柔軟なツールです。さまざまなオプションを組み合わせることで、特定の接続状態やリスニングソケットの情報を効率的に取得できます。ネットワークのトラブルシューティングや監視の際には、ssコマンドを積極的に活用することが重要です。

Back to top button