Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
network-monitor — Un outil de surveillance des connexions réseau en temps réel conçu avec Rust et GTK4, affichant les connexions actives avec des statistiques I/O en direct dans une interface graphique moderne. | Kitploit
Outils/GitHubGitHub/grigio/network-monitor
Utilitaires GénérauxSniffing et Analyse de PaquetsCartographie RéseauCollecte d'InformationsProtection de la Vie Privée
GitHubgrigio/network-monitor

network-monitor

Un outil de surveillance des connexions réseau en temps réel conçu avec Rust et GTK4, affichant les connexions actives avec des statistiques I/O en direct dans une interface graphique moderne.

Voir le dépôt
284544il y a 1 jourVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
# Network Monitor

![Démonstration de Network Monitor sur le bureau GNOME sous Linux](https://assets.kitploit.com/production/public/readmes/9883/ee8f839c4064b139e19ba818961f4ce859b5461a5eccf2d321c9a184533976b8.gif)

Un outil de surveillance des connexions réseau en temps réel construit avec Rust et GTK4, affichant les connexions actives avec des statistiques d'E/S en direct dans une interface graphique moderne.

[![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)


## Fonctionnalités

- **Surveillance en temps réel** : Surveille en continu les connexions réseau actives
- **Statistiques d'E/S** : Affiche les débits de téléversement/téléchargement en direct pour chaque connexion
- **Identification des processus** : Affiche le programme et le PID associés à chaque connexion
- **Actions sur les processus** : Clic droit sur une ligne pour copier sa valeur/commande ou pour tuer le processus qui
  possède la connexion (Terminate ou Force Kill, avec confirmation)
- **Sélection persistante** : La ligne sélectionnée conserve sa surbrillance à travers les rafraîchissements et est affichée dans
  la bande d'état
- **Interface GTK4 moderne** : Interface graphique propre et réactive avec le style Libadwaita
- **Interface terminal (TUI)** : Interface terminal interactive avec les mêmes capacités de surveillance
- **Résolution d'adresses** : Simplifie les adresses courantes (localhost, any, mDNS)
- **Filtrage des connexions** : Filtre les connexions localhost pour une sortie plus claire
- **Intégration GNOME** : Prise en charge appropriée de la classe WM pour l'épinglage au dock et l'intégration au bureau
- **Double installation** : Prend en charge l'installation locale à l'utilisateur et à l'échelle du système
- **Gestion robuste des erreurs** : Récupération complète des erreurs avec des conseils de configuration clairs
- **Performances optimisées** : Mise en cache des processus et de la disposition pour une meilleure réactivité

## Prérequis

- Rust 1.70+ (édition 2021)
- Bibliothèques de développement GTK4
- Bibliothèques de développement Libadwaita
- Système Linux avec le système de fichiers `/proc`
- Linux 5.8+ (pour les capacités granulaires eBPF)
- Rust Nightly et `bpf-linker` (pour la compilation eBPF)

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

### Installation sur Fedora :
```bash
sudo dnf install gtk4-devel libadwaita-devel
```

## Installation

### Méthode 1 : Installer depuis les sources avec intégration au bureau

1. Cloner le dépôt :
```bash
git clone <repository-url>
cd network-monitor
```

2. Installer localement (sudo non requis) :
```bash
./scripts/install.sh
```

3. Ou installer à l'échelle du système (sudo requis) :
```bash
sudo ./scripts/install.sh
```

Le script d'installation va :
- Compiler les binaires GTK4 et TUI (debug pour local, release pour système)
- Installer les binaires dans `~/.local/bin/` (local) ou `/usr/local/bin/` (système)
- Installer le fichier desktop avec la classe WM appropriée pour l'épinglage au dock GNOME
- Installer les icônes dans les répertoires d'icônes appropriés
- Mettre à jour le cache d'icônes et la base de données desktop
- S'assurer que l'application peut être épinglée au dock/tableau de bord GNOME

### Méthode 2 : Compiler et exécuter directement

1. Cloner le dépôt :
```bash
git clone <repository-url>
cd network-monitor
```

2. Compiler et exécuter :
```bash
cargo run
```

Ou compiler en mode release :
```bash
cargo build --release
./target/release/network-monitor
```

### Méthode 3 : Compiler et exécuter la version TUI

1. Cloner le dépôt :
```bash
git clone <repository-url>
cd network-monitor
```

2. Compiler et exécuter la TUI :
```bash
cargo build --bin nmt
./target/debug/nmt
```

Ou compiler en mode release :
```bash
cargo build --release --bin nmt
./target/release/nmt
```

## Désinstallation

### Supprimer la version installée

Suppression de l'installation locale :
```bash
./scripts/uninstall.sh
```

Suppression à l'échelle du système (sudo requis) :
```bash
sudo ./scripts/uninstall.sh
```

Le script de désinstallation supprimera le binaire, le fichier desktop et les icônes des emplacements appropriés et mettra à jour tous les caches pertinents.

## Utilisation

### Interface graphique GTK4

Lancer l'application de surveillance réseau :
```bash
cargo run
```

L'application ouvrira une fenêtre GTK4 affichant :
- **Process(ID)** : Nom du processus et PID avec une correspondance précise socket-processus
- **Protocol** : Protocole TCP/UDP
- **Source** : Point de terminaison local (résolu en format lisible)
- **Destination** : Point de terminaison distant (résolu en format lisible)
- **Status** : État de la connexion (ESTABLISHED, LISTEN, etc.)
- **TX** : Débit de téléversement calculé à partir des statistiques d'E/S du processus
- **RX** : Débit de téléchargement calculé à partir des statistiques d'E/S du processus
- **Path** : Chemin complet de la commande et arguments depuis `/proc/[pid]/cmdline`

**Actions sur les lignes**

- **Clic gauche** : sélectionner une ligne (également affichée dans la bande inférieure)
- **Clic droit** : ouvrir le menu contextuel avec *Copy Value*, *Copy Command* et
  *Kill "process" (PID)*, qui demande s'il faut Terminate (SIGTERM) ou Force Kill (SIGKILL)
- **Delete** : tuer la ligne actuellement sélectionnée (même boîte de dialogue de confirmation)
- **Ctrl+C** : copier le contenu de la cellule
- **Bouton Refresh** dans la barre d'en-tête : mettre à jour immédiatement (la liste se rafraîchit également toutes les 3s)

### Interface terminal (TUI)

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

Lancer l'interface terminal :
```bash
cargo run --bin nmt
```

La TUI offre les mêmes capacités de surveillance dans une interface terminal interactive :

**Contrôles clavier :**
- `q` - Quitter l'application
- `r` - Basculer la résolution des noms d'hôtes
- `R` - Rafraîchir manuellement les connexions
- `a` - Basculer le rafraîchissement automatique (intervalles de 2 secondes)
- `↑/↓` - Naviguer à travers les connexions
- `←/→` - Faire défiler le tableau horizontalement
- `k` / **clic droit** - Ouvrir le menu kill pour une ligne (Terminate / Force Kill / Cancel)
- `1-8` - Trier par colonnes (Process(ID), Protocol, Source, Destination, Status, TX, RX, Path)

Souris : clic gauche sélectionne une ligne, clic droit la sélectionne et ouvre le menu kill.

**Fonctionnalités :**
- Surveillance des connexions en temps réel avec rafraîchissement automatique
- Colonnes triables avec indicateurs visuels
- Défilement horizontal pour les tableaux larges
- Dimensionnement intelligent des colonnes - la dernière colonne occupe toute la largeur restante
- Protocoles codés par couleur (TCP/TCP6 en vert, UDP/UDP6 en jaune)
- Mise en surbrillance des connexions actives
- Informations sur le processus et le PID
- Affichage des débits d'E/S en direct
- Même ordre de colonnes que la version GTK4 pour la cohérence

### Résolution d'adresses

Les adresses courantes sont simplifiées pour la lisibilité :
- `0.0.0.0:*` ou `*:*` → `ANY`
- `127.0.0.1:*` ou `[::1]:*` → `LOCALHOST`
- `224.0.0.251:*` → `MDNS`

## Comment ça fonctionne

### Backend eBPF (piloté par événements)

L'application utilise des kprobes au niveau du noyau (`tcp_v4_connect`, `tcp_v6_connect`, `tcp_close`,
`inet_csk_accept`) au lieu d'interroger `/proc/net`. Cela offre :

- **Piloté par événements** : Livraison d'événements en moins d'une milliseconde, pas de surcharge d'interrogation (~1-3% CPU)
- **PID direct** : Capturé au point de sonde via `bpf_get_current_pid_tgid()`, pas de scan d'inodes
- **Connexions de courte durée** : Jamais manquées entre les intervalles d'interrogation

### Mode eBPF

Le backend eBPF offre une surveillance des connexions **pilotée par événements** avec une surcharge réduite et des événements
en temps réel, comparé à l'approche par interrogation `/proc/net` par défaut. Il peut capturer les connexions de courte durée
que l'interrogation pourrait manquer.

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

**Compiler et exécuter :**
```bash
cargo build
```

**Exécuter en tant qu'utilisateur normal** (noyau 5.8+ requis) :

Accorder une fois les capacités Linux requises au binaire :
```bash
sudo setcap cap_bpf,cap_net_admin,cap_perfmon+ep target/debug/network-monitor
./target/debug/network-monitor
```

Ou pour la version TUI :
```bash
sudo setcap cap_bpf,cap_net_admin,cap_perfmon+ep target/debug/nmt
./target/debug/nmt
```

Pour les builds release, ajustez le chemin en conséquence :
```bash
sudo setcap cap_bpf,cap_net_admin,cap_perfmon+ep target/release/network-monitor
```

L'application se fermera avec un message de configuration si eBPF n'est pas disponible (capacités manquantes ou
noyau non pris en charge).

## Architecture
- **GTK4** : Framework GUI multiplateforme moderne
- **Libadwaita** : Composants d'interface de style GNOME
- **Tokio** : Runtime asynchrone pour les opérations concurrentes
- **Aya + eBPF** : Traçage des connexions au niveau du noyau avec kprobes pour des événements en temps réel
- **PID direct** : Identification des processus via `bpf_get_current_pid_tgid()` au point de sonde
- **Appels système** : Lecture directe de `/proc/[pid]/io` pour les statistiques d'E/S
- **Gestion des erreurs** : Types d'erreurs complets avec récupération gracieuse via `thiserror`
- **Mise en cache des performances** : Mise en cache de la disposition de l'interface pour des performances optimales

## Paquets Linux

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


## Dons

Si vous trouvez ce projet utile, veuillez envisager de faire un don pour soutenir son développement.

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

## Licence

Ce projet est open source. Voir le fichier LICENSE pour plus de détails.
Télécharger l’outil