
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.

Uma ferramenta de monitoramento de conexões de rede em tempo real criada com Rust e GTK4, exibindo conexões ativas com estatísticas de E/S ao vivo em uma interface gráfica moderna.
/procbpf-linker (para compilação eBPF)sudo apt update
sudo apt install libgtk-4-dev libadwaita-1-dev
sudo dnf install gtk4-devel libadwaita-devel
git clone <repository-url>
cd network-monitor
./scripts/install.sh
sudo ./scripts/install.sh
O script de instalação irá:
~/.local/bin/ (local) ou /usr/local/bin/ (todo o sistema)git clone <repository-url>
cd network-monitor
cargo run
Ou compile em modo release:
cargo build --release
./target/release/network-monitor
git clone <repository-url>
cd network-monitor
cargo build --bin nmt
./target/debug/nmt
Ou compile em modo release:
cargo build --release --bin nmt
./target/release/nmt
Remoção da instalação local:
./scripts/uninstall.sh
Remoção em todo o sistema (requer sudo):
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.
Inicie o aplicativo de monitoramento de rede:
cargo run
O aplicativo abrirá uma janela GTK4 exibindo:
/proc/[pid]/cmdline
Inicie a interface de terminal:
cargo run --bin nmt
A TUI oferece os mesmos recursos de monitoramento em uma interface de terminal interativa:
Controles principais:
q - Sair do aplicativor - Atualizar as conexões manualmentea - Alternar atualização automática (intervalos de 2 segundos)↑/↓ - Navegar pelas conexões←/→ - Rolar a tabela horizontalmente1-8 - Ordenar por colunas (Process(ID), Protocol, Source, Destination, Status, TX, RX, Path)Recursos:
Endereços comuns são simplificados para facilitar a leitura:
0.0.0.0:* ou *:* → ANY127.0.0.1:* ou [::1]:* → LOCALHOST224.0.0.251:* → MDNSO aplicativo usa kprobes em nível de kernel (tcp_v4_connect, tcp_v6_connect, tcp_close,
inet_csk_accept) em vez de fazer polling em /proc/net. Isso fornece:
bpf_get_current_pid_tgid(), sem varredura de inodesO 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:
rustup toolchain install nightly
cargo install bpf-linker
Compilar e executar:
cargo build
Executar como usuário normal (kernel 5.8+ necessário):
Conceda as capacidades Linux necessárias ao binário uma vez:
sudo setcap cap_bpf,cap_net_admin,cap_perfmon+ep target/debug/network-monitor
./target/debug/network-monitor
Ou para a versão TUI:
sudo setcap cap_bpf,cap_net_admin,cap_perfmon+ep target/debug/nmt
./target/debug/nmt
Para builds release, ajuste o caminho de acordo:
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).
bpf_get_current_pid_tgid() no ponto de sondagem/proc/[pid]/io para estatísticas de E/SthiserrorSe você acha este projeto útil, considere fazer uma doação para apoiar seu desenvolvimento.
88LyqYXn4LdCVDtPWKuton9hJwbo8ZduNEGuARHGdeSJ79BBYWGpMQR8VGWxGDKtTLLM6E9MJm8RvW9VMUgCcSXu19L9FSvbc1q6mh77hfv8x8pa0clzskw6ndysujmr78j6se025Este projeto é open source. Consulte o arquivo LICENSE para obter detalhes.