Maîtriser la commande Netstat de Linux : Des bases à la surveillance avancée du réseau

LightNode
By LightNode ·

Introduction

La commande netstat (statistiques réseau) est l'un des outils de réseau les plus essentiels dans l'arsenal des administrateurs système Linux. Cet utilitaire de ligne de commande polyvalent fournit une vue complète des connexions réseau, des tables de routage, des statistiques d'interface et d'autres informations cruciales liées au réseau.

Qu'est-ce que netstat ?

netstat est un utilitaire de réseau en ligne de commande qui affiche diverses informations liées au réseau, y compris :

  • Connexions réseau (entrantes et sortantes)
  • Tables de routage
  • Statistiques d'interface réseau
  • Connexions de masquage
  • Adhésions multicast
  • Statistiques de protocole

Pourquoi est-ce important ?

Les administrateurs système et les ingénieurs réseau s'appuient sur netstat pour plusieurs tâches critiques :

  1. Dépannage des problèmes réseau - Identifier rapidement les problèmes de connexion et les goulets d'étranglement réseau
  2. Surveillance de la sécurité - Détecter les connexions réseau non autorisées et les activités suspectes
  3. Analyse des performances - Surveiller les modèles de trafic réseau et les statistiques d'interface
  4. Audit système - Examiner les services actifs et les ports ouverts

Brève histoire

La commande netstat fait partie de l'arsenal TCP/IP depuis les débuts des systèmes Unix. Bien qu'elle ait été originellement développée dans BSD Unix, elle a évolué pour devenir un outil standard dans divers systèmes d'exploitation de type Unix, y compris Linux. Bien qu'elle soit considérée comme "dépréciée" au profit d'outils plus récents comme ss, netstat reste largement utilisé en raison de sa :

  • Familiarité parmi les administrateurs système
  • Large disponibilité sur différents systèmes de type Unix
  • Ensemble de fonctionnalités riche et options de sortie détaillées
  • Documentation étendue et soutien communautaire

Syntaxe de base et utilisation

Format de commande

La syntaxe de base de la commande netstat est :

netstat [options]

La commande peut être utilisée avec diverses options pour personnaliser la sortie en fonction de vos besoins. Sans aucune option, netstat affichera une liste des sockets ouverts.

Options et drapeaux courants

Voici les options les plus fréquemment utilisées :

OptionDescription
-aAffiche tous les ports d'écoute et les connexions actives
-tAffiche les connexions TCP
-uAffiche les connexions UDP
-nAffiche les adresses numériques au lieu de résoudre les hôtes et les ports
-lAffiche uniquement les sockets d'écoute
-pAffiche le PID et le nom du programme
-rAffiche la table de routage
-iAffiche les statistiques d'interface réseau
-sAffiche les statistiques de protocole

Exemples de base

  1. Voir toutes les connexions actives
netstat -a
  1. Afficher toutes les connexions TCP
netstat -at
  1. Afficher les ports d'écoute avec des informations sur le programme
sudo netstat -tulnp

Cette combinaison populaire affiche :

  • -t: connexions TCP
  • -u: connexions UDP
  • -l: uniquement les ports d'écoute
  • -n: adresses numériques
  • -p: informations sur le programme
  1. Vérifier la table de routage
netstat -r
  1. Voir les statistiques d'interface
netstat -i

Comprendre la sortie

Une sortie typique de netstat comprend plusieurs colonnes :

  • Proto: Protocole (TCP, UDP)
  • Recv-Q: Données en attente de réception
  • Send-Q: Données en attente d'envoi
  • Local Address: Point de terminaison local de la connexion
  • Foreign Address: Point de terminaison distant de la connexion
  • State: État de la connexion (LISTEN, ESTABLISHED, etc.)

Exemple de sortie lors de l'utilisation de netstat -tan :

Proto Recv-Q Send-Q Local Address          Foreign Address        State
tcp        0      0 0.0.0.0:22            0.0.0.0:*             LISTEN
tcp        0      0 127.0.0.1:631         0.0.0.0:*             LISTEN
tcp        0      0 192.168.1.5:22        192.168.1.100:52614   ESTABLISHED

Fonctionnalités et options clés

Options d'affichage

Lister toutes les connexions

La commande netstat offre diverses façons de lister les connexions réseau en fonction de vos besoins spécifiques :

  1. Afficher tous les protocoles avec des adresses numériques
netstat -an
  1. Afficher des informations étendues
netstat -ae

Cela ajoute des informations supplémentaires comme l'utilisateur et l'inode.

  1. Afficher les informations de temporisation
netstat -o

Ajoute des informations de temporisation utiles pour le dépannage.

Affichage spécifique au protocole

  1. TCP uniquement
# Afficher toutes les connexions TCP, y compris les ports d'écoute
netstat -at

# Afficher uniquement les ports TCP d'écoute
netstat -lt
  1. UDP uniquement
# Afficher toutes les connexions UDP
netstat -au

# Afficher uniquement les ports UDP d'écoute
netstat -lu
  1. Sockets de domaine Unix
# Afficher les sockets de domaine Unix
netstat -x

Options de format de sortie

Affichage numérique

# Sortie entièrement numérique (sans résolution de nom)
netstat -n

# Combiner avec d'autres options
netstat -ant  # Connexions TCP avec adresses numériques

Avantages de l'affichage numérique :

  • Exécution plus rapide
  • Pas de recherches DNS
  • Plus fiable en cas de problèmes DNS

Affichage d'informations étendues

# Afficher les informations sur le processus
sudo netstat -p

# Afficher les informations sur l'utilisateur et le processus
sudo netstat -ep

# Afficher les statistiques d'interface réseau avec des informations étendues
netstat -ie

Affichage continu

# Mettre à jour toutes les 2 secondes
netstat -c

# Combiner avec d'autres options pour une surveillance continue
netstat -ct  # Surveillance continue des TCP

Affichage des statistiques

  1. Statistiques de protocole
# Afficher les statistiques récapitulatives pour tous les protocoles
netstat -s

# Afficher uniquement les statistiques TCP
netstat -st

# Afficher uniquement les statistiques UDP
netstat -su
  1. Statistiques d'interface
# Afficher les statistiques d'interface
netstat -i

# Afficher des informations d'interface étendues
netstat -ie

Exemple de sortie des statistiques d'interface :

Iface    MTU   RX-OK RX-ERR RX-DRP RX-OVR   TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0    1500  158426      0      0      0   88573      0      0      0 BMRU
lo     65536   24846      0      0      0   24846      0      0      0 LRU

Où :

  • RX: Statistiques de réception
  • TX: Statistiques de transmission
  • OK: Paquets réussis
  • ERR: Compte d'erreurs
  • DRP: Paquets abandonnés
  • OVR: Événements de dépassement

Cas d'utilisation courants

Dépannage réseau

Vérification des ports ouverts

  1. Trouver tous les ports ouverts sur le système
sudo netstat -tulpn | grep LISTEN

Cette commande aide à identifier :

  • Quels services sont en cours d'exécution
  • Quels ports ils utilisent
  • Quels processus possèdent ces ports
  1. Vérifier si un port spécifique est utilisé
sudo netstat -tulpn | grep ":80"    # Vérifier le serveur web
sudo netstat -tulpn | grep ":3306"  # Vérifier MySQL

Identifier les connexions actives

  1. Surveiller les connexions actuelles
# Afficher toutes les connexions établies
netstat -nat | grep ESTABLISHED

# Compter les connexions par adresse IP
netstat -nat | grep ESTABLISHED | awk '{print $5}' | cut -d: -f1 | sort | uniq -c
  1. Suivre les états de connexion
# Voir la distribution des états de connexion
netstat -ant | awk '{print $6}' | sort | uniq -c

Surveiller le trafic réseau

  1. Analyse du trafic d'interface
# Surveiller les statistiques d'interface en temps réel
netstat -i
watch -n 1 "netstat -i"
  1. Surveillance spécifique au protocole
# Surveiller les statistiques de trafic TCP
netstat -st

# Surveiller les statistiques de trafic UDP
netstat -su

Analyse de sécurité

Trouver des connexions suspectes

  1. Détecter des ports inhabituels
# Lister tous les ports d'écoute non standards
sudo netstat -tulpn | grep -v ":22\|:80\|:443"
  1. Vérifier les modèles de connexion suspects
# Rechercher des connexions provenant d'IP inattendues
netstat -ant | grep ESTABLISHED | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -rn

Détection de balayage de ports

# Rechercher plusieurs tentatives de connexion
netstat -ant | grep SYN_RECV | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr

Audit système

  1. Vérification des services
# Vérifier quels processus écoutent sur quels ports
sudo netstat -tulpn | grep LISTEN | sort -k 4
  1. Journalisation des connexions
# Créer un journal simple des connexions
while true; do
    date >> connection_log.txt
    netstat -ant >> connection_log.txt
    sleep 60
done
  1. Surveillance de l'utilisation des ressources
# Surveiller le nombre de connexions par service
netstat -ant | grep ESTABLISHED | awk '{print $4}' | cut -d: -f2 | sort | uniq -c

Scénarios de dépannage courants

  1. Problèmes de serveur web
# Vérifier les connexions du serveur web
sudo netstat -ant | grep ":80\|:443" | awk '{print $6}' | sort | uniq -c
  1. Problèmes de connexion à la base de données
# Surveiller les connexions à la base de données (exemple MySQL)
sudo netstat -ant | grep :3306 | awk '{print $6}' | sort | uniq -c
  1. Analyse du serveur de messagerie
# Vérifier les connexions du serveur de messagerie
sudo netstat -ant | grep ":25\|:465\|:587" | awk '{print $6}' | sort | uniq -c

Utilisation avancée

Combinaison avec d'autres commandes

Utilisation avec grep et awk

  1. Filtrage et analyse complexes
# Compter les connexions par état et port
netstat -ant | awk '{print $6, $4}' | sort | uniq -c | sort -rn

# Surveiller les connexions d'un service spécifique au fil du temps
watch -n 1 'netstat -ant | grep ":80" | wc -l'
  1. Analyse avancée des connexions
# Créer un résumé des connexions
netstat -ant | \
awk '{ip[$5]++} END {for (i in ip) print ip[i],i}' | \
sort -nr | head -n 10

Piping vers d'autres outils

# Utilisation avec tee pour la journalisation
netstat -ant | tee network_status.log

# Utilisation avec xargs pour la gestion des processus
netstat -tulpn | grep LISTEN | awk '{print $7}' | cut -d/ -f1 | xargs ps -f

Scripts et automatisation

Script de surveillance de base

#!/bin/bash

LOG_FILE="/var/log/network_monitor.log"

monitor_connections() {
    echo "=== Rapport d'état du réseau ===" >> $LOG_FILE
    date >> $LOG_FILE
    echo "Connexions actives :" >> $LOG_FILE
    netstat -ant | grep ESTABLISHED | wc -l >> $LOG_FILE
    echo "Ports d'écoute :" >> $LOG_FILE
    netstat -tulpn | grep LISTEN >> $LOG_FILE
    echo "=========================" >> $LOG_FILE
}

# Exécuter toutes les 5 minutes
while true; do
    monitor_connections
    sleep 300
done

Script d'analyse avancée

#!/bin/bash

analyze_network() {
    echo "=== Analyse du réseau ==="
    
    echo -e "\nTop 10 des connexions IP :"
    netstat -ant | grep ESTABLISHED | \
    awk '{print $5}' | cut -d: -f1 | \
    sort | uniq -c | sort -rn | head -n 10
    
    echo -e "\nÉtats des connexions :"
    netstat -ant | awk '{print $6}' | \
    sort | uniq -c | sort -rn
    
    echo -e "\nUtilisation des ports :"
    netstat -ant | awk '{print $4}' | \
    cut -d: -f2 | sort | uniq -c | sort -rn | head -n 10
}

# Sauvegarder dans un fichier avec un horodatage
analyze_network | tee -a "network_analysis_$(date +%Y%m%d_%H%M%S).log"

Surveillance des performances

Suivi de l'utilisation des ressources

  1. Impact sur le CPU et la mémoire
# Surveiller l'utilisation des ressources de netstat
while true; do
    ps aux | grep netstat | grep -v grep
    sleep 1
done
  1. Performance de l'interface réseau
#!/bin/bash
# Surveiller le débit de l'interface
INTERVAL=1
INTERFACE="eth0"

while true; do
    R1=$(cat /sys/class/net/$INTERFACE/statistics/rx_bytes)
    T1=$(cat /sys/class/net/$INTERFACE/statistics/tx_bytes)
    sleep $INTERVAL
    R2=$(cat /sys/class/net/$INTERFACE/statistics/rx_bytes)
    T2=$(cat /sys/class/net/$INTERFACE/statistics/tx_bytes)
    
    RBPS=$(( ($R2 - $R1) / $INTERVAL ))
    TBPS=$(( ($T2 - $T1) / $INTERVAL ))
    
    echo "Interface $INTERFACE :"
    echo "RX: $(($RBPS/1024)) Ko/s"
    echo "TX: $(($TBPS/1024)) Ko/s"
    echo "------------------------"
done

Solutions de surveillance à long terme

#!/bin/bash
# Créer un rapport statistique réseau horaire

LOGDIR="/var/log/netstat_reports"
mkdir -p $LOGDIR

generate_report() {
    TIMESTAMP=$(date +%Y%m%d_%H)
    REPORT="$LOGDIR/netstat_report_$TIMESTAMP.log"
    
    echo "Rapport réseau - $(date)" > $REPORT
    echo "=========================" >> $REPORT
    
    echo "Résumé des connexions :" >> $REPORT
    netstat -s >> $REPORT
    
    echo "Statistiques d'interface :" >> $REPORT
    netstat -i >> $REPORT
    
    echo "Connexions actuelles :" >> $REPORT
    netstat -ant >> $REPORT
}

# Exécuter la génération de rapport
generate_report

Conseils d'intégration

  1. Combinaison avec la surveillance système
# Ajouter aux scripts de surveillance système
if [ $(netstat -ant | grep ESTABLISHED | wc -l) -gt 100 ]; then
    echo "Nombre élevé de connexions détecté" | mail -s "Alerte réseau" [email protected]
fi
  1. Fonctions de rapport personnalisées
network_summary() {
    local port="$1"
    echo "Connexions sur le port $port :"
    netstat -ant | grep ":$port" | awk '{print $6}' | sort | uniq -c
}

# Utilisation : network_summary 80

Alternatives à netstat

La commande ss

ss (Socket Statistics) est le remplacement moderne de netstat dans les systèmes Linux. Il est généralement plus rapide et plus riche en fonctionnalités que netstat.

Avantages clés de ss

  • Exécution plus rapide, surtout sur les systèmes avec de nombreuses connexions
  • Informations de socket plus détaillées
  • Meilleur support pour les protocoles plus récents
  • Moins d'utilisation des ressources système

Comparaison avec netstat

# Commande netstat vs équivalent ss

# Lister toutes les connexions
netstat -a
ss

# Afficher les ports TCP d'écoute
netstat -tln
ss -tln

# Afficher les informations sur le processus
netstat -p
ss -p

# Afficher les statistiques
netstat -s
ss -s

Exemple d'utilisation de ss

# Afficher des informations détaillées sur les sockets
ss -i

# Afficher les informations de temporisation
ss -o

# Afficher l'utilisation de la mémoire
ss -m

# Filtrer par état
ss state established

# Filtrer par port
ss sport = :80

Alternatives modernes

lsof (List Open Files)

# Afficher les connexions réseau
lsof -i

# Afficher les ports d'écoute
lsof -i -P -n | grep LISTEN

# Afficher les connexions établies
lsof -i | grep ESTABLISHED

nmap

# Scanner les ports ouverts
nmap localhost

# Scan de port détaillé
nmap -sV localhost

iptraf-ng

  • Moniteur de trafic IP en temps réel
  • Statistiques détaillées sur les protocoles
  • Statistiques d'interface
  • Moniteur de stations LAN

Quand utiliser quoi

Utilisez netstat lorsque :

  • Vous travaillez sur des systèmes plus anciens
  • Vous avez besoin de compatibilité multiplateforme
  • Vous suivez une documentation établie
  • Vous exécutez des diagnostics réseau simples

Utilisez ss lorsque :

  • Vous travaillez sur des systèmes Linux modernes
  • Vous avez besoin d'une exécution plus rapide
  • Vous traitez de nombreuses connexions
  • Vous avez besoin d'informations détaillées sur les sockets

Utilisez lsof lorsque :

  • Vous devez voir des informations sur les descripteurs de fichiers
  • Vous souhaitez corréler les connexions réseau avec les processus
  • Vous dépannez des problèmes d'application

Utilisez nmap lorsque :

  • Vous effectuez des audits de sécurité
  • Vous avez besoin d'un scan de port détaillé
  • Vous analysez des services réseau

Guide de migration

Passer de netstat à ss

Commande netstatÉquivalent ssDescription
netstat -tss -tAfficher les connexions TCP
netstat -uss -uAfficher les connexions UDP
netstat -lss -lAfficher les sockets d'écoute
netstat -pss -pAfficher les informations sur le processus
netstat -nss -nNe pas résoudre les noms
netstat -assAfficher tous les sockets
netstat -rip routeAfficher la table de routage

Exemple de migration de script

# Ancien script netstat
#!/bin/bash
netstat -tulpn | grep LISTEN > listening_ports.log

# Nouvel équivalent ss
#!/bin/bash
ss -tulpn | grep LISTEN > listening_ports.log

Conseils de sélection d'outils

  1. Considérations de performance
  • Pour les systèmes à grande échelle : Utilisez ss
  • Pour des vérifications de base : Les deux outils fonctionnent bien
  • Pour une analyse détaillée : Combinez plusieurs outils
  1. Problèmes de compatibilité
# Vérifier si ss est disponible
if command -v ss >/dev/null 2>&1; then
    ss -tulpn
else
    netstat -tulpn
fi
  1. Exigences fonctionnelles
  • Surveillance de base : netstat/ss
  • Analyse de sécurité : nmap
  • Corrélation des processus : lsof
  • Surveillance en temps réel : iptraf-ng

Meilleures pratiques et conseils

Considérations de performance

Optimiser l'utilisation des commandes

  1. Utilisez la sortie numérique lorsque c'est possible
# Plus lent (avec résolution DNS)
netstat -ta

# Plus rapide (sans résolution DNS)
netstat -tan
  1. Limiter la taille de la sortie
# Au lieu d'afficher toutes les connexions
netstat -a

# Filtrer pour des informations spécifiques
netstat -an | grep ':80'
  1. Éviter le polling continu
# Pas recommandé pour les systèmes chargés
netstat -c

# Meilleure approche avec un intervalle contrôlé
while true; do
    netstat -an | grep ESTABLISHED
    sleep 5
done

Pièges courants

Problèmes d'utilisation des ressources

  • Problème : Utilisation excessive du CPU lors de la résolution de noms
# Commande problématique
watch -n 1 'netstat -ta'

# Meilleure alternative
watch -n 1 'netstat -tan'

Problèmes de permission

  • Problème : Informations sur le processus manquantes
# Affichera des informations incomplètes
netstat -p

# Utilisation correcte
sudo netstat -p

Interprétation de la sortie

  • Problème : Mauvaise interprétation des états de connexion
# Malentendu courant avec TIME_WAIT
netstat -ant | grep TIME_WAIT

# Meilleure analyse avec contexte
netstat -ant | awk '{print $6}' | sort | uniq -c

Conseils pour une utilisation quotidienne

Création d'alias utiles

# Ajouter à ~/.bashrc
alias ns='netstat -tulpn'
alias nsc='netstat -ant | grep ESTABLISHED'
alias nsl='sudo netstat -tulpn | grep LISTEN'

Vérifications de sécurité rapides

# Vérifier les ports d'écoute inhabituels
check_ports() {
    echo "Ports connus :"
    sudo netstat -tulpn | grep -E ':22|:80|:443'
    echo -e "\nPorts inconnus :"
    sudo netstat -tulpn | grep -vE ':22|:80|:443'
}

Modèles de surveillance

# Modèle de surveillance des connexions
monitor_connections() {
    local port=$1
    local threshold=$2
    
    count=$(netstat -an | grep ":$port" | grep ESTABLISHED | wc -l)
    if [ $count -gt $threshold ]; then
        echo "Alerte : $count connexions sur le port $port dépassent le seuil de $threshold"
    fi
}

# Utilisation : monitor_connections 80 100

Documentation et journalisation

Création de journaux utiles

#!/bin/bash
# Journaliseur d'état du réseau

log_network_status() {
    local logfile="/var/log/network_status.log"
    local timestamp=$(date '+%Y-%m-%d %H:%M:%S')
    
    {
        echo "=== État du réseau à $timestamp ==="
        echo "Ports d'écoute :"
        netstat -tulpn | grep LISTEN
        echo "Connexions actuelles :"
        netstat -ant | awk '{print $6}' | sort | uniq -c
        echo "=================================="
    } >> "$logfile"
}

Procédures opérationnelles standard

# Modèle pour des vérifications régulières
daily_network_check() {
    echo "1. Vérification des ports d'écoute..."
    sudo netstat -tulpn | grep LISTEN
    
    echo "2. Vérification des connexions établies..."
    netstat -ant | grep ESTABLISHED | wc -l
    
    echo "3. Vérification des états de connexion..."
    netstat -ant | awk '{print $6}' | sort | uniq -c
    
    echo "4. Vérification des statistiques d'interface..."
    netstat -i
}

Directives de dépannage

  1. Problèmes de connexion
connection_troubleshoot() {
    local port=$1
    echo "=== Dépannage de la connexion pour le port $port ==="
    echo "1. Vérification si le port est à l'écoute :"
    sudo netstat -tulpn | grep ":$port"
    
    echo "2. Vérification des connexions actives :"
    netstat -ant | grep ":$port" | awk '{print $6}' | sort | uniq -c
    
    echo "3. Vérification des états de connexion :"
    netstat -ant | grep ":$port" | awk '{print $6}' | sort | uniq -c
}
  1. Surveillance de l'utilisation des ressources
resource_check() {
    echo "=== Vérification des ressources système ==="
    echo "1. Total des connexions :"
    netstat -ant | wc -l
    
    echo "2. Connexions par IP :"
    netstat -ant | grep ESTABLISHED | \
    awk '{print $5}' | cut -d: -f1 | \
    sort | uniq -c | sort -nr | head -5
    
    echo "3. Utilisation de la mémoire des processus réseau :"
    ps aux | grep -E 'netstat|ss' | grep -v grep
}

FAQ (Questions Fréquemment Posées)

Q : Pourquoi ne puis-je pas voir les informations sur le processus (PID) ?

R : Cela est généralement dû à des permissions. Exécutez la commande avec sudo :
sudo netstat -tulpn

L'option -p nécessite des privilèges root pour afficher les informations sur le processus.

Q : Quelle est la différence entre les états LISTEN et ESTABLISHED ?

R : 
- LISTEN : Indique qu'un service écoute sur ce port, attendant des connexions
- ESTABLISHED : Représente une session active et actuellement connectée

Q : Comment vérifier les connexions pour un port spécifique ?

R : Vous pouvez utiliser grep pour filtrer les connexions spécifiques au port :

# Vérifier toutes les connexions sur le port 80
netstat -an | grep ":80"

# Vérifier uniquement les ports d'écoute
netstat -tunl | grep ":80"

Q : Pourquoi ma commande netstat s'exécute-t-elle lentement ?

R : Deux raisons principales :
1. Résolution DNS - Utilisez l'option -n pour éviter la résolution de noms
2. Trop de connexions - Utilisez le filtrage ou envisagez de passer à ss

# Exemple de commande plus rapide
netstat -tan | grep ESTABLISHED

Q : netstat affectera-t-il les performances du système ?

R : Un polling fréquent peut impacter les performances. Meilleures pratiques :
1. Augmenter les intervalles de polling
2. Utiliser le filtrage pour réduire la sortie
3. Envisager ss pour les systèmes à grande échelle
4. Éviter le mode continu (-c) sur les systèmes chargés

Q : Comment identifier quelle application utilise un port spécifique ?

R : Utilisez ces commandes :
# Afficher le processus utilisant le port 80
sudo netstat -tulpn | grep ":80"

# Alternative avec lsof
sudo lsof -i :80

Q : Comment surveiller les états de connexion ?

R : Plusieurs approches :

# Compter les connexions par état
netstat -ant | awk '{print $6}' | sort | uniq -c

# Surveiller les connexions établies
watch -n 1 'netstat -ant | grep ESTABLISHED | wc -l'

Q : Comment vérifier les connexions suspectes ?

R : Recherchez :
1. Ports inhabituels :
netstat -tulpn | grep -vE ':22|:80|:443'

2. Nombre élevé de connexions d'une seule IP :
netstat -ant | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr

Q : Comment détecter les tentatives de balayage de ports ?

R : Surveillez les connexions SYN_RECV :
netstat -ant | grep SYN_RECV | awk '{print $5}' | cut -d: -f1 | sort | uniq -c

Q : Quelle est la différence entre les options -t et -u ?

R :
-t : Affiche uniquement les connexions TCP
-u : Affiche uniquement les connexions UDP

Vous pouvez les combiner :
netstat -tu : Affiche à la fois TCP et UDP

Q : Comment sauvegarder la sortie de netstat dans un fichier ?

R : Plusieurs méthodes :

# Sortie de base dans un fichier
netstat -ant > network_status.log

# Avec horodatage
(date; netstat -ant) > network_status.log

# Journalisation continue
while true; do
    netstat -ant >> network_log.txt
    sleep 300
done

Q : Que signifie "Adresse déjà utilisée" dans la sortie de netstat ?

R : Cela indique qu'un port est déjà utilisé par un autre processus. Pour le trouver :
sudo netstat -tulpn | grep "<numéro_de_port>"

Q : Pourquoi vois-je de nombreuses connexions TIME_WAIT ?

R : TIME_WAIT est normal après la fermeture des connexions. Cependant, trop de connexions peuvent indiquer :
1. Un taux de connexion élevé
2. Des problèmes réseau possibles
3. Une application qui ne réutilise pas les connexions

Surveillez avec :
netstat -ant | grep TIME_WAIT | wc -l