ネットワークのソケット情報を表示するには「ss」コマンドを使用します。
ソケットとは実行中のネットワークプログラム間でデータの送受信を行うための仕組みを言います。
特定の通信先(IPアドレスとポートの組み合わせ)と紐づいた通信拠点をプログラム上に作成し、これを使用しコネクションの確立、データの送受信、切断などを実施します。
Linuxが通信先との具体的な通信手段や手順の詳細を知るための情報となります。
「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エンジニアが自宅で学習ができるオンラインスクール比較 | |