Monitorar o volume de tráfego de rede pela interface


17

Existe uma maneira de monitorar o tráfego (por exemplo, obter uma visualização ao vivo da utilização) através de uma interface de rede específica, como eth0?

O problema aqui é que o conjunto de ferramentas na caixa é fixo e é praticamente uma implantação de RHEL, portanto, as ferramentas complementares não podem ser usadas.

Procurando por algo básico e geralmente presente como o iostat aqui.


11
Dê uma olhada em stackoverflow.com/questions/596590/… . Algumas das sugestões devem ser úteis.
Andy Smith

Ah, a busca falhou (e eu tentei). Para ser justo, acho que é uma questão de
falha no servidor

Respostas:


14

Os dados que você deseja ver aparecem no antigo ifconfig.

watch ifconfig eth0

ou para melhorar as coisas:

watch -n 1 -d ifconfig eth0

Obrigado - isso além do comentário de @ user239558 estava correto. Estou aceitando sua resposta desde que você foi a primeira a mencionar ifconfig.
BeeOnRope

Spot on. Isso é algo que eu tenho procurado e, embora haja muitas perguntas semelhantes a essa em diferentes fóruns, esta é a primeira resposta que achei que acertou em cheio.
Hazok

ifconfig não está no caminho padrão. / sbin / ifconfig pode ser necessário.
Kevinf #


4

Sem instalar novas ferramentas:

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


4

no pós-2015 ou mais linux isso pode ser melhor watch -n1 -d ip -s link show [interface]


2

Existem muitos utilitários:

  1. Nethogs
  2. iptraf
  3. Iptables pode ser uma boa solução, mas se você estiver usando uma configuração de firewall, será um pouco difícil realocar corretamente as regras

O iptraf é exatamente o que eu estava procurando. Mas seu último lançamento parece estar no IPTraf 3.0.0 - 19 de setembro de 2005. isso pode ser um problema?
Al-Alamin

2

Você também pode usar o iptables para fazer isso:

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

e

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

Então iptables -L -n -v imprimirá quantos pacotes estão passando pela interface, iptables -Z para zerar essa contagem


Cadeia de saída deve ter -o como interface, -i é ilegal
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;

1

Dê uma olhada ntop. Ele fornece muitos dados detalhados.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.