Linux工具之ss

1、SS命令
(Socket   Statistics),获取socket统计信息,显示和netstat类似的内容。显示更详细的TCP连接信息。
 
命令功能:
ss(Socket Statistics 的缩写)命令可以用来获取 socket统计信息,此命令输出的结果类似于 netstat输出的内容,
但它能显示更多更详细的 TCP连接状态的信息, 且比 netstat 更快速高效。它使用了 TCP协议栈中 tcp_diag
(是一个用于分析统计的模块),能直接从获得第一手内核信息,这就使 得 ss命令快捷高效。在没有 tcp_diag,ss也可以正常运行。
 
 
2、命令参数
-h, --help 帮助信息
-V, --version 程序版本信息
-n, --numeric 不解析服务名称
-r, --resolve        解析主机名
-a, --all 显示所有套接字(sockets)
-l, --listening 显示监听状态的套接字(sockets)
-o, --options        显示计时器信息
-e, --extended       显示详细的套接字(sockets)信息
-m, --memory         显示套接字(socket)的内存使用情况
-p, --processes 显示使用套接字(socket)的进程
-i, --info 显示 TCP内部信息
-s, --summary 显示套接字(socket)使用概况
-4, --ipv4           仅显示IPv4的套接字(sockets)
-6, --ipv6           仅显示IPv6的套接字(sockets)
-0, --packet         显示 PACKET 套接字(socket)
-t, --tcp 仅显示 TCP套接字(sockets)
-u, --udp 仅显示 UCP套接字(sockets)
-d, --dccp 仅显示 DCCP套接字(sockets)
-w, --raw 仅显示 RAW套接字(sockets)
-x, --unix 仅显示 Unix套接字(sockets)
-f, --family=FAMILY  显示 FAMILY类型的套接字(sockets),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套接字(sockets)信息转储到文件
-F, --filter=FILE   从文件中都去过滤器信息
       FILTER := [ state TCP-STATE ] [ EXPRESSION ]
 
 
3、使用实例
1 )显示TCP连接
ss   -t  -a
[root@natasha ~]# ss  -t  -a
State      Recv-Q Send-Q          Local Address:Port              Peer Address:Port  
LISTEN     0      128                         *:44993                        *:*      
LISTEN     0      128                        :::sunrpc                      :::*      
LISTEN     0      128                         *:sunrpc                       *:*      
LISTEN     0      128                        :::43892                       :::*      
LISTEN     0      128                        :::ssh                         :::*      
LISTEN     0      128                         *:ssh                          *:*      
LISTEN     0      128                 127.0.0.1:ipp                          *:*      
LISTEN     0      128                       ::1:ipp                         :::*      
LISTEN     0      100                       ::1:smtp                        :::*      
LISTEN     0      100                 127.0.0.1:smtp                         *:*      
ESTAB      0      0             192.168.180.119:ssh              192.168.180.1:4932
 
 
2  )显示Sockets摘要
ss   -s
 
[root@natasha ~]# ss -s
Total: 171 (kernel 188)
TCP:   11 (estab 1, closed 0, orphaned 0, synrecv 0, timewait 0/0), ports 6
 
Transport Total     IP        IPv6
*         188       -         -       
RAW       0         0         0       
UDP       8         5         3       
TCP       11        6         5       
INET      19        11        8       
FRAG      0         0         0 
 
 
 
3 ) 列出所有打开的网络连接端口
ss   -l
[root@natasha ~]# ss -l
State      Recv-Q Send-Q          Local Address:Port              Peer Address:Port  
LISTEN     0      128                         *:44993                        *:*      
LISTEN     0      128                        :::sunrpc                      :::*      
LISTEN     0      128                         *:sunrpc                       *:*      
LISTEN     0      128                        :::43892                       :::*      
LISTEN     0      128                        :::ssh                         :::*      
LISTEN     0      128                         *:ssh                          *:*      
LISTEN     0      128                 127.0.0.1:ipp                          *:*      
LISTEN     0      128                       ::1:ipp                         :::*      
LISTEN     0      100                       ::1:smtp                        :::*      
LISTEN     0      100                 127.0.0.1:smtp                         *:*
 
 
4 ) 查看进程使用的socket
ss   -pl
[root@natasha ~]# ss -pl
 
 
 
5 )找出打开套接字/端口应用程序
ss   -lp   |grep   44993
[root@natasha ~]# ss -pl |grep 44993
LISTEN     0      128                     *:44993                    *:*        users:(("rpc.statd",1235,9))
 
 
 
6 )显示所有UDP  Sockets
ss   -u    -a
[root@natasha ~]# ss   -u    -a
State      Recv-Q Send-Q          Local Address:Port              Peer Address:Port  
UNCONN     0      0                           *:53190                        *:*      
UNCONN     0      0                           *:968                          *:*      
UNCONN     0      0                           *:987                          *:*      
UNCONN     0      0                           *:sunrpc                       *:*      
UNCONN     0      0                           *:ipp                          *:*      
UNCONN     0      0                          :::48804                       :::*      
UNCONN     0      0                          :::968                         :::*      
UNCONN     0      0                          :::sunrpc 
 
 
7 )显示所有状态为established的SMTP连接
命令:
ss   -o   state   established  ' (  dport =   :smtp   or  sport =  :smtp   )'
 
[root@natasha ~]# ss -o state established '( dport  = :smtp or sport = :smtp )'
Recv-Q Send-Q               Local Address:Port                   Peer Address:Port
 
 
8)显示所有者状态为established的HTTP连接
ss   -o   state   established   '(  dport =   :http   or  sport =  :http    )'
 
 
显示已经建立的ssh连接:
 
 
 
 
9)  匹配远程地址和端口号
ss     dst   192.168.119.113:http
ss    dat    192.168.119.113:smtp
ss    dst     192.168.119.113:443
 
10)匹配本地地址和端口号
ss    src   192.168.119.103:80
ss    src    192.168.119.103:smtp
 
 
 

posted on 2019-10-17 15:51  春风亭牛二哥  阅读(174)  评论(0编辑  收藏  举报

导航