ss
1. コマンドの紹介
まずマニュアルを使用してコマンドの紹介情報を表示します
名前
ss - ソケットを調査する別のユーティリティ
説明
ss はソケット統計をダンプするために使用されます。netstat と同様の情報を表示できます
。他のツールよりも多くの TCP および状態情報を表示できます。
ss (ソケット統計) コマンドの主な機能は、ソケット情報を表示することです。netstat コマンドの使用と非常に似ており、ソケット情報を表示するために使用されます。ss コマンドの利点は、TCP と接続ステータスに関するより詳細な情報を表示できることと、より高速で効率的なことです。
2. 文法形式
ss の文法形式は次のとおりです: ss [パラメータ] [フィルタ]
概要
ss [オプション] [フィルター]
3. 基本パラメータ
コマンドの基本的なパラメータは以下の通りですが、今後さらにパラメータが増えていき、もちろんこのコマンドの使い方もかなり豊富になることがわかります。
-n | ドメイン名を解決しない |
-a | すべてのソケットを表示 |
-l | リスニング状態のソケットを表示する |
-o | タイマー情報を表示する |
-e | 詳細なソケット情報を表示する |
-m | ソケットのメモリ状態を表示します |
-p | ソケットを使用したプロセスを表示 |
-私 | 内部 TCP 情報を表示する |
-s | ソケットの使用状況を表示する |
-4 | IPv4ソケット情報を表示する |
-6 | IPv6ソケット情報を表示する |
-0 | PACKETソケット情報の表示 |
-t | TCPソケット情報を表示する |
-u | UDPソケット情報を表示する |
-d | DCCPソケット情報の表示 |
-w | RAWソケット情報を表示する |
-D | 未加工の TCP ソケット情報をファイルにダンプする |
-r | IPとポート番号を解析する |
4. 各列が表す意味
ネット | ネットワーク識別子 |
州 | 各サービスの接続状況 |
受信Q | 受信ソケット (ソケット) キュー内のデータ量 (バイト単位) |
送信Q | 送信ソケット (ソケット) キュー内のデータ量 (バイト単位) |
ローカルアドレス | ローカルコンピュータアドレスを実行する |
ポート | サービスポート |
ピアアドレス | ピアポート |
V. 参考例
1. 確立された接続をリストする
デフォルトでは、ss
パラメーターなしでコマンドのみが使用され、確立されたすべての接続のソケット リスト情報が表示されます。
[root@localhost ~]# ss |wc -l
716
[root@localhost ~]# ss | head -n 3
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
u_str ESTAB 0 0 * 37084 * 37928
u_str ESTAB 0 0 * 36812 * 36814
2. TCPプロトコルのソケット情報をリッスンします。
-l
すべてのtcp
プロトコルのソケットの内容をパラメータでリッスンできます
<pre>[root@localhost ~]# ss -lt
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 100 127.0.0.1:smtp *:*
LISTEN 0 128 *:sunrpc *:*
LISTEN 0 5 192.168.122.1:domain *:*
LISTEN 0 128 *:ssh *:*
LISTEN 0 128 127.0.0.1:ipp *:*
LISTEN 0 100 [::1]:smtp [::]:*
LISTEN 0 128 [::]:sunrpc [::]:*
LISTEN 0 128 [::]:ssh [::]:*
LISTEN 0 128 [::1]:ipp [::]:*
</pre>
3. ホストがリッスンするポートを表示します。
-n
ドメイン名が解決されていないことを示し、IP+ポートの形式が表示されます。
[root@localhost ~]# ss -tnl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 100 127.0.0.1:25 *:*
LISTEN 0 128 *:111 *:*
LISTEN 0 5 192.168.122.1:53 *:*
LISTEN 0 128 *:22 *:*
LISTEN 0 128 127.0.0.1:631 *:*
4. 実行中のプロセスに関する情報を表示する
使用する必要がある-p
パラメータと、 -tl
TCP プロトコルのサービスを示し、リスニング状態にあることを示す情報を組み合わせたもの
[root@localhost ~]# ss -tlp |head -10
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 100 127.0.0.1:smtp *:* users:(("master",pid=1284,fd=13))
LISTEN 0 128 *:sunrpc *:* users:(("rpcbind",pid=704,fd=8))
LISTEN 0 5 192.168.122.1:domain *:* users:(("dnsmasq",pid=1533,fd=6))
LISTEN 0 128 *:ssh *:* users:(("sshd",pid=1176,fd=3))
LISTEN 0 128 127.0.0.1:ipp *:* users:(("cupsd",pid=1168,fd=11))
LISTEN 0 100 [::1]:smtp [::]:* users:(("master",pid=1284,fd=14))
最後の列にはプロセス名、PID、fd ファイル記述子、その他の情報が表示されていることがわかります。知りたいサービス情報を絞り込むこと
もできますgrep
[root@localhost ~]# ss -ltp | grep ssh
LISTEN 0 128 *:ssh *:* users:(("sshd",pid=1176,fd=3))
LISTEN 0 128 [::]:ssh [::]:* users:(("sshd",pid=1176,fd=4))
5. 確立されたすべての情報を表示します
-a
すべての接続情報を表示するにはパラメータが必要です
[root@localhost ~]# ss -a | wc -l
963
[root@localhost ~]# ss | wc -l
716
情報が多すぎるためここでは記載しませんが、すべて表示する場合やデフォルトで表示する場合はさらに情報行が多くなることがわかります。使用するパラメータを
追加することもできます-t -n
[root@localhost ~]# ss -ant
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 100 127.0.0.1:25 *:*
LISTEN 0 128 *:111 *:*
LISTEN 0 5 192.168.122.1:53 *:*
LISTEN 0 128 *:22 *:*
LISTEN 0 128 127.0.0.1:631 *:*
ESTAB 0 0 192.168.157.166:22 192.168.157.213:65011
LISTEN 0 100 [::1]:25 [::]:*
LISTEN 0 128 [::]:111 [::]:*
LISTEN 0 128 [::]:22 [::]:*
LISTEN 0 128 [::1]:631 [::]:*
[root@localhost ~]# ss -nt
State Recv-Q Send-Q Local Address:Port Peer Address:Port
ESTAB 0 0 192.168.157.166:22 192.168.157.213:65011
6. サービスに関する詳細情報を表示する
-o
時刻情報の表示、-m
ソケットで使用される内容の表示、-i
内部 TCP 情報の表示など
[root@localhost ~]# ss -imo | head -2
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
u_str ESTAB 0 0 * 37084 * 37928 skmem:(r0,rb212992,t0,tb212992,f0,w0,o0,bl0,d0)
7. ソケットの使用状況情報を表示する
使用状況情報を表示するために必要な-s
パラメータ
[root@localhost ~]# ss -s
Total: 1711 (kernel 2055)
TCP: 11 (estab 1, closed 1, orphaned 0, synrecv 0, timewait 0/0), ports 0
Transport Total IP IPv6
* 2055 - -
RAW 1 0 1
UDP 11 8 3
TCP 10 6 4
INET 22 14 8
FRAG 0 0 0
8. IPv4情報の表示
使用する必要のあるパラメータ-4
の後にフィルタリングする情報が続き、監視されているサービスのみがここに表示されます。
[root@localhost ~]# ss -4 state listening
Netid Recv-Q Send-Q Local Address:Port Peer Address:Port
tcp 0 100 127.0.0.1:smtp *:*
tcp 0 128 *:sunrpc *:*
tcp 0 5 192.168.122.1:domain *:*
tcp 0 128 *:ssh *:*
tcp 0 128 127.0.0.1:ipp *:*
IPv6 で使用可能な-6
パラメータを表示するには
[root@localhost ~]# ss -6 state listening
Netid Recv-Q Send-Q Local Address:Port Peer Address:Port
tcp 0 100 [::1]:smtp [::]:*
tcp 0 128 [::]:sunrpc [::]:*
tcp 0 128 [::]:ssh [::]:*
tcp 0 128 [::1]:ipp [::]:*
9. リモートとローカルのアドレスとポート番号を一致させる
ここではいくつかのパラメータ形式を使用する必要があります
dst :
フィルタリングされた接続の宛先アドレス
src: フィルタリングされた接続のローカル アドレス
dport: 宛先ポート
Sport: 送信元ポート
リモートアドレスとポート番号を一致させる
ss dst 192.168.157.33
ss dst 192.168.157.33:443
ss dst 192.168.157.33:http
ローカルポートとポート番号を一致させる
ss src 192.168.157.166
ss src 192.168.157.166:22
ss src 192.168.157.166:ssh
9.1 もちろん、ローカルポートとリモートポートを数値で比較することもできます
。
ss dport OP num
ss sport OP num
上記のテキストのOPではこれらを使用できた可能性があります
<= | の | 以下 |
== | 等価 | 同等 |
!= | それはです | 等しくない |
> | GT | 以上 |
< | それ | 未満 |
突然、表内の記号が見慣れたものだと感じませんか? シェル スクリプトを学習したことがある方なら、その記号が何を表しているのか一目でわかるはずです。
使用方法を引き続き示します。
送信元ポートが 50 未満であるポート番号の内容を表示します。
[root@localhost ~]# ss -ntul sport lt 50
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
tcp LISTEN 0 100 127.0.0.1:25 *:*
tcp LISTEN 0 128 *:22 *:*
tcp LISTEN 0 100 [::1]:25 [::]:*
tcp LISTEN 0 128 [::]:22 [::]:*
シンボルを使用する場合は、シンボルの前にエスケープ文字を追加する必要があります。
[root@localhost ~]# ss -ntul sport \< 50
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
tcp LISTEN 0 100 127.0.0.1:25 *:*
tcp LISTEN 0 128 *:22 *:*
tcp LISTEN 0 100 [::1]:25 [::]:*
tcp LISTEN 0 128 [::]:22 [::]:*
要約する
ss コマンドはパラメータが多く、使い方も無数にあるため、上記の内容は一部にすぎませんが、ネットワーク状態情報の表示に関しては、ss と netstat の使い方も知っておく必要があります。上記の内容で良いと思ったら、いいねしてサポートしてください!