转自:https://blog.csdn.net/z1998hx0919/article/details/105317788
ss命令用来替代netstat的,可以用来获取socket统计信息,它可以显示和netstat类似的内容。
但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。
- 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要快。

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传输协议的连线状况
两者输出结果对比
-
netstat -atn结果:

-
ss -atn结果:

netstat将state放在最后一列,而ss将其放在第一列,
ss能够显示更多更详细的有关TCP和连接状态的信息,
ss增加了Port(端口类型)




