La commande netstat
est un outil puissant pour surveiller et diagnostiquer le réseau sous Unix/Linux. Elle permet d’afficher diverses informations réseau, telles que les connexions, les tables de routage, et les statistiques d’interface. Cet article vous guidera à travers ses diverses options et comment l’utiliser dans vos scripts.
Utilisation de Base de netstat
Pour commencer, la commande de base netstat
s’utilise simplement en tapant :
netstat
Cela affichera un résumé des connexions réseau actuelles, mais netstat
peut faire beaucoup plus avec quelques options supplémentaires.
Options Courantes de netstat
Voici quelques-unes des options les plus couramment utilisées :
netstat -a
: Affiche toutes les connexions réseau et les sockets d’écoute.
netstat -a
Exemple :
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 localhost:domain *:* LISTEN
udp 0 0 *:bootpc *:*
netstat -t
: Affiche uniquement les connexions TCP.
netstat -t
Exemple :
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 localhost:domain *:* LISTEN
tcp 0 0 192.168.1.5:ssh 192.168.1.10:54321 ESTABLISHED
netstat -u
: Affiche uniquement les connexions UDP.
netstat -u
Exemple :
Proto Recv-Q Send-Q Local Address Foreign Address State
udp 0 0 *:bootpc *:*
udp 0 0 192.168.1.5:ntp *:*
netstat -l
: Affiche uniquement les sockets d’écoute.
netstat -l
Exemple :
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 localhost:domain *:* LISTEN
tcp 0 0 *:http *:* LISTEN
udp 0 0 *:bootpc *:*
netstat -s
: Affiche les statistiques globales du réseau.
netstat -s
Exemple :
Ip:
12014 total packets received
0 forwarded
0 incoming packets discarded
12014 incoming packets delivered
Tcp:
234 active connections openings
123 passive connection openings
Utilisation de netstat
dans les Scripts
La commande netstat
est également très utile dans les scripts shell pour surveiller et diagnostiquer les problèmes réseau. Voici un exemple simple de script utilisant netstat
(attribuer les bons privilèges au script) :
#!/bin/bash
# Afficher les connexions TCP en cours
echo "Connexions TCP en cours :"
netstat -t
# Afficher les sockets d'écoute
echo "Sockets d'écoute :"
netstat -l
# Afficher les statistiques réseau globales
echo "Statistiques réseau :"
netstat -s
Exemple Pratique
Supposons que vous souhaitiez surveiller les connexions entrantes à un serveur web et vérifier les adresses IP qui se connectent le plus fréquemment. Voici un script qui utilise netstat
pour accomplir cela (attribuer les bons privilèges au script) :
#!/bin/bash
# Afficher les connexions HTTP en cours
echo "Connexions HTTP en cours :"
netstat -an | grep ':80' | grep 'ESTABLISHED'
# Extraire les adresses IP et compter les occurrences
echo "Adresses IP des connexions HTTP :"
netstat -an | grep ':80' | grep 'ESTABLISHED' | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr
Explication :
netstat -an
: Affiche toutes les connexions réseau avec des adresses numériques.grep ':80'
: Filtre les connexions sur le port 80 (HTTP).grep 'ESTABLISHED'
: Filtre les connexions établies.awk '{print $5}'
: Extrait la cinquième colonne (adresse IP distante).cut -d: -f1
: Supprime les numéros de port pour ne conserver que les adresses IP.sort | uniq -c | sort -nr
: Trie les adresses IP, compte les occurrences, et les trie par ordre décroissant.
Exemple :
Connexions HTTP en cours :
tcp 0 0 192.168.1.5:80 192.168.1.10:54321 ESTABLISHED
tcp 0 0 192.168.1.5:80 192.168.1.11:54322 ESTABLISHED
Adresses IP des connexions HTTP :
2 192.168.1.10
1 192.168.1.11
Conclusion
La commande netstat
est un outil essentiel pour surveiller et diagnostiquer le réseau sous Unix/Linux. En combinant ses différentes options et en l’intégrant dans des scripts, vous pouvez automatiser efficacement vos tâches de surveillance réseau. Essayez ces commandes et scripts pour mieux maîtriser votre environnement de travail ! 🚀