Outil Netstat : Analyse et Diagnostic des Connexions Réseau Sous Linux

L'utilitaire netstat est un puissant outil en ligne de commande sous Linux, servant à inspecter et à diagnostiquer les connexions réseau, les tables de routage, les statitsiques d'interface, et plus encore.

Comprendre la sortie de Netstat

Une exécution simple de netstat produit une sortie structurée, généralement divisée en deux sections principlaes :

  • Active Internet connections : Affiche les connexions TCP actives. Les colonnes Recv-Q et Send-Q indiquent respectivement les files d'attente de réception et d'envoi. Idéalement, ces valeurs devraient être à zéro, indiquant l'absence d'accumulation de paquets.
  • Active UNIX domain sockets : Présente les socckets de domaine Unix actifs, utilisés pour la communication inter-processus sur la machine locale.

Les informations clés dans ces sections incluent :

  • Proto : Le protocole utilisé (ex. TCP, UDP).
  • Local Address : L'adresse et le port locaux de la connexion.
  • Foreign Address : L'adresse et le port distants de la connexion.
  • State : L'état actuel de la connexion (ex. ESTABLISHED, LISTEN, CLOSE_WAIT).
  • RefCnt : Le nombre de processus référençant un socket Unix.
  • Type : Le type de socket Unix (ex. STREAM, DGRAM).
  • Path : Le chemin d'accès pour les sockets Unix.

Options Courantes de Netstat

netstat offre une panoplie d'options pour affiner l'analyse :

  • -a : Affiche toutes les connexions et sockets, y compris ceux en état d'écoute (LISTEN).
  • -t : Filtre l'affichage pour ne montrer que les connexions TCP.
  • -u : Filtre l'affichage pour ne montrer que les connexions UDP.
  • -n : Affiche les adresses et les numéros de port sous forme numérique, évitant les résolutions DNS et de noms de service, ce qui accélère l'exécution.
  • -l : Ne liste que les services en état d'écoute (LISTEN).
  • -p : Affiche l'identifiant du processus (PID) et le nom du programme associé à chaque connexion. Nécessite souvent des privilèges root pour être pleinement effectif.
  • -r : Affiche la table de routage du noyau.
  • -s : Présente des statistiques réseau détaillées par protocole (IP, ICMP, TCP, UDP).
  • -c : Exécute netstat de manière continue, rafraîchissant l'affichage à intervalle régulier (par défaut, 1 seconde).
  • --verbose : Affiche des informations supplémentaires, notamment sur les familles d'adresses non supportées par le système.

Exemples d'Utilisation Pratique

1. Afficher Toutes les Connexions et Sockets

Pour une vue complète des connexions actives, y compris celles en attente d'établissement :

netstat -a

Pour se concentrer uniquement sur les connexions TCP :

netstat -at

Et pour les connexions UDP :

netstat -au

2. Lister les Services en Écoute

Pour voir quels services sont en attente de connexions :

netstat -l

Combiner avec -t pour les services TCP écoutant :

netstat -lt

Et avec -u pour les services UDP écoutant :

netstat -lu

Pour lister les sockets Unix en écoute :

netstat -lx

3. Statistiques Réseau

Obtenir un résumé des statistiques pour tous les protocoles :

netstat -s

Pour des statistiques spécifiques à TCP ou UDP :

netstat -st
netstat -su

4. Associer les Connexions aux Processus

Pour identifier quel programme utilise quelle connexion, utilisez l'option -p :

netstat -pt

L'option -p est particulièrement utile pour le débogage.

5. Utilisation des Adresses Numériques

Pour accélérer l'affichage et éviter la résolution de noms, utilisez -n :

netstat -an

Il est également possible de désactiver sélectivement la résolution de noms d'hôtes, de ports ou d'utilisateurs :

netstat -a --numeric-ports
netstat -a --numeric-hosts

6. Surveillance Continue

Pour observer les changements en temps réel, exécutez netstat en mode continu :

netstat -c

7. Affichage de la Table de Routage

Pour examiner la configuration de routage du système :

netstat -r

Utilisez -rn pour afficher les adresses en format numérique :

netstat -rn

8. Identifier les Processus sur des Ports Spécifiques

Pour trouver les processus écoutant sur un port donné, combinez netstat avec grep :

netstat -ap | grep ':80'

Pour trouver les connexions SSH par exemple :

netstat -ap | grep ssh

9. Statistiques des Interfaces Réseau

Pour obtenir la liste des interfaces réseau et leurs statistiques de trafic :

netstat -i

Pour un affichage plus détaillé, similaire à ifconfig :

netstat -ie

10. Analyse des Connexions TCP et IP

Pour identifier les adresses IP les plus fréquemment connectées à un service spécifique (par exemple, le port SSH 22 sur une machine locale), on peut chaîner plusieurs commandes :

netstat -nat | grep "192.168.1.15:22" | awk '{print $5}' | awk -F: '{print $1}' | sort | uniq -c | sort -nr | head -20

Pour obtenir un décompte des différents états des connexions TCP :

netstat -nat | awk '{print $6}' | sort | uniq -c | sort -rn

Étiquettes: netstat Linux réseau diagnostic TCP

Publié le 5 juin à 17h04