Commande Linux nethogs

Linux 命令大全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 :

  1. Surveillance au niveau des processus: affiche directement le trafic réseau de chaque processus
  2. Mises à jour en temps réel: actualise les données chaque seconde par défaut
  3. Aucune configuration requise: fonctionne immédiatement, aucun paramétrage complexe nécessaire
  4. Léger: faible utilisation des ressources, adapté aux environnements de production

Installer nethogs

Systèmes Ubuntu/Debian

Exemple

sudo apt-get update
sudo apt-get install nethogs

Systèmes CentOS/RHEL

Exemple

sudo yum install epel-release
sudo yum install nethogs

Compiler et installer depuis les sources

Exemple

git clone https://github.com/raboof/nethogs
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 :

  1. PID: ID du processus
  2. USER: L'utilisateur exécutant le processus
  3. PROGRAM: Nom du processus ou ligne de commande
  4. DEV: Interface réseau utilisée
  5. SENT: Débit d'envoi de données du processus (KB/sec)
  6. 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

# Utilisez d'abord nethogs pour trouver les processus à fort trafic
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 :

  1. Identifier rapidement les processus ayant une activité réseau anormale
  2. Surveillance de l'utilisation de la bande passante de chaque service sur un serveur
  3. 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.


Linux 命令大全Encyclopédie des commandes Linux

Autres extensions