【问题标题】:difference between netstat and ss in linux?linux中netstat和ss的区别?
【发布时间】:2012-07-30 14:13:45
【问题描述】:

在 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是如何获取系统网络socket信息的?

【问题讨论】:

    标签: linux sockets netstat


    【解决方案1】:

    查看 ss 的来源:

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

    基本上是直接查询内核,响应速度比netstat快很多。

    【讨论】:

      【解决方案2】:

      我创建了一个comparison table (in Google Docs) (light HTML link) 用于在netstatss 参数之间进行转换。它太大了,无法在此处包含和更新。

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

      需要注意的参数: 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

      【讨论】:

        【解决方案3】:

        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 命令可以替换为ssip 命令。

        【讨论】:

          【解决方案4】:

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

          【讨论】:

            【解决方案5】:

            它使用Netlink 直接从内核空间获取它们,该sockets 使用经典的sockets API。

            【讨论】:

            • 谢谢,如果有更详细的关于ss如何向内核空间查询信息的信息就更好了
            猜你喜欢
            • 2018-08-29
            • 1970-01-01
            • 2015-01-13
            • 1970-01-01
            • 1970-01-01
            • 2015-01-20
            • 2010-12-14
            • 2015-10-27
            • 1970-01-01
            相关资源
            最近更新 更多