Linux中netstat与ss命令之间的区别

ss命令用来替代netstat的,可以用来获取socket统计信息,它可以显示和netstat类似的内容。
但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。

ss

快捷高效

  1. ss比netstat快的主要原因是,netstat是遍历/proc下面每个PID目录,ss直接读/proc/net下面的统计信息。所以ss执行的时候消耗资源以及消耗的时间都比netstat少很多。
  2. 当服务器的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(端口类型)
发布了36 篇原创文章 · 获赞 0 · 访问量 838

猜你喜欢

转载自blog.csdn.net/Z1998hx0919/article/details/105317788