Мониторинг трафика (подсчет переданных байтов) на определенном порту без root-доступа

Есть ли способ отслеживать трафик на определенном порту с помощью команд Linux. Точнее, я хочу подсчитать количество байтов, переданных на конкретный порт. Я знаю, что этого можно добиться с помощью tcpdump, iptables и многих других способов. Однако для каждого из них требуется root-доступ. Есть ли способ добиться этого без root-доступа.

Спасибо.


person boxfish    schedule 02.08.2014    source источник
comment
Вы пробовали читать в /proc/sys/net?   -  person dvasanth    schedule 03.08.2014


Ответы (1)


Нужно было решить и эту проблему, на скорую руку накрутил следующий скрипт. Не требует root-доступа, при необходимости измените, чтобы также рассчитать передаваемые байты (мне требовались только принимаемые байты).

while true; 
do MARKER=$(ifconfig eth0 | grep "[RT]X bytes" | awk '{print $2}' | cut -c 7-); 
sleep 10; 
NEWMARKER=$(ifconfig eth0 | grep "[RT]X bytes" | awk '{print $2}' | cut -c 7-); 
expr ${NEWMARKER} - ${MARKER}; 
set $MARKER=$NEWMARKER; done

Кроме того, измените интервал сна на желаемое значение для ваших целей, перенаправьте в файл, если вам нужно сохранить статистику.

person CDN_admin    schedule 08.01.2015