8
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ssコマンドに-pantsuをつけるといい感じになる

Posted at

はじめに

ssコマンドのオプションを調べてたときに閃いてしまったので記事にする。
この覚え方ならオプション忘れないだろう。

ssコマンドとは

ソケットの状態表示をするコマンド。
netstatというコマンドでも確認できるらしい。

オプション一覧

オプション 内容 私的覚え方
p ソケットを使ってるプロセスを表示させる processのp
a 接続待ちを含めたすべてのソケットを表示する allのa
n 名前解決を行わない nameのn
t TCPソケットを表示する tcpのt
s 統計情報を表示する statisticsのs
u UDPソケットを表示する udpのu

他にも色んなオプションがあるけど、あえて触れない。
気になる人はman ssや、ss -hで調べたら良いと思う。

実行結果

練習用に立てたVMでコマンドを実行してみた。

$ ss -pantsu
Total: 244
TCP:   19 (estab 5, closed 6, orphaned 0, timewait 2)

Transport Total     IP        IPv6
RAW       0         0         0        
UDP       0         0         0        
TCP       13        11        2        
INET      13        11        2        
FRAG      0         0         0        

Netid               State                    Recv-Q               Send-Q                             Local Address:Port                              Peer Address:Port               Process                                        
tcp                 LISTEN                   0                    128                                      0.0.0.0:8000                                   0.0.0.0:*                                                                 
tcp                 LISTEN                   0                    128                                    127.0.0.1:40801                                  0.0.0.0:*                   users:(("node",pid=3047,fd=18))               
tcp                 LISTEN                   0                    128                                      0.0.0.0:22                                     0.0.0.0:*                                                                 
tcp                 CLOSE-WAIT               0                    0                                      127.0.0.1:40801                                127.0.0.1:51836               users:(("node",pid=3047,fd=21))               
tcp                 CLOSE-WAIT               0                    0                                      127.0.0.1:40801                                127.0.0.1:52198               users:(("node",pid=3047,fd=23))               
tcp                 ESTAB                    0                    220                                192.168.0.101:22                                192.168.0.10:49897                                                             
tcp                 TIME-WAIT                0                    0                                      127.0.0.1:52246                                127.0.0.1:40801                                                             
tcp                 ESTAB                    0                    0                                      127.0.0.1:40801                                127.0.0.1:52250               users:(("node",pid=3047,fd=25))               
tcp                 ESTAB                    0                    0                                      127.0.0.1:40801                                127.0.0.1:52252               users:(("node",pid=8349,fd=20))               
tcp                 TIME-WAIT                0                    0                                      127.0.0.1:52248                                127.0.0.1:40801                                                             
tcp                 ESTAB                    0                    0                                      127.0.0.1:52252                                127.0.0.1:40801                                                             
tcp                 ESTAB                    0                    0                                      127.0.0.1:52250                                127.0.0.1:40801                                                             
tcp                 CLOSE-WAIT               0                    0                                      127.0.0.1:40801                                127.0.0.1:51856               users:(("node",pid=3047,fd=24))               
tcp                 LISTEN                   0                    128                                         [::]:8000                                      [::]:*                                                                 
tcp                 LISTEN                   0                    128                                         [::]:22                                        [::]:*                                                                

統計情報

-sオプションをつけると表示される統計部分。
これ、どういうときに見るんだろう?
不要ならss -pantuにして非表示にしてもいいかもしれない。

Total: 244
TCP:   19 (estab 5, closed 6, orphaned 0, timewait 2)

Transport Total     IP        IPv6
RAW       0         0         0        
UDP       0         0         0        
TCP       13        11        2        
INET      13        11        2        
FRAG      0         0         0        

ソケット情報

メインで確認したい部分はここだろうと思う。

Netid               State                    Recv-Q               Send-Q                             Local Address:Port                              Peer Address:Port               Process                                        
tcp                 LISTEN                   0                    128                                      0.0.0.0:8000                                   0.0.0.0:*                                                                 
tcp                 LISTEN                   0                    128                                    127.0.0.1:40801                                  0.0.0.0:*                   users:(("node",pid=3047,fd=18))               
tcp                 LISTEN                   0                    128                                      0.0.0.0:22                                     0.0.0.0:*                                                                 
tcp                 CLOSE-WAIT               0                    0                                      127.0.0.1:40801                                127.0.0.1:51836               users:(("node",pid=3047,fd=21))               
tcp                 CLOSE-WAIT               0                    0                                      127.0.0.1:40801                                127.0.0.1:52198               users:(("node",pid=3047,fd=23))               
tcp                 ESTAB                    0                    220                                192.168.0.101:22                                192.168.0.10:49897                                                             
tcp                 TIME-WAIT                0                    0                                      127.0.0.1:52246                                127.0.0.1:40801                                                             
tcp                 ESTAB                    0                    0                                      127.0.0.1:40801                                127.0.0.1:52250               users:(("node",pid=3047,fd=25))               
tcp                 ESTAB                    0                    0                                      127.0.0.1:40801                                127.0.0.1:52252               users:(("node",pid=8349,fd=20))               
tcp                 TIME-WAIT                0                    0                                      127.0.0.1:52248                                127.0.0.1:40801                                                             
tcp                 ESTAB                    0                    0                                      127.0.0.1:52252                                127.0.0.1:40801                                                             
tcp                 ESTAB                    0                    0                                      127.0.0.1:52250                                127.0.0.1:40801                                                             
tcp                 CLOSE-WAIT               0                    0                                      127.0.0.1:40801                                127.0.0.1:51856               users:(("node",pid=3047,fd=24))               
tcp                 LISTEN                   0                    128                                         [::]:8000                                      [::]:*                                                                 
tcp                 LISTEN                   0                    128                                         [::]:22                                        [::]:*                                                                

各情報の内容を以下に示す。

情報 内容
Netid プロトコル名(tcpやudpなど)を示す
State ソケットの状態を示す
Recv-Q 受信バッファに残っているデータのバイト数
Send-Q 送信バッファに残っているデータ(Ackが返ってこない)のバイト数
Local Address:Port ローカル側のアドレスとポート番号
Peer Address:Port リモート側のアドレスとポート番号
Process ソケットを使っているプロセス

State

代表的なステータスを示す。

情報 内容
LISTEN 接続待ち
ESTAB 接続中
CLOSE-WAIT 終了処理中
TIME-WAIT 終了手前の状態なのかな?

欲しい情報を絞り込む

grepで絞り込む方法は汎用的に使える。

$ ss -pantu | grep :22
tcp   LISTEN     0      128          0.0.0.0:22         0.0.0.0:*                                    
tcp   ESTAB      0      52     192.168.0.101:22    192.168.0.10:49897                                
tcp   LISTEN     0      128             [::]:22            [::]:*     

Local AddressのPortで絞り込む方法。
==の条件の部分は、!=>=などに変更可能。

$ ss -pantu 'sport == :22'
Netid                     State                      Recv-Q                     Send-Q                                         Local Address:Port                                         Peer Address:Port                      Process                     
tcp                       LISTEN                     0                          128                                                  0.0.0.0:22                                                0.0.0.0:*                                                     
tcp                       ESTAB                      0                          0                                              192.168.0.101:22                                           192.168.0.10:49897                                                 
tcp                       LISTEN                     0                          128                                                     [::]:22                                                   [::]:*                                                     

stateオプションを使うことでステータスで絞り込みすることもできる。
ss state establishedで、ESTABのみ表示させる。

$ ss -pantu state established
Netid                     Recv-Q                     Send-Q                                         Local Address:Port                                           Peer Address:Port                      Process                                              
tcp                       0                          0                                                  127.0.0.1:52272                                             127.0.0.1:40801                                                                          
tcp                       0                          0                                                  127.0.0.1:52270                                             127.0.0.1:40801                                                                          
tcp                       0                          84                                             192.168.0.101:22                                             192.168.0.10:50311                                                                          
tcp                       0                          0                                                  127.0.0.1:40801                                             127.0.0.1:52270                      users:(("node",pid=3047,fd=27))                     
tcp                       0                          0                                                  127.0.0.1:40801                                             127.0.0.1:52272                      users:(("node",pid=9129,fd=20))                     

最後に一言

午前2時で眠くて全然頭回らない中で書いたのでおかしな点があればご指摘ください。
なんで2022年最終日のこんな時間まで、真面目にpantsuネタ書いてんだろう・・・。

8
2
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?