当前位置: 技术问答>linux和unix
Linux下如何获取网卡设备收发数据包相关统计数据?
来源: 互联网 发布时间:2016-09-10
本文导语: 需要的信息就是/proc/net/dev中的数据。 不过/proc/net/dev有个问题,它无法呈现类似于eth0:1、eth0:2这样的接口相关信息,而只是eth0、eth1这样的。 简单查了一下,可能会用到ioctl、ethtool等编程接口,但是查了、等头文件...
需要的信息就是/proc/net/dev中的数据。
不过/proc/net/dev有个问题,它无法呈现类似于eth0:1、eth0:2这样的接口相关信息,而只是eth0、eth1这样的。
简单查了一下,可能会用到ioctl、ethtool等编程接口,但是查了、等头文件,却没有发现什么端倪。
请大牛赐教,谢~
不过/proc/net/dev有个问题,它无法呈现类似于eth0:1、eth0:2这样的接口相关信息,而只是eth0、eth1这样的。
简单查了一下,可能会用到ioctl、ethtool等编程接口,但是查了、等头文件,却没有发现什么端倪。
请大牛赐教,谢~
|
你的要求并非真的无法实现。
网络接口统计数据是由网卡驱动维护的,之所以无法获取虚拟网络接口设备的相关数据,是因为驱动没有做。
如果真的要分别实现绑定在同一个MAC上的多个接口相关的统计信息,那么就得从驱动层面下手。
当然,这只是一个理论上的答案,具体如何实现可能还会遇到一些问题。
你可以根据自己的实际情况对网卡驱动进行修改。
网络接口统计数据是由网卡驱动维护的,之所以无法获取虚拟网络接口设备的相关数据,是因为驱动没有做。
如果真的要分别实现绑定在同一个MAC上的多个接口相关的统计信息,那么就得从驱动层面下手。
当然,这只是一个理论上的答案,具体如何实现可能还会遇到一些问题。
你可以根据自己的实际情况对网卡驱动进行修改。
|
eth0:1、eth0:2这样的是虚拟的
他实际走的同样是物理口eth0 所以你统计eth0就可以了吧
他实际走的同样是物理口eth0 所以你统计eth0就可以了吧
|
系统好象不作这样的区分计数吧.
|
不好意思 有点罗嗦 再说一句
你配置了eth0:1 eth0:2之后
用ifconfig显示一下就会发现 eth0:1 eth0:2没有如下的统计信息
RX packets:6444480 errors:0 dropped:0 overruns:0 frame:0
TX packets:3945728 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:764466584 (729.0 MiB) TX bytes:358333607 (341.7 MiB)
你配置了eth0:1 eth0:2之后
用ifconfig显示一下就会发现 eth0:1 eth0:2没有如下的统计信息
RX packets:6444480 errors:0 dropped:0 overruns:0 frame:0
TX packets:3945728 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:764466584 (729.0 MiB) TX bytes:358333607 (341.7 MiB)
|
嘿 真让我学习了
虽然我这样用过 我还以为要同一个段的呢!
|
eth0:1 eth0:2也可以叫做eth0的别名设备
|
就像我1 2楼说的 eth0:1 eth0:2只是虚拟的 不是真实存在的 他真实走的依然是eth0
不要轻易的去怀疑系统命令的缺陷或者bug
你可以这样测试一下 eth0:1里设置和eth0不同段的ip 你看卡eth0:1它还会好用吗?
/proc/net/dev
ifconfig
Net-SNMP
你都认为有问题 为什么不尝试改变自己的想法