Pular para o conteúdo

bandwhich - Monitor de Largura de Banda por Processo

bandwhich - Monitor de Largura de Banda por Processo

bandwhich é um utilitário de terminal Rust que exibe a utilização atual de rede dividida por processo, conexão e IP/hostname remoto. Diferentemente de iftop (por conexão) ou nethogs (apenas por processo), bandwhich correlaciona sockets com o processo proprietário e resolve endpoints remotos, para que você veja instantaneamente qual aplicativo — e qual host remoto — está consumindo largura de banda.

Instalação

PlataformaComando
Cargo (todas as plataformas)cargo install bandwhich
Arch Linuxsudo pacman -S bandwhich
Debian/Ubuntusudo apt install bandwhich
Fedorasudo dnf install bandwhich
macOS (Homebrew)brew install bandwhich
Nixnix-env -iA nixpkgs.bandwhich
Binário pré-compiladoBaixe da página GitHub Releases

Privilégios

bandwhich deve fazer sniff de pacotes, portanto precisa de capacidades elevadas:

# Mais simples: execute com sudo
sudo bandwhich

# Ou conceda ao binário capacidades uma vez (sem sudo depois, Linux)
sudo setcap cap_net_raw,cap_net_admin=eip $(which bandwhich)

Uso Básico

ComandoDescrição
sudo bandwhichMonitora todas as interfaces, TUI ao vivo
sudo bandwhich -i eth0Observa uma única interface
sudo bandwhich --interface wlan0Mesmo, forma longa
bandwhich --helpLista completa de opções
bandwhich --versionVersão

Opções Principais

OpçãoDescrição
-i, --interface NAMELimita monitoramento a uma interface
-n, --no-resolvePula buscas DNS reversas (mais rápido, IPs brutos)
-r, --rawSaída legível por máquina, não interativa (bom para logging)
-p, --processesMostra apenas a tabela de processos
-c, --connectionsMostra apenas a tabela de conexões
-a, --addressesMostra apenas a tabela de endereços remotos
--total-utilizationImprime um total único em vez da UI ao vivo
-s, --show-dnsInclui consultas DNS na visualização de conexões
-d, --dns-server IPUsa um resolvedor específico para buscas reversas

Teclas Interativas

TeclaAção
TabAlterna layout / rotaciona qual tabela está expandida
SpacePausa / retoma atualizações
/ Rola dentro de uma tabela
q / Ctrl+CSai

Lendo a Exibição

bandwhich mostra três tabelas ao vivo:

TabelaDiz a você
Utilização por processoQuais executáveis estão enviando/recebendo, com taxas para cima/para baixo
ConexõesCada socket: local → remoto, protocolo e taxa por conexão
Utilização por endereço remotoQuais hosts remotos (resolvidos) você está trocando mais dados

As taxas são mostradas como throughput atual para cima (▲) e para baixo (▼), atualizadas cerca de uma vez por segundo.

Fluxos de Trabalho Comuns

# "O que está comendo meu upload agora?" — apenas processos, sem lag de DNS
sudo bandwhich -p -n

# Investiga uma interface barulhenta e registra um stream bruto para análise posterior
sudo bandwhich -i eth0 --raw | tee bandwhich-eth0.log

# Snapshot único da utilização total (scripts/cron)
sudo bandwhich --total-utilization -n

# Encontra os principais conversadores remotos (ex: exfiltração ou trabalho de backup)
sudo bandwhich -a

bandwhich vs Outros Monitores de Rede

FerramentaGranularidadeNotas
bandwhichProcesso + conexão + host remotoTUI Rust, resolve remotos
nethogsPor processoSem agrupamento de host remoto
iftopPor conexãoSem atribuição de processo
nloadPor interface totaisGráfico agregado simples
iptraf-ngPor interface/conexãoSuite ncurses mais antiga

Recursos