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.