DEV Community

Cover image for Monitore sua rede diretamente pelo terminal
Marcos Oliveira
Marcos Oliveira

Posted on

Monitore sua rede diretamente pelo terminal

O flow é um monitor de tráfego de rede em tempo real para o terminal.

Ele é escrito em Go, utiliza Bubble Tea para a interface TUI e funciona em GNU/Linux, macOS e Windows.

Características:

  • Velocidade de download
  • Velocidade de upload
  • Gráficos do tráfego
  • Picos de transferência
  • Latência
  • Interface de rede utilizada
  • Processos que possuem conexões de rede
  • Informações da interface, como IP, MAC e MTU
  • Totais de tráfego da sessão/dia
  • Temas e esquemas de cores personalizados

A interface se adapta automaticamente ao tamanho do terminal, oferecendo quatro modos: Hero, Compact, Mini e Tiny.


Como instalar

O projeto disponibiliza binários pré-compilados para Linux, macOS e Windows, tanto para amd64 quanto para arm64. Também existem métodos específicos para cada plataforma.

GNU/Linux

Se você utiliza Arch Linux, pode instalar através do AUR:

yay -S flow-network-monitor-bin
Enter fullscreen mode Exit fullscreen mode

Usando Go

Com o Go instalado:

go install github.com/programmersd21/flow/cmd/flow@latest
Enter fullscreen mode Exit fullscreen mode

Verifique:

flow
Enter fullscreen mode Exit fullscreen mode

Compilando a partir do código-fonte

git clone https://github.com/programmersd21/flow
cd flow
make install
Enter fullscreen mode Exit fullscreen mode

O projeto também disponibiliza binários diretamente na página de releases.


macOS

A maneira mais simples é utilizar o Homebrew:

brew install programmersd21/flow/flow
Enter fullscreen mode Exit fullscreen mode

Depois:

flow
Enter fullscreen mode Exit fullscreen mode

Windows

No Windows, você pode baixar o binário correspondente à arquitetura da sua máquina na página de Releases do projeto.

Existem builds para:

amd64
arm64
Enter fullscreen mode Exit fullscreen mode

O processo de release gera um arquivo .zip para Windows.

Depois de extrair o executável, você pode executar:

.\flow.exe
Enter fullscreen mode Exit fullscreen mode

Se quiser chamar flow diretamente de qualquer terminal, adicione a pasta do executável ao PATH do Windows.


Primeiros passos

Depois de instalado, basta executar:

flow
Enter fullscreen mode Exit fullscreen mode

O programa detecta automaticamente a interface de rede e inicia o monitoramento.

Modos de visualização

Você pode iniciar diretamente em diferentes modos:

flow --compact
Enter fullscreen mode Exit fullscreen mode

Layout compacto.

flow --mini
Enter fullscreen mode Exit fullscreen mode

Somente os gráficos.

flow --tiny
Enter fullscreen mode Exit fullscreen mode

Uma única linha, ideal para barras de status.

Por exemplo, o modo tiny pode ser integrado ao tmux:

set -g status-right "#(flow --tiny --no-color)"
Enter fullscreen mode Exit fullscreen mode

Escolher uma interface

Se o computador possui várias interfaces de rede:

flow --interface wlan0
Enter fullscreen mode Exit fullscreen mode

Também é possível alternar entre interfaces dentro da própria aplicação usando:

i
Enter fullscreen mode Exit fullscreen mode

Alterar unidade

Pressione:

c
Enter fullscreen mode Exit fullscreen mode

para alternar entre escalas como:

B/s
KB/s
MB/s
Enter fullscreen mode Exit fullscreen mode

Ou inicie utilizando bits por segundo:

flow --bits
Enter fullscreen mode Exit fullscreen mode

Alterar o intervalo de atualização

Por padrão, o flow trabalha com uma amostragem de 100 ms.

Você pode alterar:

flow --refresh 500ms
Enter fullscreen mode Exit fullscreen mode

Monitorar a latência

É possível definir o destino utilizado para o teste de latência:

flow --ping 8.8.8.8
Enter fullscreen mode Exit fullscreen mode

O endereço padrão é 1.1.1.1.


Atalhos

Durante a execução:

Tecla Ação
q Sair
m Alterar modo de visualização
d Download / Upload / Ambos
t Selecionar tema
n Processos de rede
i Alterar interface
I Detalhes da interface
c Alterar unidade
b Bits/s ↔ Bytes/s
+ / - Alterar intervalo
p Pausar/continuar
r Resetar picos
? Ajuda

JSON e automação

O flow não precisa ser utilizado somente como uma TUI.

Para obter uma saída JSON única:

flow --json
Enter fullscreen mode Exit fullscreen mode

Para receber dados continuamente em JSON Lines:

flow --json-stream
Enter fullscreen mode Exit fullscreen mode

Isso permite integrar o flow com scripts, dashboards e outras ferramentas de terminal.

Também existe:

flow --once
Enter fullscreen mode Exit fullscreen mode

para obter uma saída única em texto.


Para mais informações acesse o repositório.

Top comments (0)