
Uno strumento di monitoraggio delle connessioni di rete in tempo reale costruito con Rust e GTK4, che mostra le connessioni attive con statistiche I/O in tempo reale in un'interfaccia grafica moderna.

Uno strumento di monitoraggio delle connessioni di rete in tempo reale costruito con Rust e GTK4, che mostra le connessioni attive con statistiche I/O in tempo reale in un'interfaccia grafica moderna.
/procbpf-linker (per la compilazione 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
Lo script di installazione:
~/.local/bin/ (locale) o /usr/local/bin/ (sistema)git clone <repository-url>
cd network-monitor
cargo run
Oppure compilare in modalità release:
cargo build --release
./target/release/network-monitor
git clone <repository-url>
cd network-monitor
cargo build --bin nmt
./target/debug/nmt
Oppure compilare in modalità release:
cargo build --release --bin nmt
./target/release/nmt
Rimozione dell'installazione locale:
./scripts/uninstall.sh
Rimozione a livello di sistema (richiede sudo):
sudo ./scripts/uninstall.sh
Lo script di disinstallazione rimuoverà il binario, il file desktop e le icone dalle posizioni appropriate e aggiornerà tutte le cache pertinenti.
Avviare l'applicazione di monitoraggio della rete:
cargo run
L'applicazione aprirà una finestra GTK4 che mostra:
/proc/[pid]/cmdline
Avviare l'interfaccia terminale:
cargo run --bin nmt
La TUI fornisce le stesse capacità di monitoraggio in un'interfaccia terminale interattiva:
Controlli principali:
q - Esci dall'applicazioner - Aggiorna manualmente le connessionia - Attiva/disattiva aggiornamento automatico (intervallo di 2 secondi)↑/↓ - Naviga tra le connessioni←/→ - Scorri la tabella orizzontalmente1-8 - Ordina per colonne (Processo(ID), Protocollo, Sorgente, Destinazione, Stato, TX, RX, Percorso)Caratteristiche:
Gli indirizzi comuni sono semplificati per la leggibilità:
0.0.0.0:* o *:* → ANY127.0.0.1:* o [::1]:* → LOCALHOST224.0.0.251:* → MDNSL'app utilizza kprobes a livello kernel (tcp_v4_connect, tcp_v6_connect, tcp_close,
inet_csk_accept) invece del polling di /proc/net. Questo fornisce:
bpf_get_current_pid_tgid(), nessuna scansione di inodeIl backend eBPF fornisce monitoraggio delle connessioni basato su eventi con overhead ridotto ed eventi
in tempo reale, rispetto all'approccio predefinito di polling /proc/net. Può catturare connessioni di breve durata
che il polling potrebbe perdere.
Prerequisiti:
rustup toolchain install nightly
cargo install bpf-linker
Compilare ed eseguire:
cargo build
Eseguire come utente normale (kernel 5.8+ richiesto):
Assegnare le capacità Linux richieste al binario una volta:
sudo setcap cap_bpf,cap_net_admin,cap_perfmon+ep target/debug/network-monitor
./target/debug/network-monitor
O per la versione TUI:
sudo setcap cap_bpf,cap_net_admin,cap_perfmon+ep target/debug/nmt
./target/debug/nmt
Per le build release, regolare il percorso di conseguenza:
sudo setcap cap_bpf,cap_net_admin,cap_perfmon+ep target/release/network-monitor
L'app uscirà con un messaggio di configurazione se eBPF non è disponibile (capacità mancanti o kernel non supportato).
bpf_get_current_pid_tgid() al punto di probe/proc/[pid]/io per le statistiche I/OthiserrorSe trovi utile questo progetto, considera di fare una donazione per supportarne lo sviluppo.
88LyqYXn4LdCVDtPWKuton9hJwbo8ZduNEGuARHGdeSJ79BBYWGpMQR8VGWxGDKtTLLM6E9MJm8RvW9VMUgCcSXu19L9FSvbc1q6mh77hfv8x8pa0clzskw6ndysujmr78j6se025Questo progetto è open source. Vedi il file LICENSE per i dettagli.