热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

mysql的命令ss_Linux下的21个ss命令使用示例详解

简介:SocketStatistics(ss)命令类似于netstat,它用于显示各种有用的网络套接字信息。长时间看,已经注意到netst

简介:

Socket Statistics(ss)命令类似于netstat,它用于显示各种有用的网络套接字信息。

长时间看,已经注意到netstat这个命令程序已经过时了。从而代替netstat的是ss命令。一个全新的ss命令使用起来必定有些陌生,不过ss许多选项与netstat使用的选项类似,但我们还会看到一些差异。

ss命令是Linux CentOS 7中iproute软件包的一部分,默认已经安装。

一般来说,网络套接字是由IP地址,传输协议和端口来定义的。这种组合构成了双向连接的一个方面。例如:一个Web服务器可能正在侦听172.28.204.62:80上的传入TCP连接,这是套接字。不过需要说明的是套接字不是连接本身,而是连接的端点之一。

下面我讲解如何使用ss命令查看各种信息。具体使用语法如下:ss [options] [ FILTER ]

1.列出已建立的连接

默认情况下,如果我们运行ss命令而没有指定其他选项,它将显示所有已建立连接的打开的非侦听套接字的列表,例如TCP,UDP或UNIX套接字。[root@renwolecom ~]# ss | head -n 5

Netid  State  Recv-Q Send-Q Local Address:Port   Peer Address:Port

u_str  ESTAB  0      0       * 19098                 * 18222

u_str  ESTAB  0      0       * 19441                 * 19440

u_str  ESTAB  0      0       * 19440                 * 19441

u_str  ESTAB  0      0       * 19396                 * 19397

2.显示监听套接字

我们可以使用-l选项专门列出当前正在侦听连接的套接字,而不是列出所有的套接字。[root@renwolecom ~]# ss -lt

State   Recv-Q Send-Q    Local Address:Port       Peer Address:Port

LISTEN  0      128                   *:http                  *:*

LISTEN  0      100           127.0.0.1:smtp                  *:*

LISTEN  0      128                   *:entexthigh            *:*

LISTEN  0      128       172.28.204.62:zabbix-trapper        *:*

LISTEN  0      128           127.0.0.1:cslistener            *:*

LISTEN  0      80                   :::mysql                :::*

LISTEN  0      100                 ::1:smtp                 :::*

LISTEN  0      128                  :::entexthigh           :::*

在这个示例中,我们还使用-t选项只列出TCP,稍后将对此进行详细说明。在后面的例子中,你会看到我将结合多种选择,以快速过滤掉,从而达到我们的目的。

3.显示进程

我们可以用-p选项打印出拥有套接字的进程或PID号。[root@renwolecom ~]# ss -pl

Netid  State      Recv-Q Send-Q Local Address:Port     Peer Address:Port

tcp    LISTEN     0      128    :::http                :::*                 users:(("httpd",pid=10522,fd=4),("httpd",pid=10521,fd=4),("httpd",pid=10520,fd=4),("httpd",pid=10519,fd=4),("httpd",pid=10518,fd=4),("httpd",pid=10516,fd=4))

在上面的例子中我只列出了一个结果,没有进行进一步选项,因为ss的完整输出打印出超过500行到标准输出。所以我只列出一条结果,由此我们可以看到服务器上运行的各种Apache进程ID。

4.不解析服务名称

默认情况下,ss只会解析端口号,例如在下面的行中,我们可以看到172.28.204.62:mysql,其中mysql被列为本地端口。[root@renwolecom ~]# ss

Netid State Recv-Q Send-Q   Local Address:Port      Peer Address:Port

tcp   ESTAB 0      0 ::ffff:172.28.204.62:mysql ::ffff:172.28.204.62:38920

tcp   ESTAB 0      0 ::ffff:172.28.204.62:mysql ::ffff:172.28.204.62:51598

tcp   ESTAB 0      0 ::ffff:172.28.204.62:mysql ::ffff:172.28.204.62:51434

tcp   ESTAB 0      0 ::ffff:172.28.204.62:mysql ::ffff:172.28.204.62:36360

但是,如果我们指定-n选项,看到的是端口号而不是服务名称。[root@renwolecom ~]# ss -n

Netid State Recv-Q Send-Q   Local Address:Port      Peer Address:Port

tcp   ESTAB 0      0 ::ffff:172.28.204.62:3306  ::ffff:172.28.204.62:38920

tcp   ESTAB 0      0 ::ffff:172.28.204.62:3306  ::ffff:172.28.204.62:51598

tcp   ESTAB 0      0 ::ffff:172.28.204.62:3306  ::ffff:172.28.204.62:51434

tcp   ESTAB 0      0 ::ffff:172.28.204.62:3306  ::ffff:172.28.204.62:36360

现在显示3306,而非mysql,因为禁用了主机名和端口的所有名称解析。另外你还可以查看/etc/services得到所有服务对应的端口列表。

5.解析数字地址/端口

用-r选项可以解析IP地址和端口号。用此方法可以列出172.28.204.62服务器的主机名。[root@renwolecom ~]# ss -rNetid  State  Recv-Q Send-Q        Local Address:Port      Peer Address:Port

tcp    ESTAB      0      0         renwolecom:mysql        renwolecom:48134

6.IPv4套接字

我们可以通过-4选项只显示与IPv4套接字对应的信息。在下面的例子中,我们还使用-l选项列出了在IPv4地址上监听的所有内容。[root@renwolecom ~]# ss -l4

Netid State      Recv-Q Send-Q  Local Address:Port            Peer Address:Port

tcp   LISTEN     0      128                 *:http                       *:*

tcp   LISTEN     0      100         127.0.0.1:smtp                       *:*

tcp   LISTEN     0      128                 *:entexthigh                 *:*

tcp   LISTEN     0      128     172.28.204.62:zabbix-trapper             *:*

tcp   LISTEN     0      128         127.0.0.1:cslistener                 *:*

7.IPv6套接字

同样,我们可以使用-6选项只显示与IPv6套接字相关信息。在下面的例子中,我们还使用-l选项列出了在IPv6地址上监听的所有内容。[root@renwolecom ~]# ss -l6

Netid State      Recv-Q Send-Q  Local Address:Port            Peer Address:Port

udp   UNCONN     0      0                  :::ipv6-icmp                 :::*

udp   UNCONN     0      0                  :::ipv6-icmp                 :::*

udp   UNCONN     0      0                  :::21581                     :::*

tcp   LISTEN     0      80                 :::mysql                     :::*

tcp   LISTEN     0      100               ::1:smtp                      :::*

tcp   LISTEN     0      128                :::entexthigh                :::*

8.只显示TCP

-t选项只显示TCP套接字。当与-l结合只打印出监听套接字时,我们可以看到所有在TCP上侦听的内容。[root@renwolecom ~]# ss -lt

State       Recv-Q Send-Q    Local Address:Port               Peer Address:Port

LISTEN      0      128                   *:http                          *:*

LISTEN      0      100           127.0.0.1:smtp                          *:*

LISTEN      0      128                   *:entexthigh                    *:*

LISTEN      0      128       172.28.204.62:zabbix-trapper                *:*

LISTEN      0      128           127.0.0.1:cslistener                    *:*

LISTEN      0      80                   :::mysql                        :::*

LISTEN      0      100                 ::1:smtp                         :::*

LISTEN      0      128                  :::entexthigh                   :::*

9.显示UDP

-u选项可用于仅显示UDP套接字。由于UDP是一种无连接的协议,因此只运行-u选项将不显示输出,我们可以将它与-a或-l选项结合使用,来查看所有侦听UDP套接字,如下所示:[root@renwolecom ~]# ss -ul

State      Recv-Q Send-Q Local Address:Port                 Peer Address:Port

UNCONN     0      0              *:sunwebadmins                 *:*

UNCONN     0      0              *:etlservicemgr                *:*

UNCONN     0      0              *:dynamid                      *:*

UNCONN     0      0              *:9003                         *:*

UNCONN     0      0              *:9004                         *:*

UNCONN     0      0      127.0.0.1:terabase                     *:*

UNCONN     0      0              *:56803                        *:*

10. Unix套接字

-x选项只能用来显示unix域套接字。[root@renwolecom ~]# ss -x

Netid State Recv-Q Send-Q                    Local Address:Port Peer Address:Port

u_str ESTAB 0      0 /tmp/zabbix_server_preprocessing.sock 23555           * 21093

u_str ESTAB 0      0          /tmp/zabbix_server_ipmi.sock 20155           * 19009

u_str ESTAB 0      0 /tmp/zabbix_server_preprocessing.sock 19354           * 22573

u_str ESTAB 0      0 /tmp/zabbix_server_preprocessing.sock 21844           * 19375

...

11.显示所有信息

-a选项显示所有的监听和非监听套接字,在TCP的情况下,这意味着已建立的连接。这个选项与其他的组合很有用,例如可以添加-a选项显示所有的UDP套接字,默认情况下只有-u选项我们看不到多少信息。[root@renwolecom ~]# ss -u

Recv-Q Send-Q Local Address:Port                 Peer Address:Port

0      0      172.28.204.66:36371                    8.8.8.8:domain[root@renwolecom ~]# ss -ua

State      Recv-Q Send-Q Local Address:Port                 Peer Address:Port

UNCONN     0      0                 *:sunwebadmins                    *:*

UNCONN     0      0                 *:etlservicemgr                   *:*

UNCONN     0      0                 *:dynamid                         *:*

UNCONN     0      0                 *:9003                            *:*

UNCONN     0      0                 *:9004                            *:*

UNCONN     0      0         127.0.0.1:terabase                        *:*

UNCONN     0      0                 *:56803                           *:*

ESTAB      0      0      172.28.204.66:36371                     8.8.8.8:domain

12.显示套接字内存使用情况

-m选项可用于显示每个套接字使用的内存量。[root@renwolecom ~]# ss -ltm

State   Recv-Q Send-Q  Local Address:Port Peer Address:Port

LISTEN  0      128                 *:http           *:*skmem:(r0,rb87380,t0,tb16384,f0,w0,o0,bl0)

LISTEN  0      100         127.0.0.1:smtp           *:*skmem:(r0,rb87380,t0,tb16384,f0,w0,o0,bl0)

LISTEN  0      128                 *:entexthigh     *:*skmem:(r0,rb87380,t0,tb16384,f0,w0,o0,bl0)

LISTEN  0      128     172.28.204.62:zabbix-trapper *:*skmem:(r0,rb87380,t0,tb16384,f0,w0,o0,bl0)

LISTEN  0      128         127.0.0.1:cslistener     *:*skmem:(r0,rb87380,t0,tb16384,f0,w0,o0,bl0)

LISTEN  0      80                 :::mysql         :::*skmem:(r0,rb87380,t0,tb16384,f0,w0,o0,bl0)

LISTEN  0      100               ::1:smtp          :::*skmem:(r0,rb87380,t0,tb16384,f0,w0,o0,bl0)

LISTEN  0      128                :::entexthigh    :::*skmem:(r0,rb87380,t0,tb16384,f0,w0,o0,bl0)

13.显示TCP内部信息

我们可以使用-i选项请求额外的内部TCP信息。[root@renwolecom ~]# ss -lti

State       Recv-Q Send-Q Local Address:Port         Peer Address:Port

LISTEN      0      128               *:chimera-hwm              *:* bbr cwnd:10

LISTEN      0      128               *:etlservicemgr            *:* bbr cwnd:10

LISTEN      0      128   172.28.204.66:27017                    *:* bbr cwnd:10

LISTEN      0      128       127.0.0.1:27017                    *:* bbr cwnd:10

LISTEN      0      128               *:dynamid                  *:* bbr cwnd:10

LISTEN      0      128               *:9003                     *:* bbr cwnd:10

LISTEN      0      128               *:9004                     *:* bbr cwnd:10

LISTEN      0      128               *:http                     *:* bbr cwnd:10

LISTEN      0      128               *:ssh                      *:* bbr cwnd:10

LISTEN      0      100       127.0.0.1:smtp                     *:* bbr cwnd:10

LISTEN      0      128               *:sunwebadmins             *:* bbr cwnd:10

LISTEN      0      128              :::ssh                     :::* bbr cwnd:10

在每个侦听套接字下面,我们可以看到更多信息。注意:-i选项不适用于UDP,如果您指定-u,而非-t,则不会显示这些额外的信息。

14.显示统计信息

我们可以使用-s选项快速查看统计数据。[root@renwolecom ~]# ss -s

Total: 798 (kernel 1122)

TCP:   192 (estab 99, closed 81, orphaned 0, synrecv 0, timewait 1/0), ports 0

Transport Total     IP        IPv6

*         1122      -         -

RAW       1         0         1

UDP       0         0         0

TCP       111       59        52

INET      112       59        53

FRAG      0         0         0

这使我们能够快速看到已建立连接的总数,及各种类型的套接字的计数和IPv4或IPv6的使用情况。

15.基于状态的过滤器

我们可以指定一个套接字的状态,只打印这个状态下的套接字。例如,我们可以指定包括已建立, established, syn-sent,

syn-recv, fin-wait-1, fin-wait-2, time-wait, closed, closed-wait,

last-ack监听和关闭等状态。以下示例显示了所有建立的TCP连接。为了生成这个,我通过SSH连接到了服务器,并从Apache加载了一个网页。然后我们可以看到与Apache的连接迅速转变为等待时间。[root@renwolecom ~]# ss -t state established

Recv-Q Send-Q       Local Address:Port              Peer Address:Port

0      52           172.28.204.67:ssh              123.125.71.38:49518

0      0     ::ffff:172.28.204.67:http      ::ffff:123.125.71.38:49237[root@renwolecom ~]# ss -t state established

Recv-Q Send-Q       Local Address:Port              Peer Address:Port

0      0            172.28.204.67:ssh            103.240.143.126:55682

0      52           172.28.204.67:ssh              123.125.71.38:49518

0      0     ::ffff:172.28.204.67:http      ::ffff:123.125.71.38:49262

16.根据端口号进行过滤

可以通过过滤还可以列出小于(lt),大于(gt),等于(eq),不等于(ne),小于或等于(le),或大于或等于(ge)的所有端口。

例如,以下命令显示端口号为500或以下的所有侦听端口:[root@renwolecom ~]# ss -ltn sport le 500

State       Recv-Q Send-Q Local Address:Port        Peer Address:Port

LISTEN      0      128                *:80                     *:*

LISTEN      0      100        127.0.0.1:25                     *:*

LISTEN      0      100              ::1:25                    :::*

为了进行比较,我们可以执行相反的操作,并查看大于500的所有端口:[root@renwolecom ~]# ss -ltn sport gt 500

State       Recv-Q Send-Q Local Address:Port        Peer Address:Port

LISTEN      0      128                *:12002                  *:*

LISTEN      0      128    172.28.204.62:10051                  *:*

LISTEN      0      128        127.0.0.1:9000                   *:*

LISTEN      0      80                :::3306                  :::*

LISTEN      0      128               :::12002                 :::*

我们还可以根据源或目标端口等项进行筛选,例如,我们搜索具有SSH源端口运行的TCP套接字:[root@renwolecom ~]# ss -t '( sport = :ssh )'

State       Recv-Q Send-Q    Local Address:Port     Peer Address:Port

ESTAB       0      0         172.28.204.66:ssh     123.125.71.38:50140

17.显示SELinux上下文

-Z与-z选项可用于显示套接字的SELinux安全上下文。 在下面的例子中,我们使用-t和-l选项来列出侦听的TCP套接字,使用-Z选项我们也可以看到SELinux的上下文。[root@renwolecom ~]# ss -tlZ

State  Recv-Q Send-Q  Local Address:Port        Peer Address:Port

LISTEN 0      128                 *:sunrpc                 *:*

users:(("systemd",pid=1,proc_ctx=system_u:system_r:init_t:s0,fd=71))

LISTEN 0      5       172.28.204.62:domain                 *:*

users:(("dnsmasq",pid=1810,proc_ctx=system_u:system_r:dnsmasq_t:s0-s0:c0.c1023,fd=6))

LISTEN 0      128                 *:ssh                    *:*

users:(("sshd",pid=1173,proc_ctx=system_u:system_r:sshd_t:s0-s0:c0.c1023,fd=3))

LISTEN 0      128         127.0.0.1:ipp                    *:*

users:(("cupsd",pid=1145,proc_ctx=system_u:system_r:cupsd_t:s0-s0:c0.c1023,fd=12))

LISTEN 0      100         127.0.0.1:smtp                   *:*

users:(("master",pid=1752,proc_ctx=system_u:system_r:postfix_master_t:s0,fd=13))

18.显示版本号

-v选项可用于显示ss命令的特定版本信息,在这种情况下,我们可以看到提供ss的iproute包的版本。[root@renwolecom ~]# ss -v

ss utility, iproute2-ss130716

19.显示帮助文档信息

-h选项可用于显示有关ss命令的进一步的帮助,如果需要对最常用的一些选项进行简短说明,则可以将其用作快速参考。 请注意:这里并未输入完整列表。[root@renwolecom ~]# ss -h

Usage: ss [ OPTIONS ]

20.显示扩展信息

我们可以使用-e选项来显示扩展的详细信息,如下所示,我们可以看到附加到每条行尾的扩展信息。[root@renwolecom ~]# ss -lte

State  Recv-Q Send-Q Local Address:Port   Peer Address:Port

LISTEN 0      128                *:sunrpc *:*      ino:16090 sk:ffff880000100000 

LISTEN 0      5      172.28.204.62:domain *:*      ino:23750 sk:ffff880073e70f80 

LISTEN 0      128                *:ssh    *:*      ino:22789 sk:ffff880073e70000 

LISTEN 0      128        127.0.0.1:ipp    *:*      ino:23091 sk:ffff880073e707c0 

LISTEN 0      100        127.0.0.1:smtp   *:*      ino:24659 sk:ffff880000100f80 

21.显示计时器信息

-o选项可用于显示计时器信息。该信息向我们展示了诸如重新传输计时器值、已经发生的重新传输的数量以及已发送的keepalive探测的数量。[root@renwolecom ~]# ss -to

State      Recv-Q Send-Q Local Address:Port      Peer Address:Port

ESTAB      0      52     172.28.204.67:ssh      123.125.71.38:49518timer:(on,406ms,0)

LAST-ACK   0      1      172.28.204.67:ssh    103.240.143.126:49603timer:(on,246ms,0)

总结:

现在你应该对ss有了初步的认识。如果你想使用ss命令快速检查有关套接字的各种信息,建议你查阅ss的相关手册。



推荐阅读
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • Android开发实现的计时器功能示例
    本文分享了Android开发实现的计时器功能示例,包括效果图、布局和按钮的使用。通过使用Chronometer控件,可以实现计时器功能。该示例适用于Android平台,供开发者参考。 ... [详细]
  • 本文介绍了在Linux下安装和配置Kafka的方法,包括安装JDK、下载和解压Kafka、配置Kafka的参数,以及配置Kafka的日志目录、服务器IP和日志存放路径等。同时还提供了单机配置部署的方法和zookeeper地址和端口的配置。通过实操成功的案例,帮助读者快速完成Kafka的安装和配置。 ... [详细]
author-avatar
手机用户2502909917
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有