zoukankan      html  css  js  c++  java
  • ss命令详解

    命令作用

      ss命令用于显示socket状态. 他可以显示PACKET sockets, TCP sockets, UDP sockets, DCCP sockets, RAW sockets, Unix domain sockets等等统计. 它比其他工具展示等多tcp和state信息. 它是一个非常实用、快速、有效的跟踪IP连接和sockets的新工具.SS命令可以提供如下信息:

    • 所有的TCP sockets
    • 所有的UDP sockets
    • 所有ssh/ftp/ttp/https持久连接
    • 所有连接到Xserver的本地进程
    • 使用state(例如:connected, synchronized, SYN-RECV, SYN-SENT,TIME-WAIT)、地址、端口过滤
    • 所有的state FIN-WAIT-1 tcpsocket连接以及更多

    快..快快......快男!

      当服务器的socket连接数量变得非常大时,无论是使用netstat命令还是直接cat /proc/net/tcp,执行速度都会很慢。可能你不会有切身的感受,但请相信我,当服务器维持的连接达到上万个的时候,使用netstat等于浪费 生命,而用ss才是节省时间。

      ss之所以快,它利用到了TCP协议栈中tcp_diag。tcp_diag是一个用于分析统计的模块,可以获得Linux 内核中第一手的信息,这就确保了ss的快捷高效。当然,如果你的系统中没有tcp_diag,ss也可以正常运行,只是效率会变得稍慢。

      比较ss和netstat的效率:

    [root@node1 ~]# time netstat -tan|grep -i estab |wc -l
    127
    
    real	0m0.600s
    user	0m0.048s
    sys	0m0.312s
    [root@node1 ~]# time ss -tan|grep -i estab |wc -l
    126
    
    real	0m0.028s
    user	0m0.001s
    sys	0m0.007s
    

      从结果可以看出ss比netstat效率快了一个数量级。

    ss 常用的参数

    -h:显示帮助信息;
    -V:显示指令版本信息;
    -n:不解析服务名称,以数字方式显示;
    -a:显示所有的套接字;
    -l:显示处于监听状态的套接字;
    -o:显示计时器信息;
    -m:显示套接字的内存使用情况;
    -p:显示使用套接字的进程信息;
    -i:显示内部的TCP信息;
    -4:只显示ipv4的套接字;
    -6:只显示ipv6的套接字;
    -t:只显示tcp套接字;
    -u:只显示udp套接字;
    -d:只显示DCCP套接字;
    -w:仅显示RAW套接字;
    -x:仅显示UNIX域套接字。
     -A, --query=QUERY, --socket=QUERY
         QUERY := {all|inet|tcp|udp|raw|unix|packet|netlink}[,QUERY]
     
     -D, --diag=FILE      #将关于TCP套接字的原始信息转储到文件中
     -F, --filter=FILE   #使用此参数指定的过滤规则文件,过滤某种状态的连接
        FILTER := [ state TCP-STATE ] [ EXPRESSION ]

      

      -s选项:显示socket概要信息

       列出当前的established, closed, orphaned and time-wait TCP sockets

    [root@node1 ~]# ss -s
    Total: 759 (kernel 1071)
    TCP:   174 (estab 87, closed 31, orphaned 0, synrecv 0, timewait 29/0), ports 0
    
    Transport Total     IP        IPv6
    *	  1071      -         -        
    RAW	  1         0         1        
    UDP	  10        6         4        
    TCP	  143       108       35       
    INET	  154       114       40       
    FRAG	  0         0         0        
    

      查看所有监听状态的连接

    [root@node1 ~]# ss -l
    Netid  State      Recv-Q Send-Q             Local Address:Port                              Peer Address:Port                            
    tcp    LISTEN     0      128                    10.0.0.61:fs-agent                                     *:*                    
    tcp    LISTEN     0      50                             *:7180                                         *:*                    
    tcp    LISTEN     0      128                    10.0.0.61:1004                                         *:*                    
    tcp    LISTEN     0      128                            *:50060                                        *:*                    
    tcp    LISTEN     0      50                             *:bmcpatrolagent                               *:*                    
    tcp    LISTEN     0      128                    127.0.0.1:45677                                        *:*                    
    tcp    LISTEN     0      50                             *:7182                                         *:*                    
    tcp    LISTEN     0      50                     10.0.0.61:1006                                         *:*                    
    tcp    LISTEN     0      128                            *:50030                                        *:*                    
    tcp    LISTEN     0      128                            *:sunrpc                                       *:*                    
    tcp    LISTEN     0      50                             *:ndmp                                         *:*                    
    tcp    LISTEN     0      128                    10.0.0.61:19888                                        *:*                    
    tcp    LISTEN     0      128                    10.0.0.61:10033                                        *:*                    
    tcp    LISTEN     0      5                              *:vop                                          *:*                                       
    tcp    LISTEN     0      128                    10.0.0.61:oa-system                                    *:*                    
    tcp    LISTEN     0      128                    10.0.0.61:50070                                        *:*                    
    tcp    LISTEN     0      5                      127.0.0.1:7190                                         *:*                    
    tcp    LISTEN     0      128                            *:ssh                                          *:*                    
    tcp    LISTEN     0      5                              *:7191                                         *:*                    
    tcp    LISTEN     0      100                            *:irisa                                        *:*                    
    tcp    LISTEN     0      128                    10.0.0.61:radan-http                                   *:*                    
    tcp    LISTEN     0      1                      127.0.0.1:metasys                                      *:*                    
    tcp    LISTEN     0      50                             *:44697                                        *:*                    
    tcp    LISTEN     0      128                    127.0.0.1:19001                                        *:*                    
    tcp    LISTEN     0      100                    127.0.0.1:smtp                                         *:*                    
    tcp    LISTEN     0      128                            *:13562                                        *:*                    
    tcp    LISTEN     0      50                             *:emc-pp-mgmtsvc                               *:*                    
    tcp    LISTEN     0      80                            :::mysql                                       :::*                    
    tcp    LISTEN     0      128                           :::sunrpc                                      :::*                    
    tcp    LISTEN     0      128                           :::http                                        :::*                    
    tcp    LISTEN     0      5                             :::4434                                        :::*                    
    tcp    LISTEN     0      128                           :::ssh                                         :::*                    
    tcp    LISTEN     0      5                             :::7191                                        :::*                    
    tcp    LISTEN     0      100                          ::1:smtp                                        :::*                    
    tcp    LISTEN     0      128                           :::https                                       :::*    
    

      查看进程使用的套接字

    [root@node1 ~]# ss -pl
    Netid  State      Recv-Q Send-Q             Local Address:Port                              Peer Address:Port                
    tcp    LISTEN     0      128                    10.0.0.61:fs-agent                                     *:*                     users:(("java",pid=3544,fd=216))
    tcp    LISTEN     0      50                             *:7180                                         *:*                     users:(("java",pid=1182,fd=261))
    tcp    LISTEN     0      128                    10.0.0.61:1004                                         *:*                     users:(("jsvc",pid=4435,fd=166))
    tcp    LISTEN     0      128                            *:50060                                        *:*                     users:(("java",pid=2580,fd=157))
    tcp    LISTEN     0      50                             *:bmcpatrolagent                               *:*                     users:(("java",pid=2620,fd=37))
    tcp    LISTEN     0      128                    127.0.0.1:45677                                        *:*                     users:(("java",pid=2580,fd=147))
    tcp    LISTEN     0      50                             *:7182                                         *:*                     users:(("java",pid=1182,fd=247))
    tcp    LISTEN     0      50                     10.0.0.61:1006                                         *:*                     users:(("jsvc",pid=4435,fd=168))
    tcp    LISTEN     0      128                            *:50030                                        *:*                     users:(("java",pid=3050,fd=154))
    tcp    LISTEN     0      128                            *:sunrpc                                       *:*                     users:(("rpcbind",pid=535,fd=4),("systemd",pid=1,fd=36))
    tcp    LISTEN     0      50                             *:ndmp                                         *:*                     users:(("java",pid=2451,fd=378))
    tcp    LISTEN     0      128                    10.0.0.61:19888                                        *:*                     users:(("java",pid=3546,fd=191))
    tcp    LISTEN     0      128                    10.0.0.61:10033                                        *:*                     users:(("java",pid=3546,fd=180))
    tcp    LISTEN     0      5                              *:vop                                          *:*                     users:(("python2.7",pid=1772,fd=8))
    tcp    LISTEN     0      50                             *:documentum                                   *:*                     users:(("java",pid=2451,fd=379))
    tcp    LISTEN     0      50                             *:sdr                                          *:*                     users:(("java",pid=2620,fd=23))
    tcp    LISTEN     0      128                    10.0.0.61:qbdb                                         *:*                     users:(("java",pid=3031,fd=180))
    tcp    LISTEN     0      128                    10.0.0.61:intu-ec-svcdisc                              *:*                     users:(("java",pid=3075,fd=206))
    tcp    LISTEN     0      128                    10.0.0.61:intu-ec-client                               *:*                     users:(("java",pid=3050,fd=143))
    tcp    LISTEN     0      50                             *:macbak                                       *:*                     users:(("java",pid=2620,fd=35))
    tcp    LISTEN     0      50                             *:ezmeeting-2                                  *:*                     users:(("java",pid=2643,fd=233))
    tcp    LISTEN     0      128                    10.0.0.61:oa-system                                    *:*                     users:(("java",pid=3075,fd=183))
    tcp    LISTEN     0      128                    10.0.0.61:50070                                        *:*                     users:(("java",pid=3075,fd=177))
    tcp    LISTEN     0      5                      127.0.0.1:7190                                         *:*                     users:(("python2.7",pid=1772,fd=14))
    tcp    LISTEN     0      128                            *:ssh                                          *:*                     users:(("sshd",pid=773,fd=3))
    tcp    LISTEN     0      5                              *:7191                                         *:*                     users:(("python2.7",pid=1772,fd=7))
    tcp    LISTEN     0      100                            *:irisa                                        *:*                     users:(("java",pid=2435,fd=265))
    tcp    LISTEN     0      128                    10.0.0.61:radan-http                                   *:*                     users:(("java",pid=3440,fd=177))
    tcp    LISTEN     0      1                      127.0.0.1:metasys                                      *:*                     users:(("java",pid=2435,fd=279))
    tcp    LISTEN     0      50                             *:44697                                        *:*                     users:(("java",pid=2620,fd=24))
    tcp    LISTEN     0      128                    127.0.0.1:19001                                        *:*                     users:(("python",pid=1557,fd=4))
    tcp    LISTEN     0      100                    127.0.0.1:smtp                                         *:*                     users:(("master",pid=1225,fd=13))
    tcp    LISTEN     0      128                            *:13562                                        *:*                     users:(("java",pid=3544,fd=215))
    tcp    LISTEN     0      50                             *:emc-pp-mgmtsvc                               *:*                     users:(("java",pid=2444,fd=378))
    tcp    LISTEN     0      80                            :::mysql                                       :::*                     users:(("mysqld",pid=1181,fd=63))
    tcp    LISTEN     0      128                           :::sunrpc                                      :::*     
    

      列出所有ssh连接中state为estab的连接

    [root@node1 ~]# ss -o state established '( sport = :22 )'
    Netid  Recv-Q Send-Q                  Local Address:Port                                   Peer Address:Port                
    tcp    0      0                           10.0.0.61:ssh                                        10.0.0.1:park-agent            timer:(keepalive,2min28sec,0)
    [root@node1 ~]# ss -o state established '( sport = :ssh )'
    Netid  Recv-Q Send-Q                  Local Address:Port                                   Peer Address:Port                
    tcp    0      0                           10.0.0.61:ssh                                        10.0.0.1:park-agent            timer:(keepalive,1min57sec,0)
    

      列出所有http的连接

    [root@node1 ~]# ss -o state established '( sport = :http or dport = :http )'
    

      

      ss列出本地哪个进程连接到x server

    [root@node1 ~]# ss -x src /tmp/.X11-unix/* 

       

      ss列出处在FIN-WAIT-1状态的http、https连接

    [root@node1 ~]# ss -o state fin-wait-1 '( sport = :http or sport = :https )'
    

      ss常用的state状态:   

    established
    syn-sent
    syn-recv
    fin-wait-1
    fin-wait-2
    time-wait
    closed
    close-wait
    last-ack
    listen
    closing
    all : All of  the above states
    connected: all the states except for listen and closed
    synchronized - all the connected states except for syn-sent
    bucket - states, which are maintained as minisockets, i.e.  time-wait and syn-recv
    big - opposite to bucket
    

     ss使用IP地址进行筛选

    ss src ADDRESS_PATTERN:proto/port
    src   表示源地址
    dst   表示目标地址
    ADDRESS_PATTERN  表示地址规则(可以是一个地址段)
    proto/port  为协议或者端口
    
    示例:
    
    1、列出所有源地址为10.0.0.61的连接
    
    [root@node1 ~]# ss src 10.0.0.61
    Netid  State      Recv-Q Send-Q             Local Address:Port                                      Peer Address:Port                
    udp    ESTAB      0      0                      10.0.0.61:51808                                    10.0.0.62:kerberos             
    tcp    ESTAB      0      0                      10.0.0.61:55082                                10.0.0.61:mysql                
    tcp    FIN-WAIT-2 0      0                      10.0.0.61:44396                                10.0.0.61:eforward             
    tcp    ESTAB      0      0                      10.0.0.61:54070                                10.0.0.61:mysql                
    tcp    ESTAB      0      0                      10.0.0.61:51742                                10.0.0.61:7182    
    
    2、列出所有源地址是10.0.0.61的mysql连接
    
    [root@node1 ~]# ss src 10.0.0.61:mysql
    Netid  State      Recv-Q Send-Q             Local Address:Port                              Peer Address:Port                
    tcp    ESTAB      0      0               ::ffff:10.0.0.61:mysql                         ::ffff:10.0.0.61:54066                
    tcp    ESTAB      0      0               ::ffff:10.0.0.61:mysql                         ::ffff:10.0.0.61:55154                
    tcp    ESTAB      0      0               ::ffff:10.0.0.61:mysql                         ::ffff:10.0.0.61:54926                
    tcp    ESTAB      0      0               ::ffff:10.0.0.61:mysql                         ::ffff:10.0.0.61:54068                
    tcp    ESTAB      0      0               ::ffff:10.0.0.61:mysql                         ::ffff:10.0.0.61:42944                
    tcp    ESTAB      0      0               ::ffff:10.0.0.61:mysql                         ::ffff:10.0.0.61:44244                
    tcp    ESTAB      0      0               ::ffff:10.0.0.61:mysql                         ::ffff:10.0.0.61:54150                
    tcp    ESTAB      0      0               ::ffff:10.0.0.61:mysql                         ::ffff:10.0.0.61:54920                
    tcp    ESTAB      0      0               ::ffff:10.0.0.61:mysql                         ::ffff:10.0.0.61:55408                
    tcp    ESTAB      0      0               ::ffff:10.0.0.61:mysql                         ::ffff:10.0.0.61:54924      
    
    3、列出所有目标地址是10.0.0.61的mysql连接
    
    [root@node1 ~]# ss dst 10.0.0.61:3306
    Netid  State      Recv-Q Send-Q             Local Address:Port                              Peer Address:Port                
    tcp    ESTAB      0      0                      10.0.0.61:55082                                10.0.0.61:mysql                
    tcp    ESTAB      0      0                      10.0.0.61:54070                                10.0.0.61:mysql                
    tcp    ESTAB      0      0                      10.0.0.61:54922                                10.0.0.61:mysql                
    tcp    ESTAB      0      0                      10.0.0.61:55152                                10.0.0.61:mysql                
    tcp    ESTAB      0      0                      10.0.0.61:54928                                10.0.0.61:mysql                
    tcp    ESTAB      0      0                      10.0.0.61:39996                                10.0.0.61:mysql 

     筛选端口

    ss dport/sport  OP  PORT
    OP:运算符
    PORT:端口
    dport/sport: 过滤的目标/源端口
    
    运算符有:
    <= or le:      小于等于
    >= or ge:   大于等于
    == or eq:     等于
    != :             不等于
    < or lt:       小于
    > or gt:       大于
    
    示例:
    [root@node1 ~]# ss sport = :mysql
    Netid  State      Recv-Q Send-Q             Local Address:Port                              Peer Address:Port                
    tcp    ESTAB      0      0               ::ffff:10.0.0.61:mysql                         ::ffff:10.0.0.61:54066                
    tcp    ESTAB      0      0               ::ffff:10.0.0.61:mysql                         ::ffff:10.0.0.61:55154                
    tcp    ESTAB      0      0               ::ffff:10.0.0.61:mysql                         ::ffff:10.0.0.61:54926                
    tcp    ESTAB      0      0               ::ffff:10.0.0.61:mysql                         ::ffff:10.0.0.61:54068     
    
    
    [root@node1 ~]# ss sport = :3306
    Netid  State      Recv-Q Send-Q             Local Address:Port                              Peer Address:Port                
    tcp    ESTAB      0      0               ::ffff:10.0.0.61:mysql                         ::ffff:10.0.0.61:54066                
    tcp    ESTAB      0      0               ::ffff:10.0.0.61:mysql                         ::ffff:10.0.0.61:55154       
    
    [root@node1 ~]# ss dport > :1024
    Netid  State      Recv-Q Send-Q             Local Address:Port                              Peer Address:Port                
    u_str  ESTAB      0      0                              * 16252                                        * 16253                
    u_str  ESTAB      0      0                              * 35028                                        * 35027                
    u_str  ESTAB      0      0                              * 16791                                        * 16813                
    u_str  ESTAB      0      0                              * 297984                                       * 299009  
    
    [root@node1 ~]# ss sport > :20000
    Netid  State      Recv-Q Send-Q             Local Address:Port                              Peer Address:Port                
    u_str  ESTAB      0      0                              * 35028                                        * 35027                
    u_str  ESTAB      0      0                              * 297984                                       * 299009               
    u_str  ESTAB      0      0                              * 41350                                        * 0                    
    u_str  ESTAB      0      0                              * 23010                                        * 23009                
    u_str  ESTAB      0      0                              * 38302                                        * 0                    
    u_str  ESTAB      0      0                              * 37222                                        * 0          
    
    [root@node1 ~]# ss ( sport = :mysql or sport = :ssh )
    Netid  State      Recv-Q Send-Q             Local Address:Port                              Peer Address:Port                
    tcp    ESTAB      0      0                      10.0.0.61:ssh                                   10.0.0.1:5449                 
    tcp    ESTAB      0      0                      10.0.0.61:ssh                                   10.0.0.1:6034                 
    tcp    ESTAB      0      0               ::ffff:10.0.0.61:mysql                         ::ffff:10.0.0.61:54066                
    tcp    ESTAB      0      0               ::ffff:10.0.0.61:mysql                         ::ffff:10.0.0.61:55154                
    tcp    ESTAB      0      0               ::ffff:10.0.0.61:mysql                         ::ffff:10.0.0.61:54926                
    tcp    ESTAB      0      0               ::ffff:10.0.0.61:mysql                         ::ffff:10.0.0.61:54068                
    tcp    ESTAB      0      0               ::ffff:10.0.0.61:mysql                         ::ffff:10.0.0.61:50806                
    tcp    ESTAB      0      0               ::ffff:10.0.0.61:mysql                         ::ffff:10.0.0.61:42944                
    tcp    ESTAB      0      0               ::ffff:10.0.0.61:mysql                         ::ffff:10.0.0.61:44244     
    
    [root@node1 ~]# ss state connected sport = :mysql
    Netid  State      Recv-Q Send-Q             Local Address:Port                              Peer Address:Port                
    tcp    ESTAB      0      0               ::ffff:10.0.0.61:mysql                         ::ffff:10.0.0.61:54066                
    tcp    ESTAB      0      0               ::ffff:10.0.0.61:mysql                         ::ffff:10.0.0.61:55154                
    tcp    ESTAB      0      0               ::ffff:10.0.0.61:mysql                         ::ffff:10.0.0.61:54926                
    tcp    ESTAB      0      0               ::ffff:10.0.0.61:mysql                         ::ffff:10.0.0.61:54068                
    tcp    ESTAB      0      0               ::ffff:10.0.0.61:mysql                         ::ffff:10.0.0.61:50806                
    tcp    ESTAB      0      0               ::ffff:10.0.0.61:mysql                         ::ffff:10.0.0.61:42944                
    tcp    ESTAB      0      0               ::ffff:10.0.0.61:mysql                         ::ffff:10.0.0.61:44244                
    tcp    ESTAB      0      0               ::ffff:10.0.0.61:mysql                         ::ffff:10.0.0.61:54150     
    
    [root@node1 ~]# ss -o state fin-wait-1 ( dport = :mysql or sport = :ssh )
    或者用单引号的形式
    [root@node1 ~]# ss -o state fin-wait-1 '( dport = :mysql or sport = :ssh )'
    

      

    显示连接 X server服务器的进程

    [root@node1 ~]# ss -x src /tmp/.X11-unix/*
    

      

  • 相关阅读:
    关于用网线连开发板和电脑网卡问题
    信号量同步编程
    信号量互斥编程
    信号通讯
    有名管道通讯
    dell 燃 7000 系列 7460/7560 禁用触控板 触摸板
    关于错误node_modules/@types/jasmine/index.d.ts(39,52): error TS1005: '=' expected.
    环境配置,nodejs,cnpm,git,webstorm,powershell,
    gitflow工作流
    <问题汇总>ionic2开发app
  • 原文地址:https://www.cnblogs.com/zh-dream/p/11757481.html
Copyright © 2011-2022 走看看