![给定 ifconfig RX/TX 传输的数据包,我如何获得 RX/TX 传输的字节?](https://linux22.com/image/169158/%E7%BB%99%E5%AE%9A%20ifconfig%20RX%2FTX%20%E4%BC%A0%E8%BE%93%E7%9A%84%E6%95%B0%E6%8D%AE%E5%8C%85%EF%BC%8C%E6%88%91%E5%A6%82%E4%BD%95%E8%8E%B7%E5%BE%97%20RX%2FTX%20%E4%BC%A0%E8%BE%93%E7%9A%84%E5%AD%97%E8%8A%82%EF%BC%9F.png)
我正在运行 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