Контроль обсягу мережевого трафіку через інтерфейс


17

Чи є спосіб відстежувати трафік (наприклад, отримати прямий огляд використання) через певний мережевий інтерфейс, скажімо, eth0?

Привід тут полягає в тому, що набір інструментів на коробці фіксований, і це майже запас RHEL розгортання, тому додаткові інструменти використовувати не можна.

Шукаєте щось базове і зазвичай присутні тут, як іостат.


1
Погляньте на stackoverflow.com/questions/596590/… . Деякі пропозиції щодо цього мають бути корисними.
Енді Сміт

О, пошук не вдається (і я спробував). Справедливості, я думаю, що це серверне запитання, а не ТАК :)
BeeOnRope

Відповіді:


15

Дані, які ви хочете побачити, відображаються в старому доброму файлі ifconfig.

watch ifconfig eth0

або щоб покращити речі:

watch -n 1 -d ifconfig eth0

Дякую - це на додаток до коментаря @ user239558 було просто правильно. Я приймаю вашу відповідь, оскільки ви вперше згадали ifconfig.
BeeOnRope

Пляма на. Це те, що я шукав, і хоча є багато подібних питань до цього на різних форумах, це перша відповідь, яку я виявив, що це нігті.
Hazok

ifconfig не в шляху за замовчуванням. / sbin / ifconfig може знадобитися.
кевінф

15

Я використовую команду iftop. Він показує статистику в режимі реального часу.

iftop -i eth0

Ознайомтесь із сценографіями тут:

http://www.thegeekstuff.com/2008/12/iftop-guide-display-network-interface-bandwidth-usage-on-linux/


Чудово виглядає, на жаль, я не в змозі встановити жодних нових інструментів на цих замкнених ящиках.
BeeOnRope

4

Без встановлення нових інструментів:

while ifconfig eth0 | grep 'RX bytes'; do sleep 10; done



2

Є багато комунальних послуг:

  1. Сітки
  2. іптраф
  3. Iptables може бути хорошим рішенням, але якщо ви використовуєте налаштований брандмауер, буде важко перенести правильно правила

iptraf - це саме те, що я шукав. Але останній випуск здається в IPTraf 3.0.0 - 19 вересня 2005 року. Чи може це бути проблемою?
Аль-Аламін

2

Ви також можете використовувати iptables, щоб зробити такі думки:

iptables -A INPUT -p tcp --dport $port -i eth0

і

iptables -A OUTPUT -p tcp --sport $port -i eth0

Тоді iptables -L -n -v надрукує вам, скільки пакетів пройшло через інтерфейс, iptables -Z до нуля цей рахунок


Вихідний ланцюг повинен мати -o як інтерфейс, -i незаконне
drake7707

2
function humanValue()
{
    h=( '' K M G T P )
    i=1; v=$(( $1 * 8 ))
    while [ $v -gt $(( 1 << 10 * i )) ]; do let i++; done;
    echo -n "$(( $v >> 10 * --i )) ${h[i]}b/s";
}
ifaces=$(ip addr | grep -E "^[0-9]:" | cut -d" " -f2 | tr -d \:)
declare -A RX2 TX2;
while sleep 1; 
do
    date 
    for INTERFACE in $ifaces;
    do
        RX1=$(cat /sys/class/net/${INTERFACE}/statistics/rx_bytes)
        TX1=$(cat /sys/class/net/${INTERFACE}/statistics/tx_bytes)
        DOWN=$(( RX1 - RX2[$INTERFACE] ))
        UP=$(( TX1 - TX2[$INTERFACE] ))
        RX2[$INTERFACE]=$RX1; TX2[$INTERFACE]=$TX1
        echo -e "[ $INTERFACE:\tRX: $(humanValue $DOWN)\t|\tTX: $(humanValue $UP) ]"
    done;
done;

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.