Linux基础命令-ss显示socket信息
创始人
2024-06-01 07:08:59
0

Linux基础命令-netstat显示网络状态

ss

一. 命令介绍

先使用手册查看命令介绍信息

NAME
ss - another utility to investigate sockets

DESCRIPTION
ss is used to dump socket statistics. It allows showing information similar
to netstat. It can display more TCP and state informations than other tools.

ss(Socket Statistics)命令主要功能是显示套接字信息。与netstat命令的使用十分的相似,都是用于显示套接字信息,而ss命令的优势在于它能够显示更多TCP和连接状态的详情信息,并且速度更快更高效。

二. 语法格式

ss的语法格式是:ss 【参数】【过滤器】

SYNOPSIS
ss [options] [ FILTER ]

三. 基本参数

命令的基本参数有以下这些,参数会比较多,当然也可以说明这个命令的用法会挺丰富的。

-n不解析域名
-a显示所有套接字
-l显示处于监听状态的套接字
-o显示计时器信息
-e显示详细的套接字信息
-m显示socket的内存情况
-p显示使用套接字的过程
-i显示内部的TCP信息
-s显示socket使用情况
-4显示ipv4的套接字信息
-6显示ipv6的套接字信息
-0显示PACKET套接字信息
-t显示TCP的套接字信息
-u显示UDP套接字信息
-d显示DCCP套接字信息
-w显示RAW套接字信息
-D将原始TCP套接字信息转储到文件
-r解析IP和端口号

四. 各列所代表的含义

在这里插入图片描述

Netid网络标识符
State每个服务的连接状态
Recv-Q接收socket(套接字)队列中的数据量,以字节为单位
Send-Q发送socket(套接字)队列中的数据量,以字节为单位
Local Address运行本地的计算机地址
Port服务端口
Peer Address对等端口

五. 参考实例

1.列出已建立的连接

默认情况,只使用ss命令,不加任何参数的情况下,它会显示所有已建立连接的套接字列表信息

[root@localhost ~]# ss |wc -l
716
[root@localhost ~]# ss | head -n 3
Netid  State      Recv-Q Send-Q Local Address:Port                 Peer Address:Port                
u_str  ESTAB      0      0       * 37084                 * 37928                
u_str  ESTAB      0      0       * 36812                 * 36814                

2.监听TCP协议的套接字信息

可以使用-l参数监听所有tcp协议的套接字内容

[root@localhost ~]# ss -lt
State      Recv-Q Send-Q  Local Address:Port                   Peer Address:Port                
LISTEN     0      100         127.0.0.1:smtp                              *:*                    
LISTEN     0      128                 *:sunrpc                            *:*                    
LISTEN     0      5       192.168.122.1:domain                            *:*                    
LISTEN     0      128                 *:ssh                               *:*                    
LISTEN     0      128         127.0.0.1:ipp                               *:*                    
LISTEN     0      100             [::1]:smtp                           [::]:*                    
LISTEN     0      128              [::]:sunrpc                         [::]:*                    
LISTEN     0      128              [::]:ssh                            [::]:*                    
LISTEN     0      128             [::1]:ipp                            [::]:*                    

3. 查看主机监听的端口

-n表示不解析域名,显示的是IP+端口的格式

[root@localhost ~]# ss -tnl 
State      Recv-Q Send-Q    Local Address:Port                   Peer Address:Port              
LISTEN     0      100           127.0.0.1:25                                *:*                  
LISTEN     0      128                   *:111                               *:*                  
LISTEN     0      5         192.168.122.1:53                                *:*                  
LISTEN     0      128                   *:22                                *:*                  
LISTEN     0      128           127.0.0.1:631                               *:*              

4. 显示在运行进程的信息

需要使用到-p的参数,结合-tl是显示tcp协议的服务并且处于监听状态下的信息

[root@localhost ~]# ss -tlp  |head -10
State      Recv-Q Send-Q Local Address:Port                 Peer Address:Port                
LISTEN     0      100    127.0.0.1:smtp                     *:*                     users:(("master",pid=1284,fd=13))
LISTEN     0      128        *:sunrpc                   *:*                     users:(("rpcbind",pid=704,fd=8))
LISTEN     0      5      192.168.122.1:domain                   *:*                     users:(("dnsmasq",pid=1533,fd=6))
LISTEN     0      128        *:ssh                      *:*                     users:(("sshd",pid=1176,fd=3))
LISTEN     0      128    127.0.0.1:ipp                      *:*                     users:(("cupsd",pid=1168,fd=11))
LISTEN     0      100    [::1]:smtp                  [::]:*                     users:(("master",pid=1284,fd=14))

可以看到在最后一列会显示进程的名称、PID、fd文件描述符等信息。
还可通过grep过滤信息来获取想知道的服务信息

[root@localhost ~]# ss -ltp | grep ssh
LISTEN     0      128        *:ssh                      *:*                     users:(("sshd",pid=1176,fd=3))
LISTEN     0      128     [::]:ssh                   [::]:*                     users:(("sshd",pid=1176,fd=4))

5. 显示所有已经建立的信息

需要使用-a参数,表示显示所有的连接信息

[root@localhost ~]# ss -a | wc -l
963
[root@localhost ~]# ss  | wc -l
716

因为信息太多,这里就不列出了,可以看下显示所有与默认的情况下,会多出来比较多行信息。
还可以在加上-t -n参数使用

[root@localhost ~]# ss -ant 
State      Recv-Q Send-Q    Local Address:Port                   Peer Address:Port              
LISTEN     0      100           127.0.0.1:25                                *:*                  
LISTEN     0      128                   *:111                               *:*                  
LISTEN     0      5         192.168.122.1:53                                *:*                  
LISTEN     0      128                   *:22                                *:*                  
LISTEN     0      128           127.0.0.1:631                               *:*                  
ESTAB      0      0       192.168.157.166:22                  192.168.157.213:65011              
LISTEN     0      100               [::1]:25                             [::]:*                  
LISTEN     0      128                [::]:111                            [::]:*                  
LISTEN     0      128                [::]:22                             [::]:*                  
LISTEN     0      128               [::1]:631                            [::]:*                  
[root@localhost ~]# ss -nt 
State      Recv-Q Send-Q    Local Address:Port                   Peer Address:Port              
ESTAB      0      0       192.168.157.166:22                  192.168.157.213:65011              

6. 显示服务更多的信息

如显示-o时间信息、-m显示套接字使用的内容、-i显示内部tcp的信息

[root@localhost ~]# ss -imo | head -2
Netid  State      Recv-Q Send-Q Local Address:Port                 Peer Address:Port                
u_str  ESTAB      0      0       * 37084                 * 37928                 skmem:(r0,rb212992,t0,tb212992,f0,w0,o0,bl0,d0)

7. 显示套接字的使用信息

显示使用信息需要用到-s的参数

[root@localhost ~]# ss -s 
Total: 1711 (kernel 2055)
TCP:   11 (estab 1, closed 1, orphaned 0, synrecv 0, timewait 0/0), ports 0Transport Total     IP        IPv6
*	  2055      -         -        
RAW	  1         0         1        
UDP	  11        8         3        
TCP	  10        6         4        
INET	  22        14        8        
FRAG	  0         0         0        

8. 显示IPv4的信息

需要使用-4的参数,在后面跟上要过滤的信息,这里只显示正在监听的服务。

[root@localhost ~]# ss -4 state listening
Netid  Recv-Q Send-Q    Local Address:Port                     Peer Address:Port                
tcp    0      100           127.0.0.1:smtp                                *:*                    
tcp    0      128                   *:sunrpc                              *:*                    
tcp    0      5         192.168.122.1:domain                              *:*                    
tcp    0      128                   *:ssh                                 *:*                    
tcp    0      128           127.0.0.1:ipp                                 *:*               

若要显示IPv6的可以使用-6的参数

[root@localhost ~]# ss -6 state listening
Netid  Recv-Q Send-Q    Local Address:Port                     Peer Address:Port                
tcp    0      100               [::1]:smtp                             [::]:*                    
tcp    0      128                [::]:sunrpc                           [::]:*                    
tcp    0      128                [::]:ssh                              [::]:*                    
tcp    0      128               [::1]:ipp                              [::]:*           

9. 匹配远程与本地地址和端口号

这里需要用到几种参数格式

分别是:
dst :过滤连接的目标地址
src: 过滤连接的本地地址
dport:目标端口
sport:来源端口

匹配远程地址和端口号

ss dst 192.168.157.33
ss dst 192.168.157.33:443
ss dst 192.168.157.33:http

匹配本地端口和端口号

ss src 192.168.157.166
ss src 192.168.157.166:22
ss src 192.168.157.166:ssh

9.1 当然还可以将本地与远程端口和一个数进行比较
使用方法:

ss dport OP num
ss sport OP num

以上文本中的OP可以使用以下这些内容

<=le小于等于
==eq等于
!=ne不等于
>gt大于
<lt小于

是不是突然觉得表格中的符号这么熟悉,如果有学习过shell脚本的,应该一眼就能看出来符号代表的是什么意思。
下面继续来演示下如何使用:
显示来源端口小于50的端口号的内容

[root@localhost ~]# ss -ntul sport lt 50
Netid  State      Recv-Q Send-Q Local Address:Port                Peer Address:Port              
tcp    LISTEN     0      100        127.0.0.1:25                             *:*                  
tcp    LISTEN     0      128                *:22                             *:*                  
tcp    LISTEN     0      100            [::1]:25                          [::]:*                  
tcp    LISTEN     0      128             [::]:22                          [::]:*              

如果要用符号,则需要在符号前面加上转义符。

[root@localhost ~]# ss -ntul sport \< 50
Netid  State      Recv-Q Send-Q Local Address:Port                Peer Address:Port              
tcp    LISTEN     0      100        127.0.0.1:25                             *:*                  
tcp    LISTEN     0      128                *:22                             *:*                  
tcp    LISTEN     0      100            [::1]:25                          [::]:*                  
tcp    LISTEN     0      128             [::]:22                          [::]:*            

总结

以上的内容仅仅只是ss命令的一部分内容,因为ss命令的参数特别多,在用法上更是不计其数,关于查看网络状态信息,ss和netstat了解使用方法也是很有必要的。若觉得以上内容还行的,可以点赞支持一下!
在这里插入图片描述

相关内容

热门资讯

安卓系统音乐软件推荐,五大热门... 你有没有发现,手机里音乐软件那么多,挑一款适合自己的真心不容易啊!安卓系统上的音乐软件更是五花八门,...
安卓系统刷三星系统,轻松刷入最... 你有没有想过,你的安卓手机其实可以变身成三星的旗舰机呢?没错,就是那种屏幕大、性能强、系统流畅的旗舰...
塞班系统可以转为安卓,跨越时代... 你知道吗?现在科技的发展真是让人眼花缭乱,连我们曾经熟悉的塞班系统也能华丽转身,变成安卓系统呢!是不...
安卓系统如何录像剪辑,录像剪辑... 亲爱的手机控们,你是否有过这样的经历:在某个瞬间,你捕捉到了一段令人难忘的画面,却因为没来得及记录而...
安卓系统强行提高配置,配置提升... 最近你的安卓手机是不是感觉有点儿“发烧”了?没错,就是那种配置突然“升级”的感觉。你是不是也觉得,手...
安卓系统能做设计吗,探索安卓系... 你有没有想过,安卓系统竟然也能做设计?是的,你没听错,这个我们日常使用的手机操作系统,竟然也能成为设...
安卓系统几年后使用,探索多年使... 你有没有想过,那些陪伴我们多年的安卓手机,它们现在过得怎么样了呢?安卓系统,这个曾经让我们爱恨交加的...
平板安卓苹果双系统,安卓与苹果... 你有没有想过,拥有一台既能运行安卓系统,又能使用苹果系统的平板电脑,那该是多么酷炫的事情啊!想象一边...
嘉和病历系统安卓,便捷医疗信息... 你有没有听说过嘉和病历系统安卓版?这可是医疗行业的一大神器呢!想象医生们拿着手机就能轻松管理病历,患...
安卓10更改系统号,揭秘系统编... 你知道吗?最近安卓系统又来了一次大更新,安卓10正式上线了!这次更新可是带来了不少新功能,其中最引人...
小米墨水屏 安卓系统,融合科技... 你知道吗?在科技日新月异的今天,电子阅读器市场也迎来了新的活力。而小米,这个我们熟悉的品牌,最近推出...
系统软件最少的安卓系统,基于最... 你有没有想过,手机系统就像是我们生活的操作系统,有时候太复杂了,让人感觉头都大了。今天,我要给你介绍...
安卓系统关闭应用推荐,安卓系统... 你有没有发现,手机里的安卓系统最近有点儿“小情绪”,总是给你推荐一些你根本不感兴趣的应用?别急,今天...
车载安卓系统如何用,智能驾驶体... 你有没有想过,你的车载安卓系统其实是个隐藏的宝库呢?没错,就是那个你每天开车时几乎不离手的那个屏幕,...
安卓系统更新如何取消,```p... 你有没有遇到过这种情况:安卓手机的系统更新推送得让人有点头疼,有时候更新后的系统还各种不适应。别急,...
安卓系统源码修改练习,从零开始... 亲爱的技术爱好者,你是否曾梦想过深入安卓系统的内核,亲手修改源码,让手机变得更加个性化?那就让我们一...
安卓考勤系统论文,基于安卓平台... 你有没有想过,每天打卡上班,是不是也能变得有趣起来呢?没错,就是那个我们每天都要面对的安卓考勤系统。...
安卓系统哪家流畅度,安卓系统流... 手机里的安卓系统,就像是每个人的小世界,各有各的风采。但说到流畅度,这可是大家最关心的问题了。今天,...
安卓开不了定位系统,安卓设备定... 最近是不是发现你的安卓手机定位系统突然罢工了?别急,别慌,今天就来给你详细解析一下这个问题,让你轻松...
安卓系统怎么设置airpod,... 你有没有发现,自从AirPods问世以来,它就成为了科技界的宠儿?这款无线耳机不仅音质出众,而且连接...