Commande Linux nethogs
Encyclopédie des commandes Linux
nethogs est un outil en ligne de commande Linux open source utilisé pour surveiller en temps réel l'utilisation de la bande passante réseau par processus. Contrairement aux outils de surveillance réseau traditionnels (tels que iftop), nethogs ne mesure pas le trafic en fonction des ports ou des protocoles ; il affiche directement l'activité réseau de chaque processus.
Pourquoi utiliser nethogs
Sur les systèmes Linux, lorsque des anomalies réseau se produisent, les administrateurs doivent généralement identifier rapidement quel processus consomme une grande quantité de bande passante. nethogs offre les avantages suivants :
- Surveillance au niveau des processus: affiche directement le trafic réseau de chaque processus
- Mises à jour en temps réel: actualise les données chaque seconde par défaut
- Aucune configuration requise: fonctionne immédiatement, aucun paramétrage complexe nécessaire
- Léger: faible utilisation des ressources, adapté aux environnements de production
Installer nethogs
Systèmes Ubuntu/Debian
Exemple
sudo apt-get install nethogs
Systèmes CentOS/RHEL
Exemple
sudo yum install nethogs
Compiler et installer depuis les sources
Exemple
cd nethogs
make && sudo make install
Utilisation de base
Surveiller toutes les interfaces réseau
sudo nethogs
Exemple de sortie :
PID USER PROGRAM DEV SENT RECEIVED 1234 root /usr/bin/ssh eth0 12.456 5.678 KB/sec 5678 bob /usr/bin/firefox wlan0 45.789 32.123 KB/sec
Surveiller une interface réseau spécifique
sudo nethogs eth0
Réglage de l’intervalle d’actualisation (secondes)
sudo nethogs -d 5 # 每5秒刷新一次
Options de commande courantes
| Option | Description |
|---|---|
-d |
Définir l’intervalle d’actualisation (secondes) |
-c |
Quitter après un nombre spécifié d’actualisations |
-t |
Mode trace (affiche le trafic cumulé) |
-p |
Mode promiscuité (écoute tout le trafic) |
-V |
Afficher les informations de version |
-h |
Afficher les informations d'aide |
Utilisation avancée
1. Suivre un processus spécifique
sudo nethogs -p | grep "进程名"
2. Enregistrer les résultats de surveillance dans un fichier
sudo nethogs -t > network_log.txt
3. Surveiller les processus d’un utilisateur spécifique
sudo nethogs -u username
4. Combiner les options
sudo nethogs -d 10 -c 6 eth0 # 每10秒刷新一次,共刷新6次后退出
Explication des champs de sortie
La sortie de nethogs inclut les informations clés suivantes :
- PID: ID du processus
- USER: L'utilisateur exécutant le processus
- PROGRAM: Nom du processus ou ligne de commande
- DEV: Interface réseau utilisée
- SENT: Débit d'envoi de données du processus (KB/sec)
- RECEIVED: Débit de réception de données du processus (KB/sec)
Scénarios d'application pratiques
Scénario 1 : Diagnostiquer les problèmes de lenteur réseau
sudo nethogs
Identifiez rapidement la source du problème en vérifiant quel processus occupe le plus de bande passante.
Scénario 2 : Surveiller le trafic anormal du serveur
sudo nethogs -d 30 -c 12 > /var/log/nethogs.log
Enregistrez une fois toutes les 30 secondes, en capturant un total de 6 minutes d'activité réseau.
Scénario 3 : Limiter la bande passante pour un processus spécifique
Exemple
sudo nethogs
# Utilisez ensuite tc ou wondershaper pour limiter la bande passante
sudo wondershaper eth0 1024 512 # Limiter le débit montant à 1024 Kbps, le débit descendant à 512 Kbps
Solutions aux problèmes courants
Problème 1 : Autorisations insuffisantes
Error: opening device eth0: Operation not permitted
Solution: Exécutez nethogs avec sudo ou en tant qu'utilisateur root.
Problème 2 : Impossible d'identifier le nom du processus
PID USER PROGRAM DEV SENT RECEIVED 1234 - - eth0 12.456 5.678 KB/sec
Solution: Le processus a peut-être pris fin, ou nethogs ne dispose pas des autorisations suffisantes pour obtenir les informations sur le processus.
Problème 3 : Interface réseau spécifique non prise en charge
Error: No such device exists (device_name)
Solution: Utilisez laifconfigouip acommande pour confirmer le nom correct de l'interface.
Comparaison d'outils alternatifs
| Outil | Fonctionnalités | Scénarios applicables |
|---|---|---|
| nethogs | Affiche le trafic par processus | Localiser rapidement les processus problématiques |
| iftop | Affiche le trafic par connexion | Analyser des connexions réseau spécifiques |
| nload | Affiche le trafic total par interface | Surveiller l'utilisation globale de la bande passante |
| bmon | Interface graphique | Visualiser les tendances du trafic |
Résumé
nethogs est un outil de diagnostic réseau indispensable dans la boîte à outils d'un administrateur système Linux, particulièrement adapté pour :
- Identifier rapidement les processus ayant une activité réseau anormale
- Surveillance de l'utilisation de la bande passante de chaque service sur un serveur
- Résolution des problèmes de performances réseau
Avec l'utilisation de base et les techniques avancées présentées dans cet article, vous devriez être en mesure d'utiliser nethogs avec compétence pour surveiller et gérer le trafic réseau du système.
Autres extensions