给定 ifconfig RX/TX 传输的数据包,我如何获得 RX/TX 传输的字节?

给定 ifconfig RX/TX 传输的数据包,我如何获得 RX/TX 传输的字节?

我正在运行 UbuntuLinuxv18,这是生成的有关我的网卡的信息ifconfig

$ ifconfig eth0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.123  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::4a75:bbe4:742d:d77b  prefixlen 64  scopeid 0x20<link>
        ether b8:27:eb:55:c7:9f  txqueuelen 1000  (Ethernet)
        RX packets 2443063  bytes 868405621 (828.1 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 2343559  bytes 1022562153 (975.1 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

某些系统(即:路由器上的嵌入式 Linux)仅报告 RX/TX 数据包,但不显示 RX/TX 字节。

在Linux操作系统上有什么办法获取给定 RX/TX 数据包的 RX/TX 字节

我认为一些相关的问题是:

  • 这个等价总是相同的(即:1024 因子)吗?
  • 这种等价性在运行时(动态)会改变吗?
  • 这个等效项是否依赖于操作系统?或者也许依赖于网卡?
  • 有没有等价的地方?

答案1

不存在等价物,数据包的大小取决于其内容。您只能获得最小和最大尺寸;例如,以太网帧可以占用 72 到 1530 个八位字节(忽略巨型帧),因此n以太网接口上的数据包代表 72 ×n和 1530 ×n传输的字节。

ifconfig路由器上的命令可能不会显示字节计数,但如果您的路由器运行 Linux,则会跟踪这些计数;作为莫斯维评论过,你应该能够看到他们使用

ip -s link show eth0

或者

head /sys/class/net/eth0/statistics/*_bytes

相关内容