Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
network-monitor — 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. | Kitploit
Strumenti/GitHubGitHub/grigio/network-monitor
Utilità GenericheSniffing e Analisi dei PacchettiMappatura della ReteRaccolta InformazioniPrivacy
GitHubgrigio/network-monitor

network-monitor

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.

Vedi Repository
2845441 giorno faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
# Network Monitor

![Demo di Network Monitor su GNOME Desktop su Linux](https://assets.kitploit.com/production/public/readmes/9883/ee8f839c4064b139e19ba818961f4ce859b5461a5eccf2d321c9a184533976b8.gif)

Uno strumento di monitoraggio delle connessioni di rete in tempo reale realizzato con Rust e GTK4, che visualizza le connessioni attive con statistiche I/O in tempo reale in un'interfaccia grafica 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)


## Funzionalità

- **Monitoraggio in tempo reale**: monitora continuamente le connessioni di rete attive
- **Statistiche I/O**: mostra le velocità di upload/download in tempo reale per ogni connessione
- **Identificazione dei processi**: visualizza il programma e il PID associati a ciascuna connessione
- **Azioni sui processi**: fai clic con il tasto destro su una riga per copiarne il valore/comando o per terminare il processo che
  possiede la connessione (Terminate o Force Kill, con conferma)
- **Selezione persistente**: la riga selezionata mantiene la sua evidenziazione tra i vari aggiornamenti ed è mostrata nella
  barra di stato
- **Interfaccia GTK4 moderna**: interfaccia grafica pulita e reattiva con stile Libadwaita
- **Interfaccia terminale (TUI)**: interfaccia terminale interattiva con le stesse capacità di monitoraggio
- **Risoluzione degli indirizzi**: semplifica gli indirizzi comuni (localhost, any, mDNS)
- **Filtro delle connessioni**: filtra le connessioni localhost per un output più pulito
- **Integrazione con GNOME**: supporto corretto della WM class per il pinning nel dock e l'integrazione con il desktop
- **Doppia installazione**: supporta sia l'installazione locale all'utente che a livello di sistema
- **Gestione robusta degli errori**: recupero completo dagli errori con chiare indicazioni di configurazione
- **Prestazioni ottimizzate**: caching dei processi e del layout per una reattività migliorata

## Requisiti

- Rust 1.70+ (edizione 2021)
- Librerie di sviluppo GTK4
- Librerie di sviluppo Libadwaita
- Sistema Linux con filesystem `/proc`
- Linux 5.8+ (per le capacità granulari eBPF)
- Rust nightly e `bpf-linker` (per la compilazione eBPF)

### Installazione su Ubuntu/Debian:
```bash
sudo apt update
sudo apt install libgtk-4-dev libadwaita-1-dev
```

### Installazione su Fedora:
```bash
sudo dnf install gtk4-devel libadwaita-devel
```

## Installazione

### Metodo 1: Installazione dal sorgente con integrazione desktop

1. Clona il repository:
```bash
git clone <repository-url>
cd network-monitor
```

2. Installa localmente (sudo non richiesto):
```bash
./scripts/install.sh
```

3. Oppure installa a livello di sistema (richiede sudo):
```bash
sudo ./scripts/install.sh
```

Lo script di installazione:
- Compila sia i binari GTK4 che TUI (debug per locale, release per sistema)
- Installa i binari in `~/.local/bin/` (locale) o `/usr/local/bin/` (sistema)
- Installa il file desktop con la WM class corretta per il pinning nel dock di GNOME
- Installa le icone nelle directory appropriate
- Aggiorna la cache delle icone e il database desktop
- Assicura che l'applicazione possa essere aggiunta al dock/dashboard di GNOME

### Metodo 2: Compilazione ed esecuzione diretta

1. Clona il repository:
```bash
git clone <repository-url>
cd network-monitor
```

2. Compila ed esegui:
```bash
cargo run
```

Oppure compila in modalità release:
```bash
cargo build --release
./target/release/network-monitor
```

### Metodo 3: Compilazione ed esecuzione della versione TUI

1. Clona il repository:
```bash
git clone <repository-url>
cd network-monitor
```

2. Compila ed esegui la TUI:
```bash
cargo build --bin nmt
./target/debug/nmt
```

Oppure compila in modalità release:
```bash
cargo build --release --bin nmt
./target/release/nmt
```

## Disinstallazione

### Rimuovere la versione installata

Rimozione dell'installazione locale:
```bash
./scripts/uninstall.sh
```

Rimozione a livello di sistema (richiede sudo):
```bash
sudo ./scripts/uninstall.sh
```

Lo script di disinstallazione rimuove il binario, il file desktop e le icone dalle posizioni appropriate e aggiorna tutte le cache rilevanti.

## Utilizzo

### Interfaccia grafica GTK4

Avvia l'applicazione di monitoraggio della rete:
```bash
cargo run
```

L'applicazione aprirà una finestra GTK4 che mostra:
- **Process(ID)**: nome del processo e PID con una mappatura accurata socket-processo
- **Protocol**: protocollo TCP/UDP
- **Source**: endpoint locale (risolto in un formato leggibile)
- **Destination**: endpoint remoto (risolto in un formato leggibile)
- **Status**: stato della connessione (ESTABLISHED, LISTEN, ecc.)
- **TX**: velocità di upload calcolata dalle statistiche I/O del processo
- **RX**: velocità di download calcolata dalle statistiche I/O del processo
- **Path**: percorso completo del comando e argomenti da `/proc/[pid]/cmdline`

**Azioni sulle righe**

- **Clic sinistro**: seleziona una riga (mostrata anche nella barra inferiore)
- **Clic destro**: apre il menu contestuale con *Copy Value*, *Copy Command* e
  *Kill "process" (PID)*, che chiede se Terminate (SIGTERM) o Force Kill (SIGKILL)
- **Delete**: termina la riga attualmente selezionata (stessa finestra di conferma)
- **Ctrl+C**: copia il contenuto della cella
- **Pulsante Refresh** nella barra dell'intestazione: aggiorna immediatamente (la lista si aggiorna anche ogni 3s)

### Interfaccia terminale (TUI)

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

Avvia l'interfaccia terminale:
```bash
cargo run --bin nmt
```

La TUI fornisce le stesse capacità di monitoraggio in un'interfaccia terminale interattiva:

**Controlli da tastiera:**
- `q` - Esce dall'applicazione
- `r` - Attiva/disattiva la risoluzione dei nomi host
- `R` - Aggiorna manualmente le connessioni
- `a` - Attiva/disattiva l'aggiornamento automatico (intervalli di 2 secondi)
- `↑/↓` - Naviga tra le connessioni
- `←/→` - Scorri la tabella orizzontalmente
- `k` / **clic destro** - Apre il menu di terminazione per una riga (Terminate / Force Kill / Cancel)
- `1-8` - Ordina per colonne (Process(ID), Protocol, Source, Destination, Status, TX, RX, Path)

Mouse: il clic sinistro seleziona una riga, il clic destro la seleziona e apre il menu di terminazione.

**Funzionalità:**
- Monitoraggio delle connessioni in tempo reale con aggiornamento automatico
- Colonne ordinabili con indicatori visivi
- Scorrimento orizzontale per tabelle larghe
- Dimensionamento intelligente delle colonne - l'ultima colonna occupa tutta la larghezza rimanente
- Protocolli con codice colore (TCP/TCP6 in verde, UDP/UDP6 in giallo)
- Evidenziazione delle connessioni attive
- Informazioni su processo e PID
- Visualizzazione della velocità I/O in tempo reale
- Stesso ordine delle colonne della versione GTK4 per coerenza

### Risoluzione degli indirizzi

Gli indirizzi comuni sono semplificati per la leggibilità:
- `0.0.0.0:*` o `*:*` → `ANY`
- `127.0.0.1:*` o `[::1]:*` → `LOCALHOST`
- `224.0.0.251:*` → `MDNS`

## Come funziona

### Backend eBPF (event-driven)

L'app utilizza kprobe a livello kernel (`tcp_v4_connect`, `tcp_v6_connect`, `tcp_close`,
`inet_csk_accept`) invece del polling di `/proc/net`. Questo fornisce:

- **Event-driven**: consegna degli eventi in meno di un millisecondo, nessun overhead di polling (~1-3% CPU)
- **PID diretto**: catturato al punto di probe tramite `bpf_get_current_pid_tgid()`, nessuna scansione degli inode
- **Connessioni di breve durata**: mai perse tra gli intervalli di polling

### Modalità eBPF

Il backend eBPF fornisce un monitoraggio delle connessioni **event-driven** con un overhead inferiore ed eventi
in tempo reale, rispetto all'approccio predefinito di polling di `/proc/net`. Può catturare connessioni di breve durata
che il polling potrebbe perdere.

**Prerequisiti:**
```bash
rustup toolchain install nightly
cargo install bpf-linker
```

**Compila ed esegui:**
```bash
cargo build
```

**Esegui come utente normale** (richiede kernel 5.8+):

Concedi le capacità Linux richieste al binario una volta sola:
```bash
sudo setcap cap_bpf,cap_net_admin,cap_perfmon+ep target/debug/network-monitor
./target/debug/network-monitor
```

Oppure per la versione TUI:
```bash
sudo setcap cap_bpf,cap_net_admin,cap_perfmon+ep target/debug/nmt
./target/debug/nmt
```

Per le build release, modifica il percorso di conseguenza:
```bash
sudo setcap cap_bpf,cap_net_admin,cap_perfmon+ep target/release/network-monitor
```

L'app terminerà con un messaggio di configurazione se eBPF non è disponibile (capacità mancanti o
kernel non supportato).

## Architettura
- **GTK4**: framework GUI moderno e multipiattaforma
- **Libadwaita**: componenti UI in stile GNOME
- **Tokio**: runtime asincrono per operazioni concorrenti
- **Aya + eBPF**: tracciamento delle connessioni a livello kernel con kprobe per eventi in tempo reale
- **PID diretto**: identificazione del processo tramite `bpf_get_current_pid_tgid()` al punto di probe
- **Chiamate di sistema**: lettura diretta di `/proc/[pid]/io` per le statistiche I/O
- **Gestione degli errori**: tipi di errore completi con recupero graduale tramite `thiserror`
- **Caching delle prestazioni**: caching del layout UI per prestazioni ottimali

## Pacchetti Linux

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


## Donazioni

Se trovi utile questo progetto, considera di fare una donazione per supportarne lo sviluppo.

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

## Licenza

Questo progetto è open source. Consulta il file LICENSE per i dettagli.
Scarica lo strumento