Назад | Перейти на главную страницу

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

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

Глупый вопрос, но меня беспокоит несоответствие.

Спасибо, Нильс

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

Вы можете взять исходный код вашего ядра и посмотреть, совпадает ли он с include/linux/netdevice.h и проверьте тип данных net_device_stats->rx_bytes. Если вы используете 32-битную систему и время беззнаковое long, вы получите только 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.