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-QetSend-Qindiquent 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écutenetstatde 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