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了解使用方法也是很有必要的。若觉得以上内容还行的,可以点赞支持一下!
在这里插入图片描述

相关内容

热门资讯

安卓系统把视频设为铃声,如何将... 你有没有想过,手机里的视频竟然能变成铃声?是的,你没听错,安卓系统竟然有这样的神奇功能!今天,就让我...
边锋杭麻圈安卓系统,边锋科技引... 你有没有听说过边锋杭麻圈安卓系统?这可是最近在游戏圈里火得一塌糊涂的存在哦!想象你正坐在家里,手握着...
ios系统能转移到安卓系统,轻... 你有没有想过,有一天你的手机从iOS系统跳转到安卓系统,会是怎样的体验呢?这可不是天方夜谭,随着科技...
安卓系统网络连接查看,安卓系统... 你有没有遇到过这种情况:手机里装了各种APP,可就是不知道哪个在偷偷消耗着你的流量?别急,今天就来教...
什么安卓系统优化的好,打造流畅... 你有没有发现,手机用久了,就像人一样,会变得有些“臃肿”呢?尤其是安卓系统,有时候感觉就像一个老态龙...
手机安卓系统ios系统怎么安装... 你有没有发现,现在手机里的软件真是五花八门,让人眼花缭乱?无论是安卓系统还是iOS系统,都能轻松安装...
按音量键报警安卓系统,安卓系统... 你有没有遇到过这种情况:手机突然发出刺耳的警报声,吓得你心跳加速,还以为发生了什么大事?别担心,今天...
安卓系统改win版系统怎么安装... 你有没有想过,把你的安卓手机换成Windows系统的电脑呢?想象那流畅的触控体验和强大的办公功能,是...
安卓系统如何备份到苹果,轻松实... 你是不是也有过这样的烦恼:手机里的照片、联系人、应用数据等等,突然间就消失得无影无踪?别担心,今天就...
修改安卓系统参数设置,安卓系统... 你有没有发现,你的安卓手机有时候就像一个不听话的小孩子,总是按照自己的节奏来,让你有点头疼?别急,今...
安卓手机gps定位系统,畅享智... 你有没有发现,现在不管走到哪里,手机都能帮你找到路?这都得归功于安卓手机的GPS定位系统。想象你站在...
华为不能安卓系统升级,探索创新... 你知道吗?最近有个大新闻在科技圈里炸开了锅,那就是华为的新款手机竟然不能升级安卓系统了!这可真是让人...
汽车加装安卓系统卡住,探究原因... 你有没有遇到过这样的尴尬情况:汽车加装了安卓系统,结果屏幕突然卡住了,就像被施了魔法一样,怎么也动弹...
电量壁纸安卓系统下载,打造个性... 手机电量告急,是不是又得赶紧找充电宝了?别急,今天就来给你安利一款超实用的电量壁纸,让你的安卓手机瞬...
iPhonex里面是安卓系统,... 你有没有想过,那个我们每天都离不开的iPhone,里面竟然可能是安卓系统?是的,你没听错,就是那个以...
ios系统比安卓系统好在哪里,... 你有没有想过,为什么有些人对iOS系统情有独钟,而有些人却对安卓系统爱不释手呢?今天,就让我带你从多...
安卓系统跟踪设置大小,跟踪设置... 你知道吗?现在智能手机几乎成了我们生活的必需品,而安卓系统作为全球最受欢迎的操作系统之一,它的跟踪设...
在线迎新系统下载安卓,轻松开启... 你有没有想过,开学季的到来,就像一场盛大的狂欢,而在这个狂欢中,有一个小助手,它默默地守护着你的入学...
安卓系统怎么申请微信号,一键申... 你有没有想过,在安卓手机上申请一个微信账号,竟然也能变得如此简单?没错,就是那个我们每天离不开的社交...
安卓手机系统里怎么清理,轻松优... 手机里的东西越来越多,是不是感觉安卓手机系统越来越慢了呢?别急,今天就来教你怎么清理安卓手机系统,让...