Un problème réseau peut bloquer toute une infrastructure. Savoir utiliser tcpdump, ss et traceroute permet de diagnostiquer rapidement : port fermé, firewall qui bloque, route cassée, ou latence excessive.
Plan
- tcpdump : capturer et analyser les paquets
- ss : analyser les connexions actives
- traceroute et mtr : diagnostic de routage
- netstat (legacy) et alternatives
- Troubleshooting courants
- Conclusion
tcpdump : capturer les paquets
Installation
apt install tcpdump # Debian/Ubuntu
dnf install tcpdump # RHEL/Fedora
Captures basiques
# Toutes les interfaces
tcpdump -i any
# Interface spécifique
tcpdump -i eth0
# Limiter à 100 paquets
tcpdump -c 100
# Sauvegarder dans un fichier
tcpdump -w capture.pcap
# Lire un fichier
tcpdump -r capture.pcap
Filtres essentiels
# Port spécifique
tcpdump port 80
tcpdump port 443
# Hôte spécifique
tcpdump host 192.168.1.10
# Réseau
tcpdump net 192.168.1.0/24
# Protocole
tcpdump tcp
tcpdump udp
tcpdump icmp
# Combinaisons
tcpdump 'tcp port 80 and host 10.0.0.5'
tcpdump 'udp port 53 or tcp port 443'
Exemples pratiques
# Capturer trafic HTTP
tcpdump -i eth0 'tcp port 80' -A
# Capturer SYN (connexions TCP)
tcpdump 'tcp[tcpflags] & tcp-syn != 0'
# Capturer DNS
tcpdump -i any port 53 -vv
# Exclure SSH (pour ne pas polluer)
tcpdump -i eth0 not port 22
ss : analyser les connexions
Remplaçant moderne de netstat
# Toutes les connexions
ss -a
# TCP uniquement
ss -t
# UDP uniquement
ss -u
# Listening ports
ss -l
# TCP listening
ss -tl
# Avec numéros de port (pas de résolution DNS)
ss -tn
Options utiles
# Afficher PID/programme
ss -tp
# Statistiques
ss -s
# Connexions établies
ss -t state established
# Connexions en attente (TIME_WAIT)
ss -t state time-wait
Exemples pratiques
# Qui écoute sur le port 80 ?
ss -tlnp | grep :80
# Connexions vers un hôte
ss -tn dst 192.168.1.10
# Connexions depuis un hôte
ss -tn src 192.168.1.5
# Compter connexions par état
ss -tan | awk '{print $1}' | sort | uniq -c
traceroute et mtr
traceroute : tracer la route
# Installation
apt install traceroute
# Trace vers une destination
traceroute example.com
# TCP mode (plus fiable)
traceroute -T example.com
# Nombre de sauts max
traceroute -m 15 example.com
mtr : traceroute en continu
# Installation
apt install mtr
# Mode interactif
mtr example.com
# Mode rapport (10 paquets)
mtr -r -c 10 example.com
# TCP mode
mtr -T example.com
Interpréter les résultats :
???ou timeout : firewall ou filtrage ICMP- Perte de paquets élevée : saturation ou mauvaise route
- Latence croissante : goulot d'étranglement
netstat (legacy)
Équivalences ss ↔ netstat
# Toutes connexions
netstat -a → ss -a
# TCP listening
netstat -tl → ss -tl
# Avec programmes
netstat -tlnp → ss -tlnp
# Statistiques
netstat -s → ss -s
# Routes
netstat -r → ip route
Recommandation : Utiliser ss plutôt que netstat (plus rapide, plus moderne).
Troubleshooting courants
Problème : "Connection refused"
# Vérifier si le port écoute
ss -tlnp | grep :80
# Si rien : service non démarré
systemctl status nginx
# Si présent : firewall bloque ?
iptables -L -n | grep 80
nft list ruleset | grep 80
Problème : "No route to host"
# Vérifier la route
ip route get 192.168.1.10
# Vérifier ARP (même réseau)
ip neigh show
# Ping
ping 192.168.1.10
# Traceroute
traceroute 192.168.1.10
Problème : Lenteur réseau
# Mesurer latence
ping -c 100 example.com
# MTR pour identifier le hop lent
mtr -r example.com
# Vérifier la bande passante
iperf3 -c server_ip
Problème : DNS ne résout pas
# Tester résolution
dig example.com
# Vérifier /etc/resolv.conf
cat /etc/resolv.conf
# Tester serveur DNS
dig @8.8.8.8 example.com
Conclusion
tcpdump capture les paquets pour analyse fine. ss remplace netstat efficacement. traceroute et mtr diagnostiquent les problèmes de routage. Ces outils suffisent pour résoudre 90% des problèmes réseau.


