ss命令

作者: tracy_668 | 来源:发表于2021-08-14 21:33 被阅读0次

[TOC]

简介

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要快。)

使用实例:

ss -t -a
[root@localhost ~]# ss -t -aState      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 ~]#
实例2:显示 Sockets 摘要
[root@localhost ~]# ss -sTotal: 34 (kernel 48)TCP:   4 (estab 1, closed 0, orphaned 0, synrecv 0, timewait 0/0), ports 3Transport Total     IP        IPv6*         48        -         -        RAW       0         0         0        UDP       5         5         0        TCP       4         4         0        INET      9         9         0        FRAG      0         0         0        [root@localhost ~]#

说明:

列出当前的established, closed, orphaned and waiting TCP sockets

实例3:列出所有打开的监听网络连接端口

命令:

ss -l

输出:

[root@localhost ~]# ss -lRecv-Q Send-Q                                     Local Address:Port                                         Peer Address:Port   0      0                                              127.0.0.1:smux                                                    *:*       0      0                                                      *:3690                                                    *:*       0      0                                                      *:ssh                                                     *:*       [root@localhost ~]#

实例4:查看进程使用的socket

命令:

ss -pl

输出:

相关文章

网友评论

      本文标题:ss命令

      本文链接:https://www.haomeiwen.com/subject/bfzebltx.html