ifconfig 显示错误的 RX/TX 字节数

ifconfig 显示错误的 RX/TX 字节数

ifconfig 告诉 eth0 一些 RX = 2,8GB,TX = 1,3GB 的值,这不可能是真实的,因为我最近通过 eth0 传输了许多 10GB 以上的文件。我想知道

  • 如果这只是一些普通的整数溢出(4GB 限制)
  • 或者这表明有某些恶意的 rootkit 会撒谎

这是一个愚蠢的问题,但是这种差异一直困扰着我。

谢谢你,尼尔斯

答案1

我会说这是 4GB 环绕,正如您所猜测的。我在使用较新的 32 位 Linux 内核时遇到了这个问题。

您可以获取内核的源代码,看看是否相同,include/linux/netdevice.h并检查的数据类型net_device_stats->rx_bytes。如果您使用的是 32 位系统,并且时间是无符号长整型,那么您将只获得 2^32 字节或 4 GB。有关此内容的更多信息,请参阅我的一篇文章这里

当然,除非 ifconfig 现在抓取的是来自 proc 之外的某个地方的计数器……

答案2

您可以设置 iptables 来管理计数器 - 它们甚至可以通过保存/恢复或手动清除/设置计数器为特定值来使它们在重启后继续存在。

如果您还没有 iptables 规则,那么您只需要向输入和输出链添加至少一条允许所有内容的规则,它将提供您想要的内容:

iptables -A INPUT -j ACCEPT
iptables -A OUTPUT -j ACCEPT

然后你就可以看到总数了:

root@devcloner:~# iptables -n -vL
Chain INPUT (policy ACCEPT 2850K packets, 4183M bytes)
 pkts bytes target     prot opt in     out     source               destination         
 22M   32G ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 657K packets, 43M bytes)
 pkts bytes target     prot opt in     out     source               destination         
12951  813K ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           

-x 将显示完整的字节计数器:

root@devcloner:~# iptables -n -vL -x
Chain INPUT (policy ACCEPT 2850263 packets, 4182667884 bytes)
        pkts      bytes target     prot opt in     out     source                   destination         
22285352 32724735127 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0        

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
    pkts      bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 657099 packets, 43320848 bytes)
    pkts      bytes target     prot opt in     out     source               destination         
  102453  6738544 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0  

该信息可能也可以从 /proc 或 /sys 的某处解析。

相关内容