どーも!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コマンドのオプション
オプション | 説明 |
---|---|
-t | TCPソケットを表示します |
-u | UDPソケットを表示します |
-l | リスニング状態のソケットのみを表示します |
-n | アドレスやポート番号を名前解決せずに数値で表示します |
-p | 各接続に関連するプロセス情報を表示します |
-a | すべてのソケット(リスニング以外も含む)を表示します |
-s | ソケットの統計情報を表示します |
-r | ルーティング情報を表示します |
-k | カーネルのソケット情報を表示します(デバッグ目的)。 |
-4 | IPv4ソケットのみを表示します |
-6 | IPv6ソケットのみを表示します |
補足
ss
コマンドは、iproute2
パッケージに含まれており、ほとんどのモダンなLinuxディストリビューションに標準でインストールされていますnetstat
コマンドよりも効率的で、高速に情報を取得できるため、現在ではss
の使用が推奨されています
以上です!
ここまで読んでいただきありがとうございました!
コメント