【ss】Linuxコマンド_ネットワークのソケット情報の表示

ネットワークのソケット情報を表示するには「ss」コマンドを使用します。

ソケットとは実行中のネットワークプログラム間でデータの送受信を行うための仕組みを言います。
特定の通信先(IPアドレスとポートの組み合わせ)と紐づいた通信拠点をプログラム上に作成し、これを使用しコネクションの確立、データの送受信、切断などを実施します。

Linuxが通信先との具体的な通信手段や手順の詳細を知るための情報となります。




↓↓↓ITエンジニアのおすすめ学習・開発環境の詳細へ↓↓↓

「ss」コマンドの使い方(Linux)

Linuxにおけるネットワークのソケット情報を表示するための「ss」コマンドの表示例は以下となります。
「ss」コマンドは接続が確立されているソケットの一覧を表示します。

[root@centos8 ~]# ss
Netid     State      Recv-Q      Send-Q                             Local Address:Port             Peer Address:Port       
u_str     ESTAB      0           0                                              * 197094                      * 198007     
u_str     ESTAB      0           0                                              * 197087                      * 198001     

------中略------   

u_str     ESTAB      0           0                                              * 195091                      * 195676     
tcp       ESTAB      0           0                                     172.17.0.2:ssh                172.17.0.1:63018   

「ss」コマンドの見方

「ss」コマンドで表示されるかく箇所の表示は何を表しているのかを以下にまとめました。

[root@centos8 ~]# ss
Netid     State      Recv-Q      Send-Q                             Local Address:Port             Peer Address:Port  

それぞれの表示箇所は以下のようになります。

名称 説明
Netid プロトコル名(tcp、udp、u_str…)
State ソケットの状態
Recv-Q 受信しなかったデータのバイト数
Send-Q 送信しなかったデータのバイト数
Local Address:Port ソケットに紐づくローカルホスト名またはIPアドレス、ポート番号
Peer Address:Port リモートホストのホスト名またはIPアドレス、ポート番号

必要な情報だけを「オプション」を使用して表示する

「ss」コマンドでは上記のように、UNIXドメインソケット(u_str)、INETドメインソケット(tcp、udpなど)が表示されます。

「ss」コマンドで標準では接続が確立されているソケットが表示されますが、それだけではなくオプションを使用することで、それ以外のソケット情報を表示することが可能となります。

例えば「-a」オプションを使用することにより、全てのソケット、「ーl」オプションで接続待ち状態のソケットだけを表示することができます。

名称 説明
-a 全てのソケット情報を表示
-s 各プロトコルの統計情報を表示
-l 接続待ち状態のソケットのみを表示
-n ネットワークアドレスを表示
-t TCPソケット情報を表示
-u UDPソケット情報を表示
-x UNIXドメインソケット情報を表示

「ss」コマンドオプション

「ss」コマンドのオプションは以下となります。

[root@centos8 /]# ss --help
Usage: ss [ OPTIONS ]
       ss [ OPTIONS ] [ FILTER ]
   -h, --help          this message
   -V, --version       output version information
   -n, --numeric       don't resolve service names
   -r, --resolve       resolve host names
   -a, --all           display all sockets
   -l, --listening     display listening sockets
   -o, --options       show timer information
   -e, --extended      show detailed socket information
   -m, --memory        show socket memory usage
   -p, --processes     show process using socket
   -i, --info          show internal TCP information
       --tipcinfo      show internal tipc socket information
   -s, --summary       show socket usage summary
       --tos           show tos and priority information
   -b, --bpf           show bpf filter socket information
   -E, --events        continually display sockets as they are destroyed
   -Z, --context       display process SELinux security contexts
   -z, --contexts      display process and socket SELinux security contexts
   -N, --net           switch to the specified network namespace name

   -4, --ipv4          display only IP version 4 sockets
   -6, --ipv6          display only IP version 6 sockets
   -0, --packet        display PACKET sockets
   -t, --tcp           display only TCP sockets
   -S, --sctp          display only SCTP sockets
   -u, --udp           display only UDP sockets
   -d, --dccp          display only DCCP sockets
   -w, --raw           display only RAW sockets
   -x, --unix          display only Unix domain sockets
       --tipc          display only TIPC sockets
       --vsock         display only vsock sockets
   -f, --family=FAMILY display sockets of type FAMILY
       FAMILY := {inet|inet6|link|unix|netlink|vsock|tipc|xdp|help}

   -K, --kill          forcibly close sockets, display what was closed
   -H, --no-header     Suppress header line
   -O, --oneline       socket's data printed on a single line

   -A, --query=QUERY, --socket=QUERY
       QUERY := {all|inet|tcp|udp|raw|unix|unix_dgram|unix_stream|unix_seqpacket|packet|netlink|vsock_stream|vsock_dgram|tipc}[,QUERY]

   -D, --diag=FILE     Dump raw information about TCP sockets to FILE
   -F, --filter=FILE   read filter information from FILE
       FILTER := [ state STATE-FILTER ] [ EXPRESSION ]
       STATE-FILTER := {all|connected|synchronized|bucket|big|TCP-STATES}
         TCP-STATES := {established|syn-sent|syn-recv|fin-wait-{1,2}|time-wait|closed|close-wait|last-ack|listening|closing}
          connected := {established|syn-sent|syn-recv|fin-wait-{1,2}|time-wait|close-wait|last-ack|closing}
       synchronized := {established|syn-recv|fin-wait-{1,2}|time-wait|close-wait|last-ack|closing}
             bucket := {syn-recv|time-wait}
                big := {established|syn-sent|fin-wait-{1,2}|closed|close-wait|last-ack|listening|closing}

以上が「ss」コマンドの使い方となります。

エンジニアのオンライン学習

エンジニアにおすすめのオンライン教材比較
ITエンジニアが自宅で学習ができるオンラインスクール比較

エンジニアのおすすめ学習「Progate」と「Udemy」比較

VPS_比較
最新情報をチェックしよう!