ソケットの状態を確認する:ssコマンド

 ネットワーク管理において、ソケットの状態を確認することは、サーバーのパフォーマンスやセキュリティを維持するために非常に重要です。Linuxシステムでは、ネットワーク接続の状態を確認するためのさまざまなツールが用意されていますが、その中でもssコマンドは、高速かつ詳細な情報を提供する強力なツールです。

ssコマンドの概要

 ssコマンドは、ネットワークソケットの情報を表示するための強力なツールです。netstatコマンドに代わるものであり、ソケットの状態や詳細なネットワーク接続情報を高速かつ効率的に確認できます。TCP、UDP、UNIXドメインソケットなど、さまざまなプロトコルに対応しており、ネットワークトラブルシューティングやパフォーマンス分析において重要な役割を果たします。

ソケットの主な状態
状態説明
LISTENサーバーが接続を待機している状態。ソケットは接続要求を待ち受ける。
ESTABLISH接続が確立されている状態。クライアントとサーバー間の通信が行われている。
ソケットの主な状態

【構文】
ss [オプション]

ssコマンドの主なオプション
オプション説明
-nポート番号で表示する。サービス名では表示しない。
-tTCPソケットのみを表示する。
-uUDPソケットのみを表示する。
-a全てのソケット(リスニングと非リスニングの両方)を表示する。
-lリスニングソケットのみを表示する。
-pソケットに関連付けられたプロセスを表示する。
ssコマンドの主なオプション
ssコマンドを使用する場面
  • ネットワーク接続の監視: サーバーのリスニングソケットを確認したり、現在確立されている接続を確認したい場合。
  • トラブルシューティング: ネットワーク接続に問題がある場合、その原因を特定するために使用します。
  • セキュリティ分析: システム上で開いているポートや、それに関連するプロセスを確認し、不正な接続がないかチェックする場合。
ssコマンドの出力例と項目の説明

以下に、ssコマンドの出力例と、それに含まれる項目の説明を示します。

State      Recv-Q Send-Q       Local Address:Port       Peer Address:Port
LISTEN     0      128          0.0.0.0:22               0.0.0.0:*   
ESTAB      0      0            192.168.1.5:ssh          192.168.1.10:49756
項目説明
Stateソケットの状態(LISTEN, ESTABなど)
Recv-Q受信キューのサイズ。受信バッファにある未処理のデータ量を示す。
Send-Q送信キューのサイズ。送信バッファにある未処理のデータ量を示す。
Local Address:Portローカルホストのアドレスとポート番号
Peer Address:Portリモートホストのアドレスとポート番号
ssコマンドの出力項目

コマンドの使用例と解説

1.TCPソケットの状態を表示する。

 このコマンドは、すべてのTCPソケット(リスニングと確立された接続の両方)を表示します。特に、ネットワーク接続状況の確認に役立ちます。

$ ss -at
State   Recv-Q  Send-Q   Local Address:Port      Peer Address:Port  Process 
LISTEN  0       4096     127.0.0.53%lo:domain         0.0.0.0:*             
LISTEN  0       128          127.0.0.1:ipp            0.0.0.0:*             
ESTAB   0       0            10.0.2.15:51058    34.107.243.93:https         
LISTEN  0       128              [::1]:ipp               [::]:* 
2.TCPソケットの状態をホスト名解決なしで表示する。

 このコマンドは、TCPソケットの状態を表示しますが、ホスト名やサービス名の解決を行わず、数値形式でアドレスやポート番号を表示します。これにより、コマンドの実行が高速になります。

$ ss -atn
State   Recv-Q  Send-Q   Local Address:Port     Peer Address:Port  Process  
LISTEN  0       4096     127.0.0.53%lo:53            0.0.0.0:*              
LISTEN  0       128          127.0.0.1:631           0.0.0.0:*              
ESTAB   0       0            10.0.2.15:51058   34.107.243.93:443            
LISTEN  0       128              [::1]:631              [::]:* 

まとめ

 ssコマンドは、Linuxシステムにおけるネットワーク接続の監視とトラブルシューティングに欠かせないツールです。ソケットの状態や関連プロセスの確認が簡単にできるため、ネットワークに関する問題の特定と解決に大いに役立ちます。特に、従来のnetstatコマンドと比べて高速であり、より詳細な情報を提供できるため、日常のネットワーク管理において重宝されます。