ss命令用来替代netstat的,可以用来获取socket统计信息,它可以显示和netstat类似的内容。
但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。
ss
快捷高效
- ss比netstat快的主要原因是,netstat是遍历/proc下面每个PID目录,ss直接读/proc/net下面的统计信息。所以ss执行的时候消耗资源以及消耗的时间都比netstat少很多。
- 当服务器的socket连接数量非常大时(如上万个),无论是使用netstat命令还是直接cat /proc/net/tcp执行速度都会很慢,相比之下ss可以节省很多时间。ss快的秘诀在于,它利用了TCP协议栈中tcp_diag,这是一个用于分析统计的模块,可以获得Linux内核中的第一手信息。如果系统中没有tcp_diag,ss也可以正常运行,只是效率会变得稍微慢但仍然比netstat要快。
原文链接:https://blog.csdn.net/hustsselbj/article/details/47438781
更新升级
net-tools(netstat)是一套标准的Unix网络工具,用于配置网络接口、设置路由表信息、管理ARP表、显示和统计各类网络信息等等,但是这个工具自2001年起便不再更新和维护了。
即将隆重登场的便是iproute(ss),这是一套可以支持IPv4/IPv6网络的用于管理TCP/UDP/IP网络的工具集。
ss(socket statistics)参数和使用
常用参数和netstat类似,如-anp
-a
显示服务器上所有的sockets连接,直接列出所有网络连接-l
显示正在监听的网络端口-n
显示数字IP和端口,不通过域名服务器-p
显示使用socket的对应的程序-t
只显示TCP sockets-u
只显示UDP sockets-4 -6
只显示v4或v6V版本的sockets-s
查看当前服务器的网络连接统计,打印出统计信息。-0
显示PACKET sockets-w
只显示RAW sockets-x
只显示UNIX域sockets-r
尝试进行域名解析,地址/端口
netstat
参数和使用
常用参数-anplt
-a
显示所有活动的连接以及本机侦听的TCP、UDP端口-l
显示监听的server port-n
直接使用IP地址,不通过域名服务器-p
正在使用Socket的程序PID和程序名称-r
显示路由表-t
显示TCP传输协议的连线状况-u
显示UDP传输协议的连线状况-w
显示RAW传输协议的连线状况
运用广泛
几乎所有的Linux系统都会默认包含netstat命令,但并非所有系统都会默认包含ss命令。
两者输出结果对比
netstat -atn结果:
ss -atn结果:
- netstat将state放在最后一列,而ss将其放在第一列,
- ss能够显示更多更详细的有关TCP和连接状态的信息,
- ss增加了Port(端口类型)