Контролировать объем сетевого трафика через интерфейс


17

Есть ли способ мониторинга трафика (например, получить представление об использовании в реальном времени) через определенный сетевой интерфейс, скажем, eth0?

Выгода здесь в том, что набор инструментов на коробке фиксирован и является в значительной степени стандартным развертыванием RHEL, поэтому дополнительные инструменты использовать нельзя.

Ищете что-то простое и обычно присутствует, как, например, здесь.


1
Взгляните на stackoverflow.com/questions/596590/… . Некоторые из предложений должны быть полезными.
Энди Смит

Ох, поиск не удался (и я пытался). Честно говоря, я думаю, что это вопрос об ошибке сервера, а не ТАК :)
BeeOnRope

Ответы:


15

Данные, которые вы хотите увидеть, отображаются в старом добром ifconfig.

watch ifconfig eth0

или чтобы вещи выделялись лучше:

watch -n 1 -d ifconfig eth0

Спасибо - это в дополнение к комментарию @ user239558 было просто правильно. Я принимаю ваш ответ, так как вы были первым, кто упомянул ifconfig.
BeeOnRope

Пятно на. Это то, что я искал, и хотя на разных форумах есть много похожих вопросов, это первый ответ, который я нашел, который прибивает его.
Хазок

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


4

на Linux после 2015 года это может быть лучше watch -n1 -d ip -s link show [interface]


2

Есть много утилит:

  1. Nethogs
  2. IPTraf
  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.