SS

Section: Maintenance Commands (8)
Index Return to Main Contents
 

名前

ss - ソケットを調査するもう 1 つのユーティリティ  

書式

ss [options] [ FILTER ]  

説明

ss はソケットの統計 (socket statistics) をダンプするのに使われる。 これは netstat と同様の情報を表示することができる。 このツールは、他のツールより多くの TCP と状態の情報を表示できる。

 

オプション

オプションが指定されない場合、ss は接続が確立された オープンされてリッスンしていないソケット (例えば、TCP/UNIX/UDP) のリストを表示する。
-h, --help
オプションのサマリーを表示する。
-V, --version
バージョン情報を出力する。
-H, --no-header
ヘッダ行の出力を抑止する。
-n, --numeric
サービス名の解決を行わない。
-r, --resolve
数値のアドレス/ポートの解決を行う。
-a, --all
リッスンしているソケットと、リッスンしていないソケット (TCP では接続を確立したことを意味する) の両方を表示する。
-l, --listening
リッスンしているソケットのみを表示する (これはデフォルトでは省略される)。
-o, --options
タイマー情報を表示する。 TCP プロトコルでは出力フォーマットは以下のとおり。

timer:(<timer_name>,<expire_time>,<retrans>)

<timer_name>
タイマーの名前。 5 種類のタイマー名がある。

on : 以下の 3 つのいずれかのタイマー: TCP retrans タイマー, TCP early retrans タイマー、tail loss probe タイマー

keepalive: tcp keep alive タイマー

timewait: timewait stage タイマー

persist: zero window probe タイマー

unknown: 上記のどのタイマーでもない

<expire_time>
タイマーが期限切れするまでの時間

<retrans>
再送信が行われた回数。
-e, --extended
詳細なソケット情報を表示する。 出力フォーマットは以下のとおり。

uid:<uid_number> ino:<inode_number> sk:<cookie>

<uid_number>
ソケットが所属するユーザ ID

<inode_number>
VFS 上のソケットの inode 番号

<cookie>
ソケットの UUID
-m, --memory
ソケットのメモリ使用情報。 出力フォーマットは以下のとおり。

skmem:(r<rmem_alloc>,rb<rcv_buf>,t<wmem_alloc>,tb<snd_buf>,

f<fwd_alloc>,w<wmem_queued>,

o<opt_mem>,bl<back_log>)

<rmem_alloc>
受信パケットのために確保されたメモリ。

<rcv_buf>
受信パケットのために確保可能な総メモリ。

<wmem_alloc>
(レイヤー 3 に送信される) 送信パケットに使われるメモリ。

<snd_buf>
送信パケットのために確保可能な総メモリ。

<fwd_alloc>
キャッシュとしてソケットのために確保されたが、 送受信パケットにまだ使われていないメモリ。 送受信パケットにメモリが必要な場合、追加のメモリを確保する 前に、このキャッシュのメモリが使われる。

<wmem_queued>
(レイヤー 3 に送信されない) 送信パケットのために確保されたメモリ。

<ropt_mem>
ソケットオプションを格納するために使われるメモリ。 例えば、TCP MD5 シグネチャのキー。

<back_log>
sk バックログキューに使われるメモリ。 プロセスコンテキストでは、プロセスがパケットを 受信している時に、 新しいパケットが受信すると、sk バックログキューに入れられる。 これにより、プロセスは即座にパケットを受信できる。
-p, --processes
ソケットを使っているプロセスを表示する。
-i, --info
内部 TCP 情報を表示する。 以下のフィールドが表示される。

ts
タイムスタンプオプションが設定されている場合、文字列 "ts" が表示される。

sack
sack オプションが設定されている場合、文字列 "sack" が表示される。

ecn
明示的な混雑通知 (explicit congestion notification) オプションが設定されている場合、 文字列 "ecn" が表示される。

ecnseen
受信パケットに saw ecn フラグが設定されている場合、 文字列 "ecnseen" が表示される。

fastopen
fastopen オプションが設定されている場合、 文字列 "fastopen" が表示される。

cong_alg
congestion アルゴリズム名。 デフォルトの congestion アルゴリズム名は、"cubic" である。

wscale:<snd_wscale>:<rcv_wscale>
ウィンドウスケールオプションが使われている場合、 このフィールドには、送信スケールファクターと 受信スケールファクターが表示される。

rto:<icsk_rto>
tcp 再送信のタイムアウト値。単位はミリ秒。

backoff:<icsk_backoff>
指数関数的に増える再送信タイムアウト (exponential backoff re-transmission) として使われる。 実際の再送信タイムアウト値は、icsk_rto << icsk_backoff である。

rtt:<rtt>/<rttvar>
rtt はラウンドトリップ時間の平均値であり、rttvar は rrt の平均偏差である。 単位はミリ秒。

ato:<ato>
ack タイムアウト。 単位はミリ秒。 遅延 ack モードで使われる。

mss:<mss>
最大セグメントサイズ

cwnd:<cwnd>
congestion ウインドウサイズ

pmtu:<pmtu>
パス MTU 値

ssthresh:<ssthresh>
tcp congestion ウィンドウのスロースタートのしきい値

bytes_acked:<bytes_acked>
ack されたバイト数

bytes_received:<bytes_received>
受信バイト数

segs_out:<segs_out>
送信セグメント数

segs_in:<segs_in>
受信セグメント数

send <send_bps>bps
送信 bps

lastsnd:<lastsnd>
最後のパケットを送信してからの時間。単位はミリ秒。

lastrcv:<lastrcv>
最後のパケットを受信してからの時間。単位はミリ秒。

lastack:<lastack>
最後の ack を受信してからの時間。単位はミリ秒。

pacing_rate <pacing_rate>bps/<max_pacing_rate>bps
ペーシングレート (pacing rate) と最大ペーシングレート

rcv_space:<rcv_space>
TCP 内部チューニングソケットの受信バッファのヘルパー変数
--tos
ToS と優先度情報を表示する。 以下のフィールドが表示される。

tos
IPv4 Type-of-Service バイト

tclass
IPv6 Traffic Class バイト

class_id
net_cls cgroup で設定されるクラス ID。 クラスが 0 の場合、SO_PRIORITY で設定される優先度が表示される。
-K, --kill
ソケットを強制的にクローズする。 このオプションは、クローズに成功したソケットと、 カーネルがソケットのクローズをサポートしておらず、 暗黙のうちにスキップされたソケットを表示する。 これは IPv4 と IPv6 ソケットのみをサポートする。
-s, --summary
統計のサマリーを表示する。 このオプションはさまざまな情報源からサマリーを得るために、 ソケットのリストを解析しない。 これはソケットの量が膨大で、/proc/net/tcp を解析するのが苦痛な場合に、役に立つ。
-E, --events
ソケットが破棄 (desctory) されたときに、連続して表示する。
-Z, --context
-p と同様であるが、プロセスのセキュリティコンテキストを表示する。

netlink(7) ソケットについて、プロセスコンテキストの初期化は、 以下のように表示される。

1.
有効な PID がある場合、プロセスコンテキストを表示する。
2.
送信先がカーネル (pid = 0) の場合、 カーネルの初期コンテキストを表示する。
3.
カーネルまたは netlink ユーザによって一意な識別子が確保された場合、 コンテキスト "unavailable" を表示する。 これは一般的にプロセスが 1 つ以上のアクティブな netlink ソケットを持っていることを意味する。
-z, --contexts
-Z と同様であるが、ソケットコンテキストも表示する。 ソケットコンテキストは、関連する inode から取得され、 カーネルが保持する実際のソケットコンテキストではない。 ソケットは生成されたプロセスのコンテキストでラベル付けされる。 しかし、表示されるコンテキストはポリシールール、 適用されるトランジションルールのタイプと範囲を反映しており、 有用な参考情報となる。
-N NSNAME, --net=NSNAME
指定したネットワークネームスペースの名前に切り替える。
-b, --bpf
ソケット BPF フィルターを表示する (管理者だけがこれらの情報を取得できる)。
-4, --ipv4
IP version 4 ソケットのみを表示する (-f inet のエイリアス)。
-6, --ipv6
IP version 6 ソケットのみを表示する (-f inet6 のエイリアス)。
-0, --packet
PACKET ソケットを表示する (-f link のエイリアス)。
-t, --tcp
TCP ソケットを表示する。
-u, --udp
UDP ソケットを表示する。
-d, --dccp
DCCP ソケットを表示する。
-w, --raw
RAW ソケットを表示する。
-x, --unix
Unix ドメインソケットを表示する (-f unix のエイリアス)。
-S, --sctp
SCTP ソケットを表示する。
--vsock
vsock ソケットを表示する (-f vsock のエイリアス)。
--xdp
XDP ソケットを表示する (-f xdp のエイリアス)。
-f FAMILY, --family=FAMILY
タイプ FAMILY のソケットを表示する。 現在のところ以下のファミリーがサポートされている。 unix, inet, inet6, link, netlink, vsock, xdp。
-A QUERY, --query=QUERY, --socket=QUERY
ダンプするソケットテーブルのカンマ区切りのリスト。 以下の識別子が利用できる。 all, inet, tcp, udp, raw, unix, packet, netlink, unix_dgram, unix_stream, unix_seqpacket, packet_raw, packet_dgram, dccp, sctp, vsock_stream, vsock_dgram, xdp。 リスト中のどのアイテムもオプションとしてエクスクラメーションマーク (!) を前に付けて、ダンプするソケットテーブルから除外できる。
-D FILE, --diag=FILE
何も表示せず、フィルタを適用した後の TCP ソケットについての生情報を FILE にダンプする。 FILE が - の場合、標準出力が使われる。
-F FILE, --filter=FILE
フィルタ情報を FILE から読み込む。 FILE の各行は 1 つのコマンドラインオプションとして解釈される。 FILE が - の場合、標準入力が使われる。
FILTER := [ state STATE-FILTER ] [ EXPRESSION ]
フィルターについての詳細は、正式なドキュメントを参照してほしい。

 

STATE-FILTER

STATE-FILTER を使うと、マッチングさせる任意の状態のセットを構築できる。 書式は、キーワード状態と除外の後に、状態の識別子が続く。

指定可能な識別子は以下のとおり。

すべての標準的な TCP 状態: established, syn-sent, syn-recv, fin-wait-1, fin-wait-2, time-wait, closed, close-wait, last-ack, listening, closing.

all - すべての状態。

connected - listeningclosed を除く、すべての状態。

synchronized - connected から syn-sent を除いたすべての状態。

bucket - minisockets として管理されている状態。 つまり、 time-waitsyn-recv

big - bucket の反対。

 

使用例

ss -t -a
すべての TCP ソケットを表示する。
ss -t -a -Z
SELinux セキュリティコンテキストのすべての TCP ソケットを表示する。
ss -u -a
すべての UDP ソケットを表示する。
ss -o state established '( dport = :ssh or sport = :ssh )'
確立されたすべての ssh 接続を表示する。
ss -x src /tmp/.X11-unix/*
X サーバーに接続されたすべてのローカルプロセスを見つける。
ss -o state fin-wait-1 '( sport = :http or sport = :https )' dst 193.233.7/24
apache からネットワーク 193.233.7/24 への 状態 FIN-WAIT-1 の TCP ソケットをすべてリスト表示し、タイマーも表示する。
ss -a -A 'all,!tcp'
TCP 以外のすべてのソケットテーブルから、すべての状態の ソケットをリスト表示する。
 

関連項目

ip(8),
RFC 793 - https://tools.ietf.org/rfc/rfc793.txt (TCP 状態)

 

著者

ss は Alexey Kuznetsov, <kuznet@ms2.inr.ac.ru> によって書かれた。

このマニュアルは Michael Prokop <mika@grml.org> によって、 Debian プロジェクトのために書かれた (しかし、他のディストリビューションでも使えるだろう)。


 

Index

名前
書式
説明
オプション
STATE-FILTER
使用例
関連項目
著者

This document was created by man2html, using the manual pages.
Time: 02:09:54 GMT, July 15, 2019