ifconfig показывает неправильное количество байтов RX/TX

ifconfig сообщает для eth0 некоторое значение RX = 2,8 ГБ, значение TX = 1,3 ГБ, которое не может быть реальным, поскольку недавно я передал много файлов размером 10 ГБ + через eth0. я бы хотел знать

  • если это просто обычное целочисленное переполнение (ограничение 4 ГБ)
  • или если это показатель того, что существует какой-то злой руткит, который содержит неверные данные

Это глупый вопрос, но расхождение заставляет меня беспокоиться.

Спасибо нильс

2 ответа

Решение

Я бы сказал, что это 4 ГБ, как вы и предполагали. Я столкнулся с этим с довольно недавними 32-битными ядрами Linux.

Вы можете взять исходный код для вашего ядра и посмотреть, является ли он таким же в include/linux/netdevice.h и проверьте тип данных net_device_stats->rx_bytes, Если вы используете 32-битную систему, а время без знака, вы получите только 2^32 байта или 4 ГБ. Подробнее об этом в моем посте здесь.

Если, конечно, ifconfig захватывает счетчики откуда-то, кроме proc в наши дни...

Вы можете настроить 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.

Другие вопросы по тегам