48

在 linux 中,netstat 命令告诉我们系统中活动套接字的信息。

我了解netstat用于/proc/net/tcp获取系统网络信息。

由于netstat手册页说 netstat 已过时,所以我们应该使用 'ss'。

NOTE
   This program is obsolete.  Replacement for netstat is ss.   Replacement
   for  netstat -r is ip route.  Replacement for netstat -i is ip -s link.
   Replacement for netstat -g is ip maddr.

我发现它ss执行类似的功能,但它不 /proc/net/tcp用于获取系统网络信息。

现在我很好奇如何ss获取系统网络套接字信息?

4

5 回答 5

30

它直接使用使用经典套接字API的Netlink从内核空间获取它们。

于 2012-08-02T13:22:37.140 回答
21

ss包含在 iproute2 包中,是netstat. ss用于转储套接字统计信息。它显示类似于 的信息netstat。它可以显示比其他工具更多的 TCP 和状态信息。它是一种新的、非常有用且速度更快(与 netstat 相比)的工具,用于跟踪 TCP 连接和套接字。

于 2012-08-02T11:07:00.360 回答
15

我制作了一个比较表(在 Google Docs 中)轻量级 HTML 链接netstat),用于在和ss参数之间进行转换。它太大了,无法在此处包含和更新。

谷歌文档截图

简短参数之间的区别的简短版本是:

需要注意的论点: r N i g M W T v C F c A U 2 f

可以安全离开的论点: h V l a n Z s p e o 4 6 x t u S w

于 2020-05-19T03:57:11.303 回答
10

查看 ss 的来源:

https://github.com/shemminger/iproute2/blob/master/misc/ss.c

基本上它直接查询内核并且可以比netstat.

于 2014-03-19T19:46:02.973 回答
4

ss是用于研究 Linux 和 Unix 系统中的套接字的实用程序。它显示类似于netstat并且能够转储套接字统计信息的信息。

netstat不能完全替换为ss. 一些netstat命令更好地对应于ip命令。

    $ netstat -r   replaced by  $ ip route
    $ netstat -i   replaced by  $ ip -s lin
    $ netstat -g   replaced by  $ ip maddr

我会说“旧”netstat命令可以同时替换为ssandip命令。

于 2018-09-21T13:31:53.617 回答