Linux便利コマンド : ss

うめだ
2024-12-06
2024-12-06
目次

はじめに

みなさま、ssコマンドは活用されていますでしょうか。私はまだできていません。

ネットワーク通信におけるソケットの状態を表示させるコマンドです。

ながらくサーバー運用に携わっている方は、netstatコマンドのほうが馴染みがあると思います。
なので、まだ私は、ssでなく、netstatを現役で活用しています。

というわけで、私自身が、netstatコマンドを卒業すべく、ssコマンドを紹介していきます。

といっても、netstatで良く使うオプションがそのまま使えますw

環境

OS : AlmaLinux 8
ssバージョン : 5.18.0

使い方

よく使うオプションはこんな感じかと思います。

オプション 説明
-a --all display all sockets
-t --tcp display only TCP sockets
-n --numeric don't resolve service names
-r --resolve resolve host names
-l --listening display listening sockets
-4 --ipv4 display only IP version 4 sockets


まずは、-a を付けて実行してみます。

$ ss -a
Netid State     Recv-Q Send-Q                                            Local Address:Port                     Peer Address:Port     Process
nl    UNCONN    0      0                                                          rtnl:kernel                               *
nl    UNCONN    0      0                                                          rtnl:NetworkManager/1038                  *

..省略..

u_dgr UNCONN    0      0                                                             * 28220                               * 11759
u_str ESTAB     0      0                                   /run/systemd/journal/stdout 24017                               * 23307
udp   UNCONN    0      0                                                       0.0.0.0:sunrpc                        0.0.0.0:*
udp   UNCONN    0      0                                                     127.0.0.1:323                           0.0.0.0:*
udp   UNCONN    0      0                                                          [::]:sunrpc                           [::]:*
udp   UNCONN    0      0                                                         [::1]:323                              [::]:*
tcp   LISTEN    0      100                                                     0.0.0.0:pop3                          0.0.0.0:*
tcp   LISTEN    0      100                                                     0.0.0.0:imap                          0.0.0.0:*
tcp   LISTEN    0      128                                                     0.0.0.0:sunrpc                        0.0.0.0:*
tcp   LISTEN    0      128                                                     0.0.0.0:http                          0.0.0.0:*
tcp   LISTEN    0      32                                                      0.0.0.0:ftp                           0.0.0.0:*
tcp   LISTEN    0      128                                                     0.0.0.0:ssh                           0.0.0.0:*
tcp   LISTEN    0      128                                                     0.0.0.0:https                         0.0.0.0:*
tcp   LISTEN    0      32                                                      0.0.0.0:ftps                          0.0.0.0:*
tcp   LISTEN    0      100                                                     0.0.0.0:imaps                         0.0.0.0:*
tcp   LISTEN    0      100                                                     0.0.0.0:pop3s                         0.0.0.0:*
tcp   ESTAB     0      0                                                   192.0.2.129:ssh                       192.0.2.114:51138
tcp   LISTEN    0      128                                                           *:mysql                               *:*
tcp   LISTEN    0      100                                                        [::]:pop3                             [::]:*
tcp   LISTEN    0      100                                                        [::]:imap                             [::]:*
tcp   LISTEN    0      128                                                        [::]:sunrpc                           [::]:*
tcp   LISTEN    0      128                                                        [::]:ssh                              [::]:*
tcp   LISTEN    0      100                                                        [::]:imaps                            [::]:*
tcp   LISTEN    0      100                                                        [::]:pop3s                            [::]:*
$

すべてのソケットの状態が表示されます。

-t をつけることで、TCP通信のソケットのみを表示させることができます。

$ ss -at
State             Recv-Q         Send-Q                   Local Address:Port                       Peer Address:Port          Process
LISTEN            0              100                            0.0.0.0:pop3                            0.0.0.0:*
LISTEN            0              100                            0.0.0.0:imap                            0.0.0.0:*
LISTEN            0              128                            0.0.0.0:sunrpc                          0.0.0.0:*
LISTEN            0              128                            0.0.0.0:http                            0.0.0.0:*
LISTEN            0              32                             0.0.0.0:ftp                             0.0.0.0:*
LISTEN            0              128                            0.0.0.0:ssh                             0.0.0.0:*
LISTEN            0              128                            0.0.0.0:https                           0.0.0.0:*
LISTEN            0              32                             0.0.0.0:ftps                            0.0.0.0:*
LISTEN            0              100                            0.0.0.0:imaps                           0.0.0.0:*
LISTEN            0              100                            0.0.0.0:pop3s                           0.0.0.0:*
ESTAB             0              0                          192.0.2.129:ssh                         192.0.2.114:51138
LISTEN            0              128                                  *:mysql                                 *:*
LISTEN            0              100                               [::]:pop3                               [::]:*
LISTEN            0              100                               [::]:imap                               [::]:*
LISTEN            0              128                               [::]:sunrpc                             [::]:*
LISTEN            0              128                               [::]:ssh                                [::]:*
LISTEN            0              100                               [::]:imaps                              [::]:*
LISTEN            0              100                               [::]:pop3s                              [::]:*
$

-n をつけると、ポートの情報をサービス名でなく、ポート番号での表示にすることができます。

$ ss -atn
State             Recv-Q         Send-Q                   Local Address:Port                       Peer Address:Port          Process
LISTEN            0              100                            0.0.0.0:110                             0.0.0.0:*
LISTEN            0              100                            0.0.0.0:143                             0.0.0.0:*
LISTEN            0              128                            0.0.0.0:111                             0.0.0.0:*
LISTEN            0              128                            0.0.0.0:80                              0.0.0.0:*
LISTEN            0              32                             0.0.0.0:21                              0.0.0.0:*
LISTEN            0              128                            0.0.0.0:22                              0.0.0.0:*
LISTEN            0              128                            0.0.0.0:443                             0.0.0.0:*
LISTEN            0              32                             0.0.0.0:990                             0.0.0.0:*
LISTEN            0              100                            0.0.0.0:993                             0.0.0.0:*
LISTEN            0              100                            0.0.0.0:995                             0.0.0.0:*
ESTAB             0              0                          192.0.2.129:22                          192.0.2.114:51138
LISTEN            0              128                                  *:3306                                  *:*
LISTEN            0              100                               [::]:110                                [::]:*
LISTEN            0              100                               [::]:143                                [::]:*
LISTEN            0              128                               [::]:111                                [::]:*
LISTEN            0              128                               [::]:22                                 [::]:*
LISTEN            0              100                               [::]:993                                [::]:*
LISTEN            0              100                               [::]:995                                [::]:*
$

-r をつけるとIPアドレスの表示をホスト名での表示にすることができます。

$ ss -atnr
State            Recv-Q        Send-Q                          Local Address:Port                      Peer Address:Port        Process
LISTEN           0             100                                   0.0.0.0:110                            0.0.0.0:*
LISTEN           0             100                                   0.0.0.0:143                            0.0.0.0:*
LISTEN           0             128                                   0.0.0.0:111                            0.0.0.0:*
LISTEN           0             128                                   0.0.0.0:80                             0.0.0.0:*
LISTEN           0             32                                    0.0.0.0:21                             0.0.0.0:*
LISTEN           0             128                                   0.0.0.0:22                             0.0.0.0:*
LISTEN           0             128                                   0.0.0.0:443                            0.0.0.0:*
LISTEN           0             32                                    0.0.0.0:990                            0.0.0.0:*
LISTEN           0             100                                   0.0.0.0:993                            0.0.0.0:*
LISTEN           0             100                                   0.0.0.0:995                            0.0.0.0:*
ESTAB            0             0                          test.example.co.jp:22                         192.0.2.114:51138
LISTEN           0             128                                         *:3306                                 *:*
LISTEN           0             100                                      [::]:110                               [::]:*
LISTEN           0             100                                      [::]:143                               [::]:*
LISTEN           0             128                                      [::]:111                               [::]:*
LISTEN           0             128                                      [::]:22                                [::]:*
LISTEN           0             100                                      [::]:993                               [::]:*
LISTEN           0             100                                      [::]:995                               [::]:*
$

-l はリッスンしているソケットのみを表示することができます。

$ ss -atl
State           Recv-Q          Send-Q                   Local Address:Port                       Peer Address:Port          Process
LISTEN          0               100                            0.0.0.0:pop3                            0.0.0.0:*
LISTEN          0               100                            0.0.0.0:imap                            0.0.0.0:*
LISTEN          0               128                            0.0.0.0:sunrpc                          0.0.0.0:*
LISTEN          0               128                            0.0.0.0:http                            0.0.0.0:*
LISTEN          0               32                             0.0.0.0:ftp                             0.0.0.0:*
LISTEN          0               128                            0.0.0.0:ssh                             0.0.0.0:*
LISTEN          0               128                            0.0.0.0:https                           0.0.0.0:*
LISTEN          0               32                             0.0.0.0:ftps                            0.0.0.0:*
LISTEN          0               100                            0.0.0.0:imaps                           0.0.0.0:*
LISTEN          0               100                            0.0.0.0:pop3s                           0.0.0.0:*
LISTEN          0               128                                  *:mysql                                 *:*
LISTEN          0               100                               [::]:pop3                               [::]:*
LISTEN          0               100                               [::]:imap                               [::]:*
LISTEN          0               128                               [::]:sunrpc                             [::]:*
LISTEN          0               128                               [::]:ssh                                [::]:*
LISTEN          0               100                               [::]:imaps                              [::]:*
LISTEN          0               100                               [::]:pop3s                              [::]:*
$

-4 をつけることで、ipv4のソケットのみを表示することができます。

$ ss -atl4
State           Recv-Q          Send-Q                   Local Address:Port                       Peer Address:Port          Process
LISTEN          0               100                            0.0.0.0:pop3                            0.0.0.0:*
LISTEN          0               100                            0.0.0.0:imap                            0.0.0.0:*
LISTEN          0               128                            0.0.0.0:sunrpc                          0.0.0.0:*
LISTEN          0               128                            0.0.0.0:http                            0.0.0.0:*
LISTEN          0               32                             0.0.0.0:ftp                             0.0.0.0:*
LISTEN          0               128                            0.0.0.0:ssh                             0.0.0.0:*
LISTEN          0               128                            0.0.0.0:https                           0.0.0.0:*
LISTEN          0               32                             0.0.0.0:ftps                            0.0.0.0:*
LISTEN          0               100                            0.0.0.0:imaps                           0.0.0.0:*
LISTEN          0               100                            0.0.0.0:pop3s                           0.0.0.0:*
$

まとめ

いかがでしたか?

netstatの使い方とほとんど変わらないと思います。すんなりssコマンドに乗り換えれそうですね。

実際のサーバー運用では、Webサーバーへのアクセスでタイムアウトを検知した場合、どういったアクセスが443番ポートに接続しているか、また接続元IPから、大量に同時接続しているIPはないか等の調査において、活躍してくれるはずです。

ぜひ、ssコマンドを活用してみてください。