Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
network-monitor — Uma ferramenta de monitoramento de conexões de rede em tempo real construída com Rust e GTK4, exibindo conexões ativas com estatísticas de I/O ao vivo em uma interface gráfica moderna. | Kitploit
Ferramentas/GitHubGitHub/grigio/network-monitor
Utilitários de Propósito GeralSniffing e Análise de PacotesMapeamento de RedeColeta de InformaçõesPrivacidade
GitHubgrigio/network-monitor

network-monitor

Uma ferramenta de monitoramento de conexões de rede em tempo real construída com Rust e GTK4, exibindo conexões ativas com estatísticas de I/O ao vivo em uma interface gráfica moderna.

Ver Repositório
284544há 1 diaRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
# Network Monitor

![Demonstração do Network Monitor no GNOME Desktop no Linux](https://assets.kitploit.com/production/public/readmes/9883/ee8f839c4064b139e19ba818961f4ce859b5461a5eccf2d321c9a184533976b8.gif)

Uma ferramenta de monitoramento de conexões de rede em tempo real construída com Rust e GTK4, exibindo conexões ativas com estatísticas de E/S ao vivo em uma interface gráfica moderna.

[![rust](https://github.com/grigio/network-monitor/actions/workflows/rust.yml/badge.svg)](https://github.com/grigio/network-monitor/actions/workflows/rust.yml)
[![dependency status](https://deps.rs/repo/github/grigio/network-monitor/status.svg)](https://deps.rs/repo/github/grigio/network-monitor)


## Recursos

- **Monitoramento em tempo real**: Monitora continuamente as conexões de rede ativas
- **Estatísticas de E/S**: Mostra taxas de upload/download ao vivo para cada conexão
- **Identificação de processos**: Exibe o programa e o PID associados a cada conexão
- **Ações de processo**: Clique com o botão direito em uma linha para copiar seu valor/comando ou para encerrar o processo que
  possui a conexão (Terminate ou Force Kill, com confirmação)
- **Seleção persistente**: A linha selecionada mantém seu destaque entre atualizações e é exibida na
  faixa de status
- **Interface GTK4 moderna**: Interface gráfica limpa e responsiva com estilo Libadwaita
- **Interface de Terminal (TUI)**: Interface de terminal interativa com os mesmos recursos de monitoramento
- **Resolução de endereços**: Simplifica endereços comuns (localhost, any, mDNS)
- **Filtragem de conexões**: Filtra conexões localhost para uma saída mais limpa
- **Integração com GNOME**: Suporte adequado à classe WM para fixação no dock e integração com o desktop
- **Instalação dupla**: Suporta instalação local do usuário e em todo o sistema
- **Tratamento robusto de erros**: Recuperação abrangente de erros com orientações claras de configuração
- **Desempenho otimizado**: Cache de processos e cache de layout para melhor responsividade

## Requisitos

- Rust 1.70+ (edição 2021)
- Bibliotecas de desenvolvimento GTK4
- Bibliotecas de desenvolvimento Libadwaita
- Sistema Linux com sistema de arquivos `/proc`
- Linux 5.8+ (para capacidades granulares de eBPF)
- Rust Nightly e `bpf-linker` (para compilação eBPF)

### Instalação no Ubuntu/Debian:
```bash
sudo apt update
sudo apt install libgtk-4-dev libadwaita-1-dev
```

### Instalação no Fedora:
```bash
sudo dnf install gtk4-devel libadwaita-devel
```

## Instalação

### Método 1: Instalar a partir do código-fonte com integração ao desktop

1. Clone o repositório:
```bash
git clone <repository-url>
cd network-monitor
```

2. Instale localmente (sem necessidade de sudo):
```bash
./scripts/install.sh
```

3. Ou instale em todo o sistema (requer sudo):
```bash
sudo ./scripts/install.sh
```

O script de instalação irá:
- Compilar os binários GTK4 e TUI (debug para local, release para todo o sistema)
- Instalar os binários em `~/.local/bin/` (local) ou `/usr/local/bin/` (todo o sistema)
- Instalar o arquivo desktop com a classe WM adequada para fixação no dock do GNOME
- Instalar ícones nos diretórios de ícones apropriados
- Atualizar o cache de ícones e o banco de dados do desktop
- Garantir que o aplicativo possa ser fixado no dock/dashboard do GNOME

### Método 2: Compilar e executar diretamente

1. Clone o repositório:
```bash
git clone <repository-url>
cd network-monitor
```

2. Compile e execute:
```bash
cargo run
```

Ou compile em modo release:
```bash
cargo build --release
./target/release/network-monitor
```

### Método 3: Compilar e executar a versão TUI

1. Clone o repositório:
```bash
git clone <repository-url>
cd network-monitor
```

2. Compile e execute a TUI:
```bash
cargo build --bin nmt
./target/debug/nmt
```

Ou compile em modo release:
```bash
cargo build --release --bin nmt
./target/release/nmt
```

## Desinstalação

### Remover a versão instalada

Remoção da instalação local:
```bash
./scripts/uninstall.sh
```

Remoção em todo o sistema (requer sudo):
```bash
sudo ./scripts/uninstall.sh
```

O script de desinstalação removerá o binário, o arquivo desktop e os ícones dos locais apropriados e atualizará todos os caches relevantes.

## Uso

### Interface Gráfica GTK4

Inicie o aplicativo de monitoramento de rede:
```bash
cargo run
```

O aplicativo abrirá uma janela GTK4 exibindo:
- **Process(ID)**: Nome do processo e PID com mapeamento preciso de socket para processo
- **Protocol**: Protocolo TCP/UDP
- **Source**: Endpoint local (resolvido para formato legível)
- **Destination**: Endpoint remoto (resolvido para formato legível)
- **Status**: Estado da conexão (ESTABLISHED, LISTEN, etc.)
- **TX**: Taxa de upload calculada a partir das estatísticas de E/S do processo
- **RX**: Taxa de download calculada a partir das estatísticas de E/S do processo
- **Path**: Caminho completo do comando e argumentos de `/proc/[pid]/cmdline`

**Ações de linha**

- **Clique esquerdo**: seleciona uma linha (também exibida na faixa inferior)
- **Clique direito**: abre o menu de contexto com *Copy Value*, *Copy Command* e
  *Kill "process" (PID)*, que pergunta se deve Terminate (SIGTERM) ou Force Kill (SIGKILL)
- **Delete**: encerra a linha atualmente selecionada (mesmo diálogo de confirmação)
- **Ctrl+C**: copia o conteúdo da célula
- **Botão Refresh** na barra de cabeçalho: atualiza imediatamente (a lista também é atualizada a cada 3s)

### Interface de Terminal (TUI)

![nmt tui do network-monitor](https://assets.kitploit.com/production/public/readmes/9883/47e8eb45b8c8f16826d39677c6c81c38a0fd1a48bf59d28a070994f93e437a2c.png)

Inicie a interface de terminal:
```bash
cargo run --bin nmt
```

A TUI fornece os mesmos recursos de monitoramento em uma interface de terminal interativa:

**Controles de Teclado:**
- `q` - Sair do aplicativo
- `r` - Alternar resolução de hostname
- `R` - Atualizar conexões manualmente
- `a` - Alternar atualização automática (intervalos de 2 segundos)
- `↑/↓` - Navegar pelas conexões
- `←/→` - Rolar a tabela horizontalmente
- `k` / **clique direito** - Abrir o menu de encerramento para uma linha (Terminate / Force Kill / Cancel)
- `1-8` - Ordenar por colunas (Process(ID), Protocol, Source, Destination, Status, TX, RX, Path)

Mouse: clique esquerdo seleciona uma linha, clique direito a seleciona e abre o menu de encerramento.

**Recursos:**
- Monitoramento de conexões em tempo real com atualização automática
- Colunas ordenáveis com indicadores visuais
- Rolagem horizontal para tabelas largas
- Dimensionamento inteligente de colunas - a última coluna recebe toda a largura restante
- Protocolos com código de cores (TCP/TCP6 em verde, UDP/UDP6 em amarelo)
- Destaque de conexão ativa
- Informações de processo e PID
- Exibição de taxa de E/S ao vivo
- Mesma ordem de colunas da versão GTK4 para consistência

### Resolução de Endereços

Endereços comuns são simplificados para legibilidade:
- `0.0.0.0:*` ou `*:*` → `ANY`
- `127.0.0.1:*` ou `[::1]:*` → `LOCALHOST`
- `224.0.0.251:*` → `MDNS`

## Como Funciona

### Backend eBPF (orientado a eventos)

O aplicativo usa kprobes em nível de kernel (`tcp_v4_connect`, `tcp_v6_connect`, `tcp_close`,
`inet_csk_accept`) em vez de polling em `/proc/net`. Isso proporciona:

- **Orientado a eventos**: Entrega de eventos em menos de um milissegundo, sem sobrecarga de polling (~1-3% de CPU)
- **PID direto**: Capturado no ponto de probe via `bpf_get_current_pid_tgid()`, sem varredura de inode
- **Conexões de curta duração**: Nunca perdidas entre intervalos de polling

### Modo eBPF

O backend eBPF fornece monitoramento de conexões **orientado a eventos** com menor sobrecarga e eventos
em tempo real, em comparação com a abordagem padrão de polling em `/proc/net`. Ele pode capturar conexões de curta duração
que o polling pode perder.

**Pré-requisitos:**
```bash
rustup toolchain install nightly
cargo install bpf-linker
```

**Compilar e executar:**
```bash
cargo build
```

**Executar como usuário normal** (requer kernel 5.8+):

Conceda as capacidades Linux necessárias ao binário uma vez:
```bash
sudo setcap cap_bpf,cap_net_admin,cap_perfmon+ep target/debug/network-monitor
./target/debug/network-monitor
```

Ou para a versão TUI:
```bash
sudo setcap cap_bpf,cap_net_admin,cap_perfmon+ep target/debug/nmt
./target/debug/nmt
```

Para compilações release, ajuste o caminho de acordo:
```bash
sudo setcap cap_bpf,cap_net_admin,cap_perfmon+ep target/release/network-monitor
```

O aplicativo sairá com uma mensagem de configuração se o eBPF não estiver disponível (capacidades ausentes ou
kernel não suportado).

## Arquitetura
- **GTK4**: Framework GUI moderno e multiplataforma
- **Libadwaita**: Componentes de interface no estilo GNOME
- **Tokio**: Runtime assíncrono para operações concorrentes
- **Aya + eBPF**: Rastreamento de conexões em nível de kernel com kprobes para eventos em tempo real
- **PID direto**: Identificação de processos via `bpf_get_current_pid_tgid()` no ponto de probe
- **Chamadas de sistema**: Leitura direta de `/proc/[pid]/io` para estatísticas de E/S
- **Tratamento de erros**: Tipos de erro abrangentes com recuperação graciosa usando `thiserror`
- **Cache de desempenho**: Cache de layout da interface para desempenho ideal

## Pacotes Linux

[![Packaging status](https://repology.org/badge/vertical-allrepos/network-monitor.svg)](https://repology.org/project/network-monitor/versions)


## Doações

Se você achar este projeto útil, considere fazer uma doação para apoiar seu desenvolvimento.

- **Monero**: `88LyqYXn4LdCVDtPWKuton9hJwbo8ZduNEGuARHGdeSJ79BBYWGpMQR8VGWxGDKtTLLM6E9MJm8RvW9VMUgCcSXu19L9FSv`
- **Bitcoin**: `bc1q6mh77hfv8x8pa0clzskw6ndysujmr78j6se025`

## Licença

Este projeto é de código aberto. Consulte o arquivo LICENSE para detalhes.
Baixar ferramenta