ss命令

ss是Socket Statistics的缩写。顾名思义,ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容。但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。
当服务器的socket连接数量变得非常大时,无论是使用netstat命令还是直接cat /proc/net/tcp,执行速度都会很慢。可能你不会有切身的感受,但请相信我,当服务器维持的连接达到上万个的时候,使用netstat等于浪费 生命,而用ss才是节省时间。

命令格式:

ss [选项]
ss [选项] [过滤]

选项:
-n  –numeric不解析服务名称

-r  –resolve 解析主机名

-l  –listening 显示监听状态的套接字(sockets)

-a  –all显示所有套接字

-o  –options  显示计时器信息

-e  –extended  显示详细的套接字(socket)的内存使用情况

-p  –processed  显示使用套接字的进程

-i  –info   显示 tcp 内部信息

-s  –summary  显示套接字(socket)使用概况

-4  –IPv4  仅显示 IPv4的套接字

-6

-0(零)  –packet  显示 PACKET 套接字

-t  –tcp  仅显示 TCP 套接字

-u  –udp  仅显示  UDP套接字

-d  –dccp  仅显示 DCCP 套接字

-w  –raw  仅显示  RAW 套接字

-x  –Unix  仅显示 Unix 套接字

-f  –family=FAMILY  显示 FAMILY 类型的套接字,FAMILY可选  Unix, inet, inet6, link ,  netlink

-A  –query=QUERY, –socket=QUERY

QUERY  :=  {all| inet| tcp| udp | raw | unix | packet | netlink } [QUERY]

-D  –diag=FILE  将原始TCP 套接字信息转储到文件

-F  –filter=FILE  从文件中都去过滤信息

FLITER    :=  [ state  TCP-STATE ] [ EXPRESSION ]

实例:显示TCP连接
[root@localhost ~]# ss -t -a
State      Recv-Q Send-Q                                Local Address:Port                                    Peer Address:Port
LISTEN     0      0                                         127.0.0.1:smux                                               *:*
LISTEN     0      0                                                 *:3690                                               *:*
LISTEN     0      0                                                 *:ssh                                                *:*
ESTAB      0      0                                   192.168.120.204:ssh                                        10.2.0.68:49368

实例:找出打开套接字/端口应用程序
[root@localhost ~]# ss -lp|grep 3306
0      0                            *:3306                          *:*        users:((“mysqld”,2871,10))

实例:匹配远程地址和端口号
命令:
ss dst ADDRESS_PATTERN
ss dst 192.168.1.5
ss dst 192.168.119.113:http
ss dst 192.168.119.113:smtp
ss dst 192.168.119.113:443
[root@localhost ~]# ss dst 192.168.119.113
State      Recv-Q Send-Q                                Local Address:Port                                    Peer Address:Port
ESTAB      0      0                                   192.168.119.103:16014                                192.168.119.113:20229
ESTAB      0      0                                   192.168.119.103:16014                                192.168.119.113:61056
ESTAB      0      0                                   192.168.119.103:16014                                192.168.119.113:61623
ESTAB      0      0                                   192.168.119.103:16014                                192.168.119.113:60924
ESTAB      0      0                                   192.168.119.103:16050                                192.168.119.113:43701
ESTAB      0      0                                   192.168.119.103:16073                                192.168.119.113:32930
ESTAB      0      0                                   192.168.119.103:16073                                192.168.119.113:49318
ESTAB      0      0                                   192.168.119.103:16014                                192.168.119.113:3844
[root@localhost ~]# ss dst 192.168.119.113:http
State      Recv-Q Send-Q                                Local Address:Port                                    Peer Address:Port
[root@localhost ~]# ss dst 192.168.119.113:3844
State      Recv-Q Send-Q                                Local Address:Port                                    Peer Address:Port
ESTAB      0      0                                   192.168.119.103:16014                                192.168.119.113:3844

实例:匹配本地地址和端口号
命令:
ss src ADDRESS_PATTERN
ss src 192.168.119.103
ss src 192.168.119.103:http
ss src 192.168.119.103:80
ss src 192.168.119.103:smtp
ss src 192.168.119.103:25
[root@localhost ~]# ss src 192.168.119.103:16021
State      Recv-Q Send-Q                                Local Address:Port                                    Peer Address:Port
ESTAB      0      0                                   192.168.119.103:16021                                192.168.119.201:63054
ESTAB      0      0                                   192.168.119.103:16021                                192.168.119.201:62894
ESTAB      0      0                                   192.168.119.103:16021                                192.168.119.201:63055
ESTAB      0      0                                   192.168.119.103:16021                                192.168.119.201:2274
ESTAB      0      0                                   192.168.119.103:16021                                192.168.119.201:44784
ESTAB      0      0                                   192.168.119.103:16021                                192.168.119.201:7233
ESTAB      0      0                                   192.168.119.103:16021                                192.168.119.103:58660
ESTAB      0      0                                   192.168.119.103:16021                                192.168.119.201:44822
ESTAB      0      0                                   192.168.119.103:16021                                     10.2.1.206:56737
ESTAB      0      0                                   192.168.119.103:16021                                     10.2.1.206:57487
ESTAB      0      0                                   192.168.119.103:16021                                     10.2.1.206:56736
ESTAB      0      0                                   192.168.119.103:16021                                     10.2.1.206:64652
ESTAB      0      0                                   192.168.119.103:16021                                     10.2.1.206:56586
ESTAB      0      0                                   192.168.119.103:16021                                     10.2.1.206:64653
ESTAB      0      0                                   192.168.119.103:16021                                     10.2.1.206:56587

实例:ss 和 netstat 效率对比
命令:
time netstat -at
time ss
[root@localhost ~]# time ss   
real    0m0.739s
user    0m0.019s
sys     0m0.013s

[root@localhost ~]# time netstat -at
real    2m45.907s
user    0m0.063s
sys     0m0.067s