在Linux系统中,命令 ss 同样是用于查看当前系统网络状态信息,包括端口、TCP、UDP等等,该命令功能类似于netstat (有关netstat命令的说明详见)
每天一条Linux命令(26) netstat (网络状态)
命令ss相比于netstat的优势:
-
显示更多且更详细的网络链接状态信息
-
速度上更快、高效
【注】 ss命令在个别Linux发行版本中并不是已内置命令,需要单独安装
yum -y install iproute # 安装命令
语法
ss [选项] [过滤器]
主要参数说明
-n 显示IP地址,不进行DNS解析
-r 尝试解析数字IP地址和端口
-a 显示所有socket链接
-l 显示所有监听socket
-o 显示计时器信息
-e 显示详细的socket信息
-m 显示socket的内存使用情况
-p 显示所有socket的进程
-i 显示TCP内部信息
-t 显示TCP的socket
-u 显示UCP的socket
-s 显示socket统计信息
案例
参数 -s 统计socket信息(当服务器有大量的socket链接时,该命令最常用)
[root@master ~]# ss -s
Total: 559 (kernel 1071)
TCP: 6 (estab 1, closed 0, orphaned 0, synrecv 0, timewait 0/0), ports 0
Transport Total IP IPv6
* 1071 - -
RAW 1 0 1
UDP 0 0 0
TCP 6 3 3
INET 7 3 4
FRAG 0 0 0
[root@master ~]#
组合参数 -lntup 显示所有正在监听的TCP和UDP链接信息
[root@master ~]# ss -lntup | column -t
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
tcp LISTEN 0 100 127.0.0.1:25 *:* users:(("master",pid=1334,fd=13))
tcp LISTEN 0 128 *:22 *:* users:(("sshd",pid=1075,fd=3))
tcp LISTEN 0 100 [::1]:25 [::]:* users:(("master",pid=1334,fd=14))
tcp LISTEN 0 80 [::]:3306 [::]:* users:(("mysqld",pid=1310,fd=18))
tcp LISTEN 0 128 [::]:22 [::]:* users:(("sshd",pid=1075,fd=4))
[root@master ~]#
上面的 column -t 表示将输出结果格式化(如果输出很乱的话可以使用此方法)
组合参数 -an 显示所有的socket链接
[root@master ~]# ss -an
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
nl UNCONN 0 0 0:755 *
nl UNCONN 0 0 0:0 *
nl UNCONN 0 0 0:755 *
nl UNCONN 4352 0 4:1915 *
nl UNCONN 768 0 4:0 *
nl UNCONN 0 0 6:0 *
nl UNCONN 0 0 7:1 *
nl UNCONN 0 0 7:0 *
更多内容与资源请关注公众号:数据与编程之美