ssツールは、Linuxのネットワークソケットに関する情報を表示するために使用されるCLIコマンドです。 ssはソケット統計を表します。これはnetstatに似たツールであり、TCPや状態情報などの詳細情報を表示できます。
ssツールはiproute2パッケージに付属しています。 PACKET、TCP、UDP、DCCP、RAW、およびUnixドメインソケットの統計を表示できます。
このチュートリアルでは、ssコマンドについて学習します。 Linuxで便利な例を紹介します。
1。ネットワーク接続を一覧表示する
オプションを指定しないssコマンドは、接続を確立したすべての開いている非リッスンソケット(TCP / UNIX / UDPなど)を一覧表示します。
$ ss
- Netid:ソケットのタイプを表示します。
- 状態:ソケットが確立されている(ESTAB)、接続されていない(UNCONN)、またはリスニングしている(LISTEN)場合、ソケットの状態を表示します。
- Recv-Q:キューで受信したパケットの数を表示します。
- Send-Q:キュー内の送信済みパケットの数を表示します。
- ローカルアドレス:ポート:ローカルマシンとポートのアドレスを表示します。
- ピアアドレス:ポート:リモートマシンとポートのアドレスを表示します。
オプションと組み合わせてssコマンドを使用すると、より詳細な情報を取得できます。同時に複数のオプションを選択することもできます。
ssコマンド構文:
$ ss [Option]
$ ss [Option1] [Option2] [Option3]
2。リスニングソケットのリスト
-l
を使用してリスニングソケットのリストを表示するには または--listen
オプション。
$ ss -l
3。すべてのソケットを一覧表示します
-a
を使用して、すべてのリスニングネットワーク接続と非リスニングネットワーク接続を一覧表示できます。 または-all
オプション。
$ ss -a
4。 TCP接続のリスト
TCPソケット接続を表示するには、-t
を使用します または--tcp
オプション。
$ ss -t
すべてのTCP接続のリストを表示するには 、-a
を使用できます および-t
オプション。これには、ソケットのすべての状態が含まれます。
$ ss -at
すべてのリスニング状態のTCP接続を表示するには、-l
を組み合わせます。 および-t
オプション。
$ ss -alt
5。 ListUDP接続
UDPソケット接続を表示するには、-u
を使用します または--udp
オプション。
$ ss -u
すべてのUDP接続のリストを表示するには 、-a
を使用します および-u
オプション。これには、ソケットのすべての状態が含まれます。
$ ss -au
-l
を組み合わせることができます および-u
すべてのリスニング状態のUDP接続を表示します 。
$ ss -lu
6。 Unixソケットのリスト
すべてのUnixソケットを表示するには、ssコマンドを-f unix
と一緒に使用できます。 または-x
。
$ ss -f unix
7。 Rawソケットのリスト
すべてのRawソケットを表示するには、-w
を使用できます。 または--rawオプション。
$ ss -w
8。 IPアドレスの接続を一覧表示する
ssコマンドを使用して、特定の宛先または送信元IPアドレスのリスト接続を表示できます。
たとえば、宛先IPアドレスの接続を一覧表示するには:
$ ss dst 13.227.138.30
たとえば、送信元IPアドレスの接続を一覧表示するには:
$ ss src 192.168.18.151
9。 IPv4およびIPv6ソケット接続のリスト
IPv4ソケット接続のリストを表示する場合は、-4オプションと-6を使用してIPv6ソケット接続のリストを表示します。
IPv4ソケット接続リストを表示するには:
$ ss -4
IPv6ソケット接続リストを表示するには:
$ ss -6
すべてのIPv4TCP接続を一覧表示するには、次の例を使用できます。
$ ss -at4
10。プロセスを特定する
ソケットのプロセスを見つけることができます -p
を使用する ssコマンドと一緒にオプション。プロセスを識別するには、sudo権限が必要です。
$ sudo ss -t -p
11。ホスト名が解決されていない接続を一覧表示する
数値のアドレス/ポートを解決するには、-r(解決)オプションを使用します。一方、-n
オプションはサービス名を解決しようとしません。
この例では、2つの違いを確認できます。
$ ss -tn
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
ESTAB 0 0 74.208.235.196:22 48.192.234.17:60216
$ ss -tr
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
ESTAB 0 64 li82-186.members.linode.com:ssh n47-172-231-17.sun4.vic.optusnet.com.au:60317
$
12。接続によるフィルタリング
フィルタを適用して特定の情報を出力する方法の例をいくつか確認してみましょう。
状態リスニングでTCP接続をフィルタリングするには、次のように入力します。
$ ss -t state listening
確立されたsshポート接続を表示するには:
$ ss -tr state established '( dport = :22 or sport = :22 )'
grepコマンドの従来の方法でフィルタリングすることもできます。ここでは、状態でリッスンしているすべてのTCP接続を表示しています:
$ ss -at | grep LISTEN
ssコマンドオプション
ssコマンドは、要件に応じて表示される出力を制御するためのさまざまなオプションを提供します。 -hまたは--helpをssコマンドと一緒に使用して、sscommand-utilityで使用可能な基本オプションを表示できます。
$ ss -h
ssvsnetstatコマンド
ssツールはiproute2パッケージに含まれており、ほとんどのLinuxディストリビューションではデフォルトです。 netstatを使用するには、すでに非推奨になっているnet-toolsをインストールする必要があります。 ssコマンドは、カーネルから直接フェッチするため、はるかに高速です。 ssはnetstatの完全な置き換えではなく、netstatコマンドの一部がipコマンドに置き換えられています。
結論
このチュートリアルでは、いくつかの便利な例を使用してssコマンドについて学習しました。詳細については、ssコマンドのマニュアルページを参照してください。