Blog Linux Avante

bandwhich mostra o que está ocupando a largura de banda da sua rede no Linux e no macOS

24 de janeiro de 2020

ferramenta de utilização de largura de banda de rede para Linux e macOS

bandwhich é uma ferramenta de utilização de largura de banda de terminal relativamente nova para Linux, BSD e macOS, escrita em Rust. Mostra a utilização atual da rede por processo, conexão e IP/nome de host remoto.

O objetivo principal desta ferramenta é mostrar o que está ocupando sua largura de banda. Foi originalmente chamado de "what", mas seu nome foi mudado para bandwhich há cerca de 3 semanas.

bandwhich é capaz de mostrar a utilização da rede atual por processo, conexão e IP/nome de host remoto ao farejar uma determinada interface de rede e gravar o tamanho do pacote IP, referenciando-o com o sistema de arquivos /proc no Linux e lsof no macOS. Além disso, a ferramenta tenta resolver os endereços IP de seus nomes de host em segundo plano, usando DNS reverso "com base no melhor esforço"; isso pode ser desabilitado usando a opção -n / --no-resolve.

Por padrão, bandwhich é executado no modo interativo e possui 3 painéis que mostram: utilização da rede por nome do processo, utilização por conexão e utilização por endereço remoto. Como o bandwhich tem uma interface de usuário de terminal responsiva, a janela do terminal na qual você executa a bandwhich deve ser grande o suficiente para que esses 3 painéis sejam exibidos - dependendo da largura e/ou altura da janela, apenas um ou dois desses painéis podem ser mostrados.

ferramenta de utilização de largura de banda de rede

bandwhich tem uma interface de usuário de terminal responsiva

Se você quiser exibir apenas um desses painéis, o bandwhich tem uma opção para isso - execute-o com -a / --addresses para mostrar apenas a tabela de endereços, -c / connections para mostrar apenas a tabela de conexões de rede ou execute-o usando apenas -p / --processes para mostrar apenas a tabela de processos.

O recurso que permite selecionar quais painéis/tabelas mostrar na linha de comando foi adicionado recentemente, junto com o suporte para IPv6 e detecção de tráfego de VPN no Mac. O suporte para interfaces WireGuard também foi adicionado recentemente, bem como um recurso pequeno, mas útil, que permite pausar a atualização da IU pressionando a tecla SPACE (isso é apenas para o modo interativo - não funciona com o modo bruto).

bandwhich modo bruto

bandwhich executando no modo bruto, filtrando resultados para "rclone" (bandwhich --raw | grep rclone)

Além do modo interativo, bandwhich também possui um modo raw (para usá-lo, execute bandwhich com a opção -r / --raw) que produz uma saída amigável à máquina. Este modo rola automaticamente a saída bruta sem remover nenhuma linha anterior. Seria útil se isso mostrasse um carimbo de data/hora regular na forma de% H:% M:% S, mas talvez esse recurso seja adicionado em uma versão futura.

Também é importante notar que, por padrão, bandwhich mostra a utilização da largura de banda para todas as interfaces de rede disponíveis (ativas). Caso queira especificar uma interface de rede específica para escutar, use a opção -i / --interface seguida pelo nome da interface de rede, por exemplo, eth0, enp4s0 ou qualquer que seja a interface chamada.

Existem algumas ferramentas que podem mostrar a utilização da largura de banda da rede na linha de comando, incluindo iftop, nethogs e outros. bandwhich é semelhante em alguns aspectos, mas também faz as coisas de forma diferente.

Por exemplo, iftop, que exibe o uso da largura de banda em uma interface por host, não mostra o processo que está utilizando a largura de banda. Por outro lado, o nethogs, uma ferramenta de linha de comando que agrupa a largura de banda por processo (mostra o PID, usuário, programa, interface e o enviado/recebido por PID), é muito mais semelhante nas informações que mostra em comparação com bandwhich, mas nethogs carece de um modo de saída bruto que pode ser útil em vários casos. Além disso, os nethogs não mostram conexões individuais. A forma como as informações são apresentadas também difere, e eu pessoalmente gosto bastante da interface de usuário do terminal do bandwhich.

De qualquer forma, não estou aqui para pregar, mas apenas para informar. Use a ferramenta que você mais gosta e mais adequada para o que você precisa.

Instale bandwhich

Instalar bandwhich

A página do projeto do bandwhich vinculada acima contém instruções de instalação para Arch Linux, Nix/NixOS, Void Linux, Fedora (Copr) e macOS. Existem também instruções para instalar o bandwhich usando Cargo, o gerenciador de pacotes Rust, que deve funcionar em qualquer distribuição Linux. O aplicativo não funciona no Microsoft Windows, pelo menos por enquanto.

A maneira mais fácil de instalar o bandwhich em uma distribuição Linux para a qual não há pacotes disponíveis é baixar o binário pré-compilado na aba bandwhich releases e, em seguida, extrair o arquivo para que você tenha o executável bandwhich pronto para usar. Você provavelmente vai querer instalar isso em algum lugar em seu $PATH, por exemplo /usr/local/bin - você pode instalá-lo usando (execute este comando na pasta onde extraiu o binário bandwhich):

Comandos para usar no terminal

sudo install bandwhich /usr/local/bin

É importante observar que, uma vez que o bandwhich fareja pacotes de rede, ele requer privilégios de root. Execute-o com sudo em MacOS e Linux, ou apenas para Linux você pode dar ao binário bandwhich os privilégios necessários para que ele não exija a execução com sudo, usando:

Comandos para usar no terminal

sudo setcap cap_sys_ptrace,cap_dac_read_search,cap_net_raw,cap_net_admin+ep `which bandwhich`

Confira a versão original desse post em inglês
Propaganda
Blog Comments powered by Disqus.
Propaganda