由于ifconfig
在主要的 Linux 发行版中显然已弃用,我想我会了解一些关于ip
应该使用的工具而不是ifconfig
.
在这里我遇到了一个问题:当它自己运行时,ifconfig
除了其他信息之外,还会显示每个接口上接收/传输的字节数。我找不到从ip
. 这个工具没有这个功能吗?我可以使用哪些其他内置工具来获取这些统计信息?
由于ifconfig
在主要的 Linux 发行版中显然已弃用,我想我会了解一些关于ip
应该使用的工具而不是ifconfig
.
在这里我遇到了一个问题:当它自己运行时,ifconfig
除了其他信息之外,还会显示每个接口上接收/传输的字节数。我找不到从ip
. 这个工具没有这个功能吗?我可以使用哪些其他内置工具来获取这些统计信息?
作为 iproute2 软件包一部分的
ip
命令是新工具。该link
子命令用于管理设备/接口。如果您可以使用获取接口的统计信息
ip -s link
另一种选择是使用 /proc 文件系统。/proc/net/dev文件包含有关已配置网络接口的统计信息。每条线路专用于一个网络接口,它包含接收和发送的统计信息。统计信息包括接收/发送字节总数、数据包、丢弃、错误等指标。
或者您可以尝试netstat命令,它可以显示所有网络接口和相关统计信息:
您可以通过 proc 获取所有必要的信息
您也可以使用 iptables 并解析输出。
对于收到的数据包
对于传输的数据包
如果服务器是网关,那么你还应该解析FORWARD链
您可以直接读取文件
/sys/class/net/wlp3s0/statistics/rx_bytes
并获取 rx_byes 而无需调用其他命令,vnstat
也很好。据我所知,Linux 将所有信息存储在文件中,因此最好找到这些文件并获取信息。找到相关文件是一项挑战。您还可以使用 ethtool:
ethtool 的好处是您可以看到每个 rx / tx 队列以及它们是如何平衡的。
我发现
watch
使用所有这些工具来更新屏幕是一个很棒的工具。然而,这些工具中的大多数将流量显示为每秒字节数或数据包。我发现很难将字节转换为 gigs 或 pps 到每秒数百万个数据包。只是提示,请查看 Cloudflare 的mmwatch
工具。它和手表一样,但会自动进行计算并像手表一样将输出显示到屏幕上。(示例:因此您将看到1.2m/s
每秒 120 万个数据包)https://github.com/cloudflare/cloudflare-blog/blob/master/2017-06-29-ssdp/mmwatch
另外,
ethtool -S eth0
给出了很多输出,我用以下方式用 mmwatch 显示接收队列和丢弃: