码迷,mamicode.com
首页 > 系统相关 > 详细

Linux下ss命令的研究

时间:2019-11-27 19:21:16      阅读:99      评论:0      收藏:0      [点我收藏+]

标签:help   快捷   inux   ethernet   内容   默认   程序   stat   功能   

1.ss命令简介

•ss 是 Socket Statistics 的缩写。ss 命令可以用来获取 socket 统计信息,它显示的内容和 netstat 类似。但 ss 的优势在于它能够显示更多更详细的有关 TCP 和连接状态的信息,而且比 netstat 更快。当服务器的 socket 连接数量变得非常大时,无论是使用 netstat 命令还是直接 cat /proc/net/tcp,执行速度都会很慢。ss 命令利用到了 TCP 协议栈中 tcp_diag。tcp_diag 是一个用于分析统计的模块,可以获得 Linux 内核中第一手的信息,因此 ss 命令的性能会好很多。

 

2.ss与netstat

•在最新的Linux系统里面,netstat的部分命令已经被更为强大的ss取代了,netstat已过时。ss命令用来显示处于活动状态的套接字信息。ss命令可以用来获取socket统计信息,ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。

 技术图片

•上图为stackoverflow社区里一片文章对这两个命令的评论,下图为ss和netstat监控的区别,ss是获取的socket的信息,而netstat是通过解析/proc/net/下面的文件来获取信息包括Sockets,TCP/UDP,IP,Ethernet信息

 技术图片

 

 

3.ss命令探索

•使用ss --help查看netstat常用命令

 技术图片

•ss -tnl 查看主机监听的端口

 技术图片

•ss -tlr 解析IP和端口号

 技术图片

•ss -s 查看概要信息

 技术图片

•ss -at获取tcp socket   ss -au获取udp socket

 技术图片

•通过 dst/src/dport/sprot 语法来过滤连接的来源端口和目标端口

显示大于等于50的端口

 技术图片

•显示状态为established的ssh连接

 技术图片

•time命令分别获取通过netstat和ss命令获取程序和占用资源所用时间

 技术图片

 技术图片

 技术图片

 技术图片

可以看出ss的效率比netstat高出不少

 

4.总结

•ss命令性能出色且功能丰富,可以用来替代 netsate 命令成为我们日常查看 socket 相关信息的利器。其实抛弃 netstate 命令已经是大势所趋,有的 Linux 版本默认已经不再内置 netstate 而是内置了 ss 命令。

•当服务器的socket连接数量变得非常大时,无论是使用netstat命令还是直接•cat /proc/net/tcp,执行速度都会很慢。可能你不会有切身的感受,当服务器维持的连接达到上万个的时候,使用netstat等于浪费生命,而用ss才是节省时间。

•而ss快的秘诀在于它利用到了TCP协议栈中tcp_diag。tcp_diag是一个用于分析统计的模块,可以获得Linux内核中第一手的信息,这就确保了ss的快捷高效。当然,如果系统中没有tcp_diag,ss也可以正常运行,只是效率会变得稍慢(但仍然比netstat要快)。

 

Linux下ss命令的研究

标签:help   快捷   inux   ethernet   内容   默认   程序   stat   功能   

原文地址:https://www.cnblogs.com/yingjiehuang/p/11944377.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!