Voltar às atualizações
New releaseAug 10, 2026

netwatch v0.28.2

Diagnósticos de rede em tempo real no seu terminal. Um comando, zero configuração, visibilidade instantânea.

Compartilhar

NetWatch

Veja o que sua rede realmente está fazendo — ao vivo, no seu terminal.
Um monitor de rede que lê tráfego criptografado, nomeia o processo por trás de cada conexão e detecta malware fazendo contato com o servidor. Um único binário. Zero configuração.

crates.io downloads Release Packaging status Platform License

Terminal Trove Tool of The Week

Uma visita guiada pela TUI ao vivo do NetWatch: painel, conexões com atribuição de processo, captura e decodificação de pacotes ao vivo, topologia de rede e o perfil de egresso de cada programa

Uma visita rápida pela TUI ao vivo — o painel, o programa por trás de cada socket, inspeção profunda de pacotes, o mapa de rede e com o que cada programa fala.


A maioria das ferramentas de rede responde a uma pergunta — "o que está usando minha largura de banda?" — e para. A NetWatch continua. Ela decodifica os protocolos na rede, diz qual programa abriu cada conexão e observa os padrões que significam problemas — uma varredura de portas, malware em beacon para um servidor de comando, dados escapando por DNS. Quando algo parece errado, uma tecla congela um pacote portátil de evidências que você pode anexar a um relatório de bug.

Pense nele como um único binário de configuração zero que faz o trabalho de um medidor de largura de banda, a visão de triagem do Wireshark e um detector leve de intrusão — sem sair do terminal.

Ele se adapta à pergunta que você está fazendo. netwatch --lite é uma tela 80×24 para "o que está usando minha rede agora?"; a visão completa de dez abas está lá quando a resposta é "algo que preciso investigar" — a uma tecla de distância, compartilhando a mesma captura ao vivo.

Feito para defensores de blue team, respondedores de incidentes, SREs e entusiastas de homelab que precisam ver o que está acontecendo agora — não analisar um arquivo de captura uma hora depois.

650+ testes · com sandbox Landlock (Linux) · analisa tráfego hostil com segurança

E a parte que nenhuma outra ferramenta de terminal faz: a NetWatch aprende com quem cada programa na máquina fala, transforma essa linha de base observada em uma política com uma tecla e avisa no momento em que um programa começa a falar com algo novo.

NetWatch aprendendo com o que o curl fala, promovendo essa linha de base a uma política de egresso e sinalizando um novo destino como drift

Observe → promova → alerte. A linha de base vira uma política com uma tecla; o próximo destino novo chega como drift.

Por que NetWatch?

  • 🔓 Leia o tráfego criptografado que você controla — aponte o SSLKEYLOGFILE de um navegador ou aplicativo para a NetWatch e veja o texto puro das sessões TLS 1.3 sendo decodificado ao vivo, da mesma forma que o Wireshark faz. Sem proxy, sem certificados, nada no meio.
  • 🛰️ Aprenda com o que cada programa fala e depois seja avisado quando isso mudar — a NetWatch observa quais destinos cada processo alcança (hostname do ClientHello, sistema autônomo, porta), e uma tecla promove essa linha de base observada a uma política de egresso. A partir daí, ela avisa quando um programa começa a falar com algo novo. Essa é a frase que uma regra de firewall não consegue expressar: curl costumava alcançar apenas api.github.com, e hoje alcançou outra coisa. Apenas observação — nunca bloqueia.
  • 🧬 Identifique o software por trás de uma conexão — o JA4 transforma cada handshake TLS/QUIC em uma impressão digital estável, para que você reconheça um cliente específico — ou um malware específico — mesmo com o tráfego criptografado, do mesmo jeito que você reconheceria um navegador pelo user-agent. Faça pivot em uma impressão digital para encontrar todos os outros fluxos do mesmo software.
  • 🚨 Pegue malware fazendo contato com o servidor — a detecção integrada de beaconing C2 (check-ins regulares com baixo jitter), varreduras de portas e tunelamento DNS roda em segundo plano com zero configuração. Um alerta crítico congela automaticamente o gravador para que a evidência já esteja salva quando você olhar.
  • ⚙️ Dê nome ao processo por trás de cada conexão — mapeia cada socket para o programa que o abriu a partir de ss/lsof, com uma sonda eBPF kprobe opcional em nível de kernel (Linux, recurso ebpf) que também captura fluxos de curta duração que a sondagem pode perder. Funciona em qualquer lugar; a kprobe é um aprimoramento, não um requisito.
  • 📡 Decodifique os protocolos, não apenas as portas — parser L7 real de TLS, QUIC, HTTP e DNS (além de uma verificação de banner/versão SSH) e mais uma dezena, com rastreamento de stream por fluxo e medição de tempo de handshake — para que você veja api.github.com e a impressão digital JA4, não apenas "porta 443".
  • 🎥 Congele as evidências — arme um gravador contínuo e congele qualquer incidente em um pacote portátil: os pacotes mais as conexões, DNS, saúde e alertas que os explicam. Feito para relatórios de bug e post-mortems.
  • 🛡️ Seguro por design — após a configuração, a NetWatch reduz seus privilégios e se limita a uma allow-list de sistema de arquivos Landlock (Linux). Uma ferramenta que analisa tráfego hostil não pode ler suas chaves SSH, perfis de navegador ou /etc/shadow.
  • 🪟 Reduz para uma única tela — o --lite responde "o que está usando minha rede, e minha conexão está OK?" em uma única tela 80×24 com seis teclas, cabendo em uma sessão SSH para um Pi ou em uma divisão do tmux. Uma tecla escala para a visão forense completa com os coletores já aquecidos.

Sem arquivos de configuração. Sem configuração. Sem flags necessárias.

Instalação

brew install netwatch                 # macOS / Linux
nix-shell -p netwatch                 # NixOS / Nix
paru -S netwatch-tui-bin              # Arch (prebuilt; netwatch-tui builds from source)
scoop install netwatch                # Windows
cargo install netwatch-tui            # anywhere with Rust

Ou baixe um binário pré-compilado em Releases.

Os pacotes Nix, Arch e Scoop são mantidos por empacotadores da comunidade — obrigado. Relate problemas de empacotamento com eles; registre bugs da NetWatch aqui. Se um pacote ficar atrás de um lançamento, a página do Repology mostra isso.

Todas as plataformas & compilação a partir do código-fonte
PlataformaDownload
Linux (x86_64, Debian/Ubuntu)netwatch-linux-x86_64.tar.gz
Linux (aarch64, Debian/Ubuntu)netwatch-linux-aarch64.tar.gz
Linux (x86_64, estático — Arch/Fedora/Alpine/qualquer distro)netwatch-linux-x86_64-static.tar.gz
Linux (aarch64, estático — Arch/Fedora/Alpine/qualquer distro)netwatch-linux-aarch64-static.tar.gz
macOS (Intel)netwatch-macos-x86_64.tar.gz
macOS (Apple Silicon)netwatch-macos-aarch64.tar.gz

As compilações Linux -static incluem libpcap e não têm dependências de runtime — use-as no Arch, Fedora, Alpine ou qualquer distro onde as compilações padrão informem libpcap.so.0.8: cannot open shared object file.

A partir do código-fonte:

git clone https://github.com/matthart1983/netwatch.git && cd netwatch
cargo build --release

Pré-requisitos: Rust 1.70+, libpcap (sudo apt install libpcap-dev no Linux, incluída no macOS).

Início rápido

netwatch            # interface stats, connections, config — no privileges needed
sudo netwatch       # full mode — adds live packet capture + health probes

É isso. Alterne as abas com 19, pressione ? para ajuda, q para sair. A Dashboard já é útil em cinco segundos; tudo abaixo está lá quando você precisar se aprofundar.

Linux sem sudo: conceda as capacidades de captura uma vez e execute como seu usuário normal — sudo setcap 'cap_net_raw,cap_bpf,cap_perfmon+eip' "$(which netwatch)". Execute novamente após cada atualização (detalhes).

Veja a descriptografia de TLS em 60 segundos

A forma mais rápida de entender o que é a NetWatch — veja-a ler o texto puro de uma sessão TLS 1.3 que você controla:

sudo netwatch                                              # 1. launch, then open the Packets tab (4)
SSLKEYLOGFILE=/tmp/sslkeylog.txt curl https://example.com  # 2. any client that exports its keys
#                                                            3. filter the Packets tab with:  decrypted:true

Os dados de aplicação descriptografados são renderizados inline. Uma falha no keylog nunca quebra a captura — esse registro apenas permanece opaco. (SSLKEYLOGFILE é o mesmo mecanismo que o Wireshark usa; ele só funciona para tráfego que você controla, nunca para tráfego de terceiros ou malware).

NetWatch descriptografando uma sessão TLS 1.3 ao vivo — a troca HTTP em texto puro decodificada na aba Packets

Lendo o texto puro de uma sessão TLS 1.3 ao vivo — descriptografada direto no terminal. Sem proxy, sem man-in-the-middle.

Veja a detecção de drift de egresso em 60 segundos

O ciclo da demonstração acima, em três comandos:

sudo netwatch                  # 1. launch and open the Egress tab (0). Leave it a minute
                               #    while it learns; each process grows a list of destinations
                               #    with hostnames, autonomous systems and ports
                               # 2. put the cursor on a process and press Enter — its observed
                               #    baseline becomes a rule in egress-policy.toml
curl https://example.org       # 3. same program, somewhere it has never been

O novo destino chega com um veredito ✗ drift e um alerta. Nada foi bloqueado — o objetivo é que você foi avisado.

Os vereditos são deliberadamente não binários:

✓ sni / ✓ ipCorrespondeu a um hostname ou endereço declarado — preciso
~ asnCorrespondeu apenas por sistema autônomo — isso admite tudo o que esse AS opera, o que para um hiperscaler é efetivamente ilimitado
? echEncrypted ClientHello: o nome está oculto por design, então isso é "não é possível julgar", não "ruim"
✗ driftFora da allow-list
— no ruleEste programa nunca foi declarado — nada foi verificado
✗ undeclaredSem regra, com strict = true — a política afirma ser completa, então a ausência é o achado

As regras aceitam hostnames exatos, *.wildcards, sistemas autônomos, blocos CIDR (10.0.0.0/8) e portas. strict = true é o que transforma o linter de "me avise quando meu software declarado se comportar mal" em "me avise quando algo que nunca declarei começar a falar" — que é o formato de um comprometimento real.

O que você obtém

Dez abas, alternadas com 19 e 0:

#TabO que mostra
1DashboardInterfaces, gráfico de largura de banda, principais conexões, saúde do gateway/DNS, mapa de calor de latência. Útil em 5 segundos.
2ConnectionsCada socket com seu processo + PID, protocolo, estado, GeoIP e sparklines de latência.
3InterfacesIPv4/IPv6 por interface, MAC, MTU, RX/TX, erros, descartes.
4PacketsCaptura ao vivo com decodificação L7 real, descriptografia TLS 1.3, JA4, rastreamento de stream por fluxo, filtros, exportação PCAP.
5StatsDivisão de protocolos por bytes + histograma de tempo de handshake TCP.
6TopologyMapa ASCII de máquina → gateway → DNS → principais hosts, com traceroute.
7TimelineLinha do tempo de conexões codificada por cores conforme o estado TCP; alertas de segurança chegam aqui.
8ProcessesRanking de largura de banda por processo com RX/TX ao vivo e contagens de conexões.
9Insights(opt-in) envia um snapshot para um LLM local/cloud para análise em linguagem natural.
0EgressAprende com o que cada processo fala (hostname/AS/porta), promove essa linha de base a uma política com uma tecla e depois alerta sobre drift. Apenas observação, nunca bloqueia.

A aba Packets é onde a forense vive — decodificação profunda de protocolos, descriptografia TLS 1.3 ao vivo, caça a ameaças com JA4, filtros de exibição no estilo Wireshark e captura de incidentes. Veja a referência completa de recursos →

Visão Lite

Dez abas são um instrumento de operador. Quando a pergunta é apenas "o que está usando minha rede, e minha conexão está OK?" — uma máquina, uma sessão SSH para um Pi, uma divisão do tmux — existe o --lite:

netwatch --lite     # one screen, fits 80×24

NetWatch Lite: uma única tela 80×24 mostrando gráficos de throughput ao vivo, alcance de gateway/DNS/internet e os principais comunicadores por processo e host — expandindo uma conexão no lugar e filtrando ao vivo

Uma tela, seis teclas. Throughput ao vivo, alcance e quem está falando — expanda qualquer linha no lugar, filtre enquanto digita.

Tudo em uma única tela: gráficos de throughput ao vivo, alcance de gateway/DNS/internet e os principais comunicadores por processo e host. Seis teclas — q sair, p pausar, / filtrar, expandir um comunicador, L voltar para a visão completa, ? ajuda.

Pressione L em qualquer uma das visões para alternar. Ambas compartilham os mesmos coletores, então escalar de "algo parece errado" para a visão forense completa de dez abas custa uma tecla — sem reiniciar, sem perder histórico, com a captura ainda rodando.

Aprofundamentos

GuiaO que contém
Referência de recursosCada atalho de teclado, a linguagem de filtro de exibição, a lista de decodificadores de protocolo, temas e opções de configuração.
Descriptografia TLS 1.3Como a descriptografia via SSLKEYLOGFILE funciona, suites de cifra suportadas e o que ela pode e não pode ler.
Caça a ameaças com JA4Identificação por impressão digital de clientes e pivoteamento entre fluxos.
Segurança e a sandbox LandlockO modelo de ameaças, a remoção de capacidades e a allow-list de sistema de arquivos.
Linting de política de egressoO modelo observar → promover → alertar, a linguagem de regras, o modo strict e o esquema de exportação NDJSON.
Flight RecorderArmar, congelar e o conteúdo de um pacote de incidente.
AI InsightsAnálise opcional por LLM local/cloud (desativada por padrão).

Como funciona

Raw bytes → Ethernet → IPv4/IPv6/ARP → TCP/UDP/ICMP → L7 decoders
                                            ↓
                          Per-flow stream tracking · Handshake timing
                          TLS 1.3 decryption · JA4 · Threat detection
ColetormacOSLinux
Conexõeslsof + PKTAP/proc/net/tcp + eBPF kprobe
Pacoteslibpcap (BPF)libpcap
Atribuição de processoPKTAPlsof/ss polling, com overlay opcional de eBPF kprobe

Tudo degrada graciosamente: recursos que precisam de privilégios elevados mostram uma mensagem clara e recuam, nunca travam. As notas completas de arquitetura estão em WIKI.md.

Relacionados

Ferramentas irmãs: SysWatch (sistema) e DiskWatch (disco) — mesmo visual, superfície diferente. ESSH — um cliente SSH em Rust puro com a mesma estética de TUI; conecta onde a NetWatch observa.

NetWatch Cloud — monitoramento de frota hospedado para os servidores em que você executa a NetWatch. Um agente Rust pequeno em cada host Linux, um painel em tempo real e alertas por e-mail + Slack sobre latência, perda de pacotes ou hosts offline. Gratuito enquanto crescemos. O agente, o SDK e o dashboard são MIT; o backend hospedado é proprietário.

Agradecimentos

Empacotadores. A NetWatch está no homebrew-core, no nixpkgs, no AUR e no bucket principal do Scoop — e eu não empacotei nada disso. Cada um desses pacotes foi feito por alguém que achou a ferramenta útil, fez o trabalho sem ser pedido e o mantém atualizado desde então. A entrada do Scoop geralmente acompanhou um lançamento em poucas horas após a tag.

Dominiquininetwatch-tui no AUR, desde março de 2026
kemelzaidannetwatch-tui-bin no AUR
tomasriveranetwatch no nixpkgs
scillidannetwatch no bucket principal do Scoop, desde v0.15.3
Mantenedores do Homebrewpor levar a fórmula para o core, e o bot que acompanhou todos os lançamentos desde então

Empacotar é um trabalho ingrato que só é notado quando quebra. Se você instalar a NetWatch por um destes meios, agradeça a eles, não a mim.

Colaboradores. @lamchau, @fdncred e @PeteE enviaram patches. Obrigado — um pull request de um desconhecido é a melhor coisa que acontece a um projeto como este.

E a todos que abriram uma issue com uma reprodução real, discutiram uma decisão de design ou me disseram que a saída estava errada no seu terminal: esse é o ciclo de feedback sobre o qual isto é construído.

Contribuindo

Dúvidas, ideias e relatos de bugs são bem-vindos em GitHub Discussions e Issues. Veja CONTRIBUTING.md para convenções de código e WIKI.md para o guia de arquitetura.

Licença

MIT

Categorias