ss_ssm - CSDN
精华内容
参与话题
  • ss命令详解

    千次阅读 2019-06-22 00:28:07
    基础命令学习目录 ... ss 是 Socket Statistics 的缩写。ss 命令可以用来获取 socket 统计信息,它...但 ss 的优势在于它能够显示更多更详细的有关 TCP 和连接状态的信息,而且比 netstat 更快。当服务器的 socket ...

     

    基础命令学习目录   

     

    原文链接:https://www.jb51.net/article/135414.htm

    ss 是 Socket Statistics 的缩写。ss 命令可以用来获取 socket 统计信息,它显示的内容和 netstat 类似。但 ss 的优势在于它能够显示更多更详细的有关 TCP 和连接状态的信息,而且比 netstat 更快。当服务器的 socket 连接数量变得非常大时,无论是使用 netstat 命令还是直接 cat /proc/net/tcp,执行速度都会很慢。ss 命令利用到了 TCP 协议栈中 tcp_diag。tcp_diag 是一个用于分析统计的模块,可以获得 Linux 内核中第一手的信息,因此 ss 命令的性能会好很多。

    常用选项

    -h, --help 帮助
    -V, --version 显示版本号
    -t, --tcp 显示 TCP 协议的 sockets
    -u, --udp 显示 UDP 协议的 sockets
    -x, --unix 显示 unix domain sockets,与 -f 选项相同
    -n, --numeric 不解析服务的名称,如 "22" 端口不会显示成 "ssh"
    -l, --listening 只显示处于监听状态的端口
    -p, --processes 显示监听端口的进程(Ubuntu 上需要 sudo)
    -a, --all 对 TCP 协议来说,既包含监听的端口,也包含建立的连接
    -r, --resolve 把 IP 解释为域名,把端口号解释为协议名称

    常见用例

    如果不添加选项 ss 命令默认输出所有建立的连接(不包含监听的端口),包括 tcp, udp, and unix socket 三种类型的连接:

    查看主机监听的端口

    1
    $ ss -tnl

    通过 -r 选项解析 IP 和端口号

    1
    $ ss -tlr

    使用 -p 选项查看监听端口的程序名称

    1
    $ sudo ss -tlp

    最后一列就是运行的程序名称。还可以通过 grep 继续过滤:

    1
    $ sudo ss -tlp | grep ssh

    查看建立的 TCP 连接

    -a --all 对 TCP 协议来说,既包含监听的端口,也包含建立的连接

    1
    $ ss -tna

    显示更多的信息

    -o, --options 显示时间信息
    -m, --memory 显示 socket 使用的内存
    -i, --info 显示更多 TCP 内部的信息

    显示概要信息

    1
    $ ss -s

    dst/src dport/sport 语法

    可以通过 dst/src/dport/sprot 语法来过滤连接的来源和目标,来源端口和目标端口。

    匹配远程地址和端口号

    1
    2
    3
    $ ss dst 192.168.1.5
    $ ss dst 192.168.119.113:http
    $ ss dst 192.168.119.113:443

    匹配本地地址和端口号

    1
    2
    3
    $ ss src 192.168.119.103
    $ ss src 192.168.119.103:http
    $ ss src 192.168.119.103:80

    将本地或者远程端口和一个数比较

    可以使用下面的语法做端口号的过滤:

    1
    2
    $ ss dport OP PORT
    $ ss sport OP PORT

    OP 可以代表以下任意一个:

    <= le 小于或等于某个端口号
    >= ge 大于或等于某个端口号
    == eq 等于某个端口号
    != ne 不等于某个端口号
    > gt 大于某个端口号
    < lt 小于某个端口号

     

    下面是一个简单的 demo(注意,需要对尖括号使用转义符):

    1
    2
    $ ss -tunl sport lt 50
    $ ss -tunl sport \< 50

    通过 TCP 的状态进行过滤

    ss 命令还可以通过 TCP 连接的状态进程过滤,支持的 TCP 协议中的状态有:
    established
    syn-sent
    syn-recv
    fin-wait-1
    fin-wait-2
    time-wait
    closed
    close-wait
    last-ack
    listening
    closing

    除了上面的 TCP 状态,还可以使用下面这些状态:

    all 列出所有的 TCP 状态。
    connected 列出除了 listening 和 closing 之外的所有 TCP 状态。
    synchronized 列出除了 syn-sent 之外的所有 TCP 状态。
    bucket 列出 maintained 的状态,如:time-wait 和 syn-recv。
    big 列出和 bucket 相反的状态。

     

    使用 ipv4 时的过滤语法如下:

    1
    $ ss -4 state filter

    使用 ipv6 时的过滤语法如下:

    1
    $ ss -6 state filter

    下面是一个简单的例子:

    1
    $ ss -4 state listening

    同时过滤 TCP 的状态和端口号

    (注意下面命令中的转义符和空格,都是必须的。如果不用转义符,可以使用单引号)

    下面的命令显示所有状态为 established 的 ssh 连接:

    1
    $ ss -4n state listening

    下面的两种写法是等价的,要有使用 \ 转义小括号,要么使用单引号括起来:

    1
    2
    $ ss -4n state listening \( dport = :ssh \)
    $ ss -4n state listening '( dport = :ssh )'

    只是最后的结果稍微让人有些意外,不仅显示了监听的端口,也显示了通过 22 端口建立的连接。

    下面我们显示所有状态为 Established 的 HTTP 连接:

    1
    2
    $ ss -4n state listening \( dport = :ssh \)
    $ ss -4n state listening '( dport = :ssh )'

    下面的命令列出所有连接到 22 端口的连接和对 22 端口的监听:

    1
    $ ss state all dport = :22

    下面是一个来自 ss man page 的例子,它列举出处于 FIN-WAIT-1状态的源端口为 80 或者 443,目标网络为 193.233.7/24 所有 TCP 套接字:

    1
    $ ss state fin-wait-1 '( sport = :http or sport = :https )' dst 193.233.7/24

    总结

    由于性能出色且功能丰富,ss 命令可以用来替代 netsate 命令成为我们日常查看 socket 相关信息的利器。其实抛弃 netstate 命令已经是大势所趋,有的 Linux 版本默认已经不再内置 netstate 而是内置了 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连接以及更多

    很多流行的Linux发行版都支持ss以及很多监控工具使用ss命令.熟悉这个工具有助于您更好的发现与解决系统性能问题.本人强烈建议使用ss命令替代netstat部分命令,例如netsat -ant/lnt等.

    展示他之前来做个对比,统计服务器并发连接数

    结果很明显ss统计并发连接数效率完败netstat,在ss能搞定的情况下, 你还会在选择netstat吗, 还在犹豫吗, 看以下例子,或者跳转到帮助页面.

    常用ss命令:

    显示sockets简要信息
    列出当前已经连接,关闭,等待的tcp连接

    列出当前监听端口

    ss列出每个进程名及其监听的端口

    ss列所有的tcp sockets

    ss列出所有udp sockets

    ss列出所有http连接中的连接

    ·以上包含对外提供的80,以及访问外部的80
    ·用以上命令完美的替代netstat获取http并发连接数,监控中常用到

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

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

    ss常用的state状态

    ss使用IP地址筛选

    ss使用端口筛选

    OP运算符如下:

    OP实例

    为什么ss比netstat快:
    netstat是遍历/proc下面每个PID目录,ss直接读/proc/net下面的统计信息。所以ss执行的时候消耗资源以及消耗的时间都比netstat少很多

    ss命令帮助

    参考:http://www.cyberciti.biz/tips/linux-investigate-sockets-network-connections.html
    转摘请注明出处:Linux网络状态工具ss命令详解  http://www.ttlsa.com/html/2070.html

     

    转载于:https://www.cnblogs.com/machangwei-8/p/10352986.html

    展开全文
  • ss解压密码

    千次阅读 2018-02-26 11:19:14
    ss解压密码 www.cozythere.com

    ss解压密码
    www.cozythere.com

    展开全文
  • Linux 下 ss 命令使用示例

    万次阅读 2017-11-07 16:21:48
    ss 命令

    netstat 已经过时了, ss 是功能更强大的命令 。

    (本文译自 http://www.sanfoundry.com/ss-command-usage-examples-in-linux/

    这篇教程解释了Linux 的“ss”命令,并通过举例给出了一些用法。

    ss - socket statistics

    描述

    ss 用来倒出socket 的统计数据。 它显示跟 netstat 类似的信息,但能显示比其它工具更详细的TCP 状态信息。

    用法
    ss [选项] [过滤]

    选项
    如果没有指定任何选项,ss 列出所有已经建立、并不处在listen的TCP 套接字。

    -h, –help

    列出选项概要

    -V,–version
    输出版本信息

    -n, –numeric
    不尝试解析服务的名字

    -r,–resolve
    尝试解析数字地址/端口

    -a,–all
    显示处在listening 和 非listening 状态的套接字(对TCP来说,这意味所有已建立的连接)。

    -l,–listening
    只显示处在 listening 状态的套接字(默认情况下它们是被忽略的)

    * -o, –options*
    显示定时器信息

    -e,–extended
    显示详细的套接字信息

    -m,–memory
    显示套接字的内存使用信息

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

    -i, –info
    显示TCP内部信息

    -s,–summary
    显示概要统计。该选项不分析来自不同来源的套接字概要信息。 当套接字的数量很大导致分析/proc/net/tcp 很痛苦时,它很有用。

    -Z,–context
    同 -p 选项,不过还显示进程的安全上下文

    -z,–contexts
    同 -Z, 不过还显示套接字的上下文。 该套接字上下文是从inode里取出的、并不是内核持有的实际的socket上下文。 套接子通常以创建它的进程上下文标记, 但该上下文会反映已应用上的policy role, type and/or range , 因此这是个很有用的参考。

    -b,-bpf
    显示套接字的BPF过滤(只有管理员能获取这些信息)

    -4,–ipv4
    只显示IPv4 套接字(-f inet的别名)

    -6,–ipv6
    只显示IPv6 套接字(-f inet6的别名)

    -0,–packet
    显示PACKET 套接字(-f link的别名)

    -t,–tcp
    显示 TCP 套接字

    -u,–udp
    显示UDP 套接字

    -d,–dccp
    显示 DCCP 套接字

    -w,–raw
    显示 RAW 套接字

    -x,–unix
    显示 Unix Domain 套接字(-f unix的别名)

    -f FAMILY,–family=FAMILY
    显示类型为FAMILY的套接字。 支持以下几个family: unix, inet,inet6,link,netlink

    -A QUERY, –query=QUERY, –socket=QUERY
    列出需要倒出的套接字列表,用逗号隔开。 支持以下标识符: all, inet, tcp, udp, raw, unix, packet, netlink, unix_dgram, unix_stream, unix_seqpacket, packet_raw, packet_dgram

    -D FILE, –diag=FILE
    不显示任何内容,仅把原始TCP套接字信息存入文件FILE。 如果FILE为 - , 则使用stdout作为输出。

    -F FILE, –filter=FILE
    从文件FILE中读取信息。 文件的每一行被认为是单个命令行参数。 如果FILE为 - , 则使用stdin。

    * FILTER := [ state TCP-STATE ] [ EXPRESSION ] *
    请参考filter的官方文档(debian 包 iproute-doc).

    例子
    1. 显示所有的连接

     $ ss | less
    Netid  State      Recv-Q Send-Q   Local Address:Port       Peer Address:Port   
    u_str  ESTAB      0      0                    * 207499                * 207500 
    u_str  ESTAB      0      0      @/tmp/dbus-HulwP2Cqbm 207393                * 207392 
    u_str  ESTAB      0      0      @/tmp/.X11-unix/X0 206529                * 206528 
    u_str  ESTAB      0      0                    * 206446                * 206447 
    u_str  ESTAB      0      0      @/tmp/dbus-HulwP2Cqbm 205775                * 205774 
    u_str  ESTAB      0      0      @/tmp/dbus-HulwP2Cqbm 205578                * 205577 
    u_str  ESTAB      0      0      @/tmp/dbus-HulwP2Cqbm 207082                * 207081 
    u_str  ESTAB      0      0      @/dbus-vfs-daemon/socket-eEA5oIcY 228375                * 0      
    u_str  ESTAB      0      0                    * 206971                * 206972 
    u_str  ESTAB      0      0                    * 205301                * 205302 
    u_str  ESTAB      0      0      @/tmp/dbus-HulwP2Cqbm 206668                * 206667 
    u_str  ESTAB      0      0      @/dbus-vfs-daemon/socket-rCip3gc7 205882                * 205881 
    u_str  ESTAB      0      0                    * 205170                * 205171 
    u_str  ESTAB      0      0                    * 7967                  * 7968 
    ....

    2.把TCP连接过滤出来:

     $ ss -aA tcp
    State      Recv-Q Send-Q      Local Address:Port          Peer Address:Port   
    LISTEN     0      5               127.0.1.1:domain                   *:*       
    LISTEN     0      128             127.0.0.1:ipp                      *:*       
    CLOSE-WAIT 1      0          192.168.42.250:58390      103.245.222.184:http    
    TIME-WAIT  0      0          192.168.10.148:56833        74.125.236.99:http    
    CLOSE-WAIT 1      0          192.168.10.140:35766      103.245.222.184:http    
    CLOSE-WAIT 1      0          192.168.42.250:58392      103.245.222.184:http    
    TIME-WAIT  0      0          192.168.10.148:49839         23.57.219.27:http    
    ESTAB      0      0          192.168.10.148:53060        173.194.36.41:https   
    CLOSE-WAIT 1      0          192.168.10.140:35765      103.245.222.184:http    
    TIME-WAIT  0      0          192.168.10.148:47000        74.125.28.100:http    
    CLOSE-WAIT 1      0          192.168.42.250:58391      103.245.222.184:http    
    TIME-WAIT  0      0          192.168.10.148:38878        173.194.36.46:http    
    CLOSE-WAIT 1      0          192.168.10.140:35763      103.245.222.184:http    
    CLOSE-WAIT 1      0          192.168.10.140:35764      103.245.222.184:http    
    CLOSE-WAIT 1      0          192.168.42.250:58389      103.245.222.184:http    
    LISTEN     0      128                   ::1:ipp                     :::*       
    CLOSE-WAIT 1      0                     ::1:55327                  ::1:ipp

    $ ss -at
    State      Recv-Q Send-Q      Local Address:Port          Peer Address:Port   
    LISTEN     0      5               127.0.1.1:domain                   *:*       
    LISTEN     0      128             127.0.0.1:ipp                      *:*       
    CLOSE-WAIT 1      0          192.168.42.250:58390      103.245.222.184:http    
    TIME-WAIT  0      0          192.168.10.148:56833        74.125.236.99:http    
    CLOSE-WAIT 1      0          192.168.10.140:35766      103.245.222.184:http    
    CLOSE-WAIT 1      0          192.168.42.250:58392      103.245.222.184:http    
    TIME-WAIT  0      0          192.168.10.148:49839         23.57.219.27:http    
    ESTAB      0      0          192.168.10.148:53060        173.194.36.41:https   
    CLOSE-WAIT 1      0          192.168.10.140:35765      103.245.222.184:http    
    TIME-WAIT  0      0          192.168.10.148:47000        74.125.28.100:http    
    CLOSE-WAIT 1      0          192.168.42.250:58391      103.245.222.184:http    
    TIME-WAIT  0      0          192.168.10.148:38878        173.194.36.46:http    
    CLOSE-WAIT 1      0          192.168.10.140:35763      103.245.222.184:http    
    CLOSE-WAIT 1      0          192.168.10.140:35764      103.245.222.184:http    
    CLOSE-WAIT 1      0          192.168.42.250:58389      103.245.222.184:http    
    LISTEN     0      128                   ::1:ipp                     :::*       
    CLOSE-WAIT 1      0                     ::1:55327                  ::1:ipp

    3.过滤出UDP连接

     $ ss -aA udp
    State      Recv-Q Send-Q      Local Address:Port          Peer Address:Port   
    UNCONN     0      0                       *:58718                    *:*       
    UNCONN     0      0               127.0.1.1:domain                   *:*       
    UNCONN     0      0                       *:bootpc                   *:*       
    UNCONN     0      0                       *:mdns                     *:*       
    UNCONN     0      0                       *:27412                    *:*       
    UNCONN     0      0                      :::62912                   :::*       
    UNCONN     0      0                      :::mdns                    :::*       
    UNCONN     0      0                      :::46372                   :::*

    $ ss -au
    State      Recv-Q Send-Q      Local Address:Port          Peer Address:Port   
    UNCONN     0      0                       *:58718                    *:*       
    UNCONN     0      0               127.0.1.1:domain                   *:*       
    UNCONN     0      0                       *:bootpc                   *:*       
    UNCONN     0      0                       *:mdns                     *:*       
    UNCONN     0      0                       *:27412                    *:*       
    UNCONN     0      0                      :::62912                   :::*       
    UNCONN     0      0                      :::mdns                    :::*       
    UNCONN     0      0                      :::46372                   :::*

    4.不解析主机名
    为了加快输出的速度,用”n”选项防止ss 解析IP地址到主机名。不过这同样阻止了对端口名的解析。

     $ ss -nt
    State      Recv-Q Send-Q        Local Address:Port          Peer Address:Port 
    CLOSE-WAIT 1      0            192.168.42.250:58390      103.245.222.184:80    
    ESTAB      0      0            192.168.10.148:56390       63.245.216.132:443   
    CLOSE-WAIT 1      0            192.168.10.140:35766      103.245.222.184:80    
    CLOSE-WAIT 1      0            192.168.42.250:58392      103.245.222.184:80    
    CLOSE-WAIT 1      0            192.168.10.140:35765      103.245.222.184:80    
    CLOSE-WAIT 1      0            192.168.42.250:58391      103.245.222.184:80    
    CLOSE-WAIT 1      0            192.168.10.140:35763      103.245.222.184:80    
    CLOSE-WAIT 1      0            192.168.10.140:35764      103.245.222.184:80    
    CLOSE-WAIT 1      0            192.168.42.250:58389      103.245.222.184:80    
    CLOSE-WAIT 1      0                       ::1:55327                  ::1:631

    5.只显示监听的套接字

    $ ss -lnt
    State      Recv-Q Send-Q        Local Address:Port          Peer Address:Port 
    LISTEN     0      5                 127.0.1.1:53                       *:*     
    LISTEN     0      128               127.0.0.1:631                      *:*     
    LISTEN     0      128                     ::1:631                     :::*

    6.打印进程名和进程号

    # ss -ltp
    State      Recv-Q Send-Q      Local Address:Port          Peer Address:Port   
    LISTEN     0      5               127.0.1.1:domain                   *:*        users:(("dnsmasq",1199,5))
    LISTEN     0      128             127.0.0.1:ipp                      *:*        users:(("cupsd",793,10))
    LISTEN     0      128                   ::1:ipp                     :::*        users:(("cupsd",793,9))

    7.打印统计概要

    $ ss -s
    Total: 648 (kernel 0)
    TCP:   12 (estab 0, closed 0, orphaned 0, synrecv 0, timewait 0/0), ports 0
    
    Transport Total     IP        IPv6
    *     0         -         -        
    RAW   0         0         0        
    UDP   8         5         3        
    TCP   12        10        2        
    INET      20        15        5        
    FRAG      0         0         0

    8.仅显示IPv4 或 IPv6 连接

    $ ss -tl -f inet
    State      Recv-Q Send-Q      Local Address:Port          Peer Address:Port   
    LISTEN     0      5               127.0.1.1:domain                   *:*       
    LISTEN     0      128             127.0.0.1:ipp                      *:*
    
    
    $ ss -tl6
    State      Recv-Q Send-Q      Local Address:Port          Peer Address:Port   
    LISTEN     0      128                   ::1:ipp                     :::*

    10 列出处在 time-wait 状态的 IPv4 套接字

    
    $ ss -t4 state time-wait
    Recv-Q Send-Q         Local Address:Port             Peer Address:Port   
    0      0                192.168.1.2:42261           199.59.150.39:https   
    0      0                  127.0.0.1:43541               127.0.0.1:2633

    注意: 状态可以是以下任意一种

    stablished
    yn-sent
    yn-recv
    in-wait-1
    in-wait-2
    ime-wait
    losed
    lose-wait
    ast-ack
    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 – Show states, which are maintained as minisockets, i.e. time-wait and syn-recv.
    big – Opposite to bucket state.

    11 显示所有源端口或目的端口为 ssh 的套接字

    $ ss -at '( dport = :ssh or sport = :ssh )'
    State      Recv-Q Send-Q    Local Address:Port        Peer Address:Port   
    LISTEN     0      128                   *:ssh                    *:*       
    LISTEN     0      128                  :::ssh                   :::*

    12 显示目的端口是443或80的套接字

    
    $ ss -nt '( dst :443 or dst :80 )'
    State      Recv-Q Send-Q        Local Address:Port          Peer Address:Port 
    CLOSE-WAIT 1      0            192.168.42.250:58390      103.245.222.184:80    
    CLOSE-WAIT 1      0            192.168.10.140:35766      103.245.222.184:80    
    CLOSE-WAIT 1      0            192.168.42.250:58392      103.245.222.184:80    
    CLOSE-WAIT 1      0            192.168.10.140:35765      103.245.222.184:80    
    CLOSE-WAIT 1      0            192.168.42.250:58391      103.245.222.184:80    
    CLOSE-WAIT 1      0            192.168.10.140:35763      103.245.222.184:80    
    CLOSE-WAIT 1      0            192.168.10.140:35764      103.245.222.184:80    
    CLOSE-WAIT 1      0            192.168.42.250:58389      103.245.222.184:80

    13 对地址和端口过滤

    $ ss -nt dst 103.245.222.184:80
    State Recv-Q Send-Q Local Address:Port Peer Address:Port
    CLOSE-WAIT 1 0 192.168.42.250:58390 103.245.222.184:80
    CLOSE-WAIT 1 0 192.168.10.140:35766 103.245.222.184:80
    CLOSE-WAIT 1 0 192.168.42.250:58392 103.245.222.184:80
    CLOSE-WAIT 1 0 192.168.10.140:35765 103.245.222.184:80
    CLOSE-WAIT 1 0 192.168.42.250:58391 103.245.222.184:80
    CLOSE-WAIT 1 0 192.168.10.140:35763 103.245.222.184:80
    CLOSE-WAIT 1 0 192.168.10.140:35764 103.245.222.184:80
    CLOSE-WAIT 1 0 192.168.42.250:58389 103.245.222.184:80

    14 仅过滤端口

    $ ss -nt dport = :80
    State Recv-Q Send-Q Local Address:Port Peer Address:Port
    CLOSE-WAIT 1 0 192.168.42.250:58390 103.245.222.184:80
    CLOSE-WAIT 1 0 192.168.10.140:35766 103.245.222.184:80
    CLOSE-WAIT 1 0 192.168.42.250:58392 103.245.222.184:80
    CLOSE-WAIT 1 0 192.168.10.140:35765 103.245.222.184:80
    CLOSE-WAIT 1 0 192.168.42.250:58391 103.245.222.184:80
    CLOSE-WAIT 1 0 192.168.10.140:35763 103.245.222.184:80
    CLOSE-WAIT 1 0 192.168.10.140:35764 103.245.222.184:80
    CLOSE-WAIT 1 0 192.168.42.250:58389 103.245.222.184:80

    15 显示对方端口号小于100的套接字

    # ss -nt dport \< :100

    16 显示端口号大于1024的套接字

    # sudo ss -nt sport gt :1024

    17 显示对方端口是 80的套接字

    sudo ss -nt state connected dport = :80

    展开全文
  • ss命令用法举例

    千次阅读 2018-08-27 17:32:22
    ss是Socket Statistics的缩写。顾名思义,ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容。 但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。 当...

    ss是Socket Statistics的缩写。顾名思义,ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容。

    但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。

    当服务器的socket连接数量变得非常大时,无论是使用netstat命令还是直接cat /proc/net/tcp,执行速度都会很慢。

    可能你不会有切身的感受,但请相信我,当服务器维持的连接达到上万个的时候,使用netstat等于浪费 生命,而用ss才是节省时间。

    天下武功唯快不破。ss快的秘诀在于,它利用到了TCP协议栈中tcp_diag。tcp_diag是一个用于分析统计的模块,可以获得Linux 内核中第一手的信息,这就确保了ss的快捷高效。

    当然,如果你的系统中没有tcp_diag,ss也可以正常运行,只是效率会变得稍慢。(但仍然比 netstat要快。)

    1.命令格式:
    ss [参数]
    ss [参数] [过滤]

    2.命令功能:用来获取socket统计信息.

    3.命令参数:
    -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      从文件中都去过滤器信息.   ILTER := [ state TCP-STATE ] [ EXPRESSION ]
    -h, --help               帮助信息
    -V, --version           程序版本信息

    4.使用实例:
    4.1 显示TCP连接
    命令:ss -t -a

    [moiaopr@CNSZ443239 ~]$ ss -t -a
    State      Recv-Q Send-Q                                Local Address:Port                                    Peer Address:Port   
    LISTEN     0      128                                              :::sunrpc                                            :::*       
    LISTEN     0      128                                               *:sunrpc                                             *:*       
    LISTEN     0      128                                              :::ssh                                               :::*       
    LISTEN     0      128                                               *:ssh                                                *:*       
    LISTEN     0      128                            ::ffff:10.14.192.128:afs3-callback                                :::*       
    LISTEN     0      128                        fe80::250:56ff:fe92:f4df:afs3-callback                                :::*       
    LISTEN     0      128                                             ::1:afs3-callback                                :::*       
    LISTEN     0      128                                ::ffff:127.0.0.1:afs3-callback                                :::*       

    4.2 显示 Sockets 摘要
    命令:ss -s

    [moiaopr@CNSZ443239 ~]$ ss -s
    Total: 415 (kernel 429)
    TCP:   81 (estab 29, closed 36, orphaned 0, synrecv 0, timewait 33/0), ports 112

    Transport Total     IP        IPv6
    *         429       -         -        
    RAW       0         0         0        
    UDP       16        10        6        
    TCP       45        25        20       
    INET      61        35        26       
    FRAG      0         0         0 

    4.3 列出所有打开的网络连接端口
    命令:ss -l

    4.4 查看进程使用的socket
    命令:ss -pl
    命令:ss -lp | grep 3306

    4.5 显示所有UDP Sockets
    命令:ss -u -a
    命令:ss -ua

    [moiaopr@CNSZ443239 ~]$ ss -ua
    State      Recv-Q Send-Q                                Local Address:Port                                    Peer Address:Port   
    UNCONN     0      0                                                 *:48878                                              *:*           
    UNCONN     0      0                                     10.14.192.128:ntp                                                *:*       
    UNCONN     0      0                                         127.0.0.1:ntp                                                *:*          
    UNCONN     0      0                                                 *:783                                                *:*       
    UNCONN     0      0                                                 *:vacdsm-sws                                            *:*       
    UNCONN     0      0                                                 *:975                                                *:*       
    UNCONN     0      0                                                :::sunrpc                                            :::*       
    UNCONN     0      0                          fe80::250:56ff:fe92:f4df:ntp                                               :::*   

    4.6 显示所有状态为established的SMTP连接
    命令:ss -o state established '( dport = :smtp or sport = :smtp )' 

    4.7 显示所有状态为Established的HTTP连接
    命令:ss -o state established '( dport = :http or sport = :http )' 

    4.8 列举出处于FIN-WAIT-1状态的源端口为80或者 443,目标网络为193.233.7/24所有 tcp套接字
    命令:ss -o state fin-wait-1 '( sport = :http or sport = :https )' dst 193.233.7/24

    4.9 用TCP 状态过滤Sockets:
    命令
    ss -4 state FILTER-NAME-HERE 
    ss -6 state FILTER-NAME-HERE

    说明:FILTER-NAME-HERE 可以代表以下任何一个:
    established
    syn-sent
    syn-recv
    fin-wait-1
    fin-wait-2
    timewait
    csed
    close-wai
    last-ack
    listen
    closing

    all:          所有状态
    connected:    除了listen and closed的所有状态
    synchronized: 所有已连接的状态除了syn-sent
    bucket :      显示状态为maintained as minisockets,如:time-wait和syn-recv.
    big:          和bucket相反.

    4.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

    4.11 匹配本地地址和端口号

    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

    4.12 将本地或者远程端口和一个数比较
    命令:
    ss dport OP PORT 
    ss sport OP PORT

    [root@localhost ~]# ss  sport = :http 
    [root@localhost ~]# ss  dport = :http 
    [root@localhost ~]# ss  dport \> :1024 
    [root@localhost ~]# ss  sport \> :1024 
    [root@localhost ~]# ss sport \< :32000 
    [root@localhost ~]# ss  sport eq :22 
    [root@localhost ~]# ss  dport != :22 
    [root@localhost ~]# ss  state connected sport = :http 
    [root@localhost ~]# ss \( sport = :http or sport = :https \) 
    [root@localhost ~]# ss -o state fin-wait-1 \( sport = :http or sport = :https \) dst 192.168.1/24

    说明:
    ss dport OP PORT 远程端口和一个数比较;ss sport OP PORT 本地端口和一个数比较。

    OP  可以代表以下任意一个: 
    <= or le : 小于或等于端口号
    >= or ge : 大于或等于端口号
    == or eq : 等于端口号
    != or ne : 不等于端口号
    < or gt : 小于端口号
    > or lt : 大于端口号

    4.13 ss 和 netstat 效率对比
    命令:
    time netstat -at
    time ss

    [moiaopr@CNSZ443239 ~]$ time netstat -at
    Active Internet connections (servers and established)
    Proto Recv-Q Send-Q Local Address               Foreign Address             State      
    tcp        0      0 *:sunrpc                    *:*                         LISTEN      
    tcp        0      0 *:ssh                       *:*                         LISTEN      
    tcp        0      0 localhost:smtp              *:*                         LISTEN     
    tcp        0      0 CNSZ443239:40973            ::ffff:10.14.200.14:livelan ESTABLISHED 
    tcp        0      0 CNSZ443239:41969            CNSZ431014:21066            ESTABLISHED 

    real    0m0.389s
    user    0m0.016s
    sys     0m0.017s

    [moiaopr@CNSZ443239 ~]$ time ss
    State      Recv-Q Send-Q                                Local Address:Port                                    Peer Address:Port   
    ESTAB      0      0                              ::ffff:10.14.192.128:40974                           ::ffff:10.14.200.148:livelan 
    ESTAB      0      0                              ::ffff:10.14.192.128:40976                           ::ffff:10.14.200.148:livelan 
    real    0m0.045s
    user    0m0.034s
    sys     0m0.011s
    [moiaopr@CNSZ443239 

    说明:
    用time 命令分别获取通过netstat和ss命令获取程序和概要占用资源所使用的时间。
    在服务器连接数比较多的时候,netstat的效率完全没法和ss比。
     

    展开全文
  • ss

    2015-03-05 14:33:17
    顾名思义,ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容。但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。 当服务器的sock
  • ss命令的参数及使用详解

    万次阅读 2019-06-10 20:37:55
    ss - another utility to investigate sockets ss - 研究套接字的另一个实用程序 参数 Usage: ss [ OPTIONS ] ss [ OPTIONS ] [ FILTER ] -h, --help this message #显示帮助菜单 -V, --ve...
  • DateFormat dateTimeformat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); String strBeginDate = dateTimeformat.format(new Date()); System.out.println(strBeginDate);   //以上返回的是12小时制的...
  • ss 命令用法

    千次阅读 2015-08-03 10:34:59
    The ss command is used to show socket statistics. It can display stats for PACKET sockets, TCP sockets, UDP sockets, DCCP sockets, RAW sockets, Unix domain sockets, and more. It allows showing informa
  • ss是Socket Statistics的缩写。 顾名思义,ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容。但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效
  • ss 命令查看连接数

    千次阅读 2019-06-17 19:32:08
    ss命令用于显示socket状态. 他可以显示PACKET sockets, TCP sockets, UDP sockets, DCCP sockets, RAW sockets, Unix domain sockets等等统计. 它比其他工具展示等多tcp和state信息. 它是一个非常实用、快速、有效的...
  • 本人这久在关注一个地方域名( ***.ren,由于某些因素,此处用 *** 来代表域名), 因域名已经过期,有打算抢注的意愿,就等删除后注册了。 ( ***.ren) ...到期日期 2017年10月30日 到期日期 10月30日 ...2017.12....
  • 上一章我阐述了如何修改sspanel的视图,这一章为大家带来页面定向控制以及controller代码的修改 我们知道ssapnelV3是基于mvc架构,页面的访问并不是直接访问到页面文件,而是由controller处理后再返回的html...
  • Linux网络状态工具ss命令使用详解

    千次阅读 2015-01-24 23:51:00
    ss命令用于显示socket状态. 他可以显示PACKET sockets, TCP sockets, UDP sockets, DCCP sockets, RAW sockets, Unix domain sockets等等统计. 它比其他工具展示等多tcp和state信息. 它是一个非常实用、快速、有效的...
  • SS14、SS24、SS34 区别

    千次阅读 2017-03-29 09:26:49
    [转]SS14、SS24、SS34之间唯一的区别就是最大正向整流电流不同,SS14为1A,SS24为2A,SS34为3A。 这三个型号的具体参数如下: SS14:最大反向峰值电压VRRM=40V、最大正向整流电流I(AV)=1A、最大正向压降VF=0.5V、...
  • Linux系统使用ss命令查看端口状态

    千次阅读 2019-05-30 22:53:05
    Linux系统使用ss命令查看端口状态 Linux系统使用ss命令查看端口状态 目录 1.可用工具 2.ss帮助 2.1 选项分类说明 2.2 过滤选项family 2.3 过滤选项state 2.4 状态之间的关系 ...
  • SSPanel

    千次阅读 2019-07-16 17:32:26
    有开发环境的直接跳到第四步:4 部署 SSPanel 魔改版 开始安装 数据库用mysql也可以 一键后端安装地址 这里的前端后端和传统的web网站前后端不太一样,这里的前端其实指的就是web网站开发的后端后台,这里的后端指...
  • ss server

    万次阅读 2018-08-05 15:59:30
    转载自 ...     依次执行以下操作 sudo apt-get update sudo apt-get upgrade sudo apt-get install python3-pip sudo pip3 install setuptools sudo pip3 install...
  • easyui如何将hhmmss转换成hh:mm:ss 或者controller怎么控制
  • 3D蓝光影碟的SSIF文件

    千次阅读 2013-12-28 14:34:30
    由于产品开发的需要,近期工作涉及到3D蓝光影碟中的SSIF文件解析;  发现目前关于SSIF的资料真是太少了,可供程序员参考的资料则更少;  分析了一下,资料这么少的原因有2个:  第一点,蓝光组织没有免费开放SDK...
  • Linux ss命令详解

    千次阅读 2019-06-19 10:11:28
    ss是Socket Statistics的缩写。顾名思义,ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容。ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。 当服务器...
1 2 3 4 5 ... 20
收藏数 697,180
精华内容 278,872
关键字:

ss