【Linux】ポートなどのネットワーク情報を取得する:ss

Linux

どーも!marusukeです!

開いているポートなどのシステムのネットワーク情報を取得するコマンドss(Socket Statistics)についてです!

ssコマンドでできること

ss [オプション]

ssコマンド(Socket Statistics)は、ネットワーク接続の状態を表示するためのコマンドです
このコマンドは、非推奨となったnetstatコマンドの代替として提供され、高速かつ効率的にネットワーク情報を取得することができます

ssコマンドは、システム上のすべてのソケット(TCP、UDP、RAW、UNIXなど)の状態を確認したり、特定のプロセスが使用しているソケットを確認する時に便利です

ssコマンドの使用例

以下は、よく使われるssコマンドの使用例です

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

$ ss -tuln
Netid  State      Recv-Q Send-Q Local Address:Port  Peer Address:Port Process
tcp    LISTEN     0      128    0.0.0.0:22         0.0.0.0:*            
udp    UNCONN     0      0      0.0.0.0:68         0.0.0.0:*            
  • -t:TCPソケットを表示
  • -u:UDPソケットを表示
  • -l:リスニングソケットのみを表示
  • -n:アドレスとポート番号を数値で表示(名前解決を無効化)

2. 特定のポート(例: 80)を使用している接続を表示

$ ss -tuln | grep :80
tcp    LISTEN     0      128    0.0.0.0:80         0.0.0.0:*

この例では、TCPのポート80で待ち受けているプロセスを表示します。

3. 現在のTCP接続の情報を表示

$ ss -t
Netid  State      Recv-Q Send-Q Local Address:Port  Peer Address:Port Process
tcp    ESTAB      0      0      192.168.0.10:22    192.168.0.1:50234  
tcp    TIME-WAIT  0      0      192.168.0.10:8080  192.168.0.5:54123  
  • -t:TCP接続を表示
  • ESTAB:接続確立(Established)の状態
  • TIME-WAIT:接続終了後の一定時間待機している状態

4. ソケットに関連するプロセスを表示

$ ss -tp
Netid  State      Recv-Q Send-Q Local Address:Port  Peer Address:Port Process
tcp    LISTEN     0      128    0.0.0.0:22         0.0.0.0:*          users:(("sshd",pid=1200,fd=3))
tcp    ESTAB      0      0      192.168.0.10:22    192.168.0.1:50234  users:(("sshd",pid=1300,fd=4))
  • -p:プロセス情報を表示
    プロセス名、プロセスID(pid)、ファイルディスクリプタ(fd)が表示されます

5. 詳細なソケット情報を表示

$ ss -s
Total: 512 (kernel 650)
TCP:   128 (estab 10, closed 100, orphaned 0, synrecv 0, timewait 100/50), ports 0

Transport Total     IP        IPv6
*         512       -         -        
RAW       2         1         1        
UDP       10        7         3        
TCP       128       70        58       
INET      140       78        62       
FRAG      0         0         0        
  • -s:ソケットの概要情報(統計)を表示

ssコマンドのオプション

オプション説明
-tTCPソケットを表示します
-uUDPソケットを表示します
-lリスニング状態のソケットのみを表示します
-nアドレスやポート番号を名前解決せずに数値で表示します
-p各接続に関連するプロセス情報を表示します
-aすべてのソケット(リスニング以外も含む)を表示します
-sソケットの統計情報を表示します
-rルーティング情報を表示します
-kカーネルのソケット情報を表示します(デバッグ目的)。
-4IPv4ソケットのみを表示します
-6IPv6ソケットのみを表示します

補足

  • ssコマンドは、iproute2パッケージに含まれており、ほとんどのモダンなLinuxディストリビューションに標準でインストールされています
  • netstatコマンドよりも効率的で、高速に情報を取得できるため、現在ではssの使用が推奨されています

以上です!

ここまで読んでいただきありがとうございました!

コメント

タイトルとURLをコピーしました