Diagnostic réseau
Table des matières
- ping et traceroute
- netstat et ss
- nslookup et dig
- curl et wget
- Introduction à tcpdump
- Exercices pratiques
1 - ping et traceroute
ping - Tester la connectivité
# Ping basique
ping google.com
# Nombre de paquets limité
ping -c 4 google.com
# Intervalle personnalisé
ping -i 2 google.com # 2 secondes entre chaque
# Taille de paquet
ping -s 1000 google.com
# Ping avec timeout
ping -W 2 -c 3 192.168.1.1
Sortie typique :
PING google.com (142.250.74.238) 56(84) bytes of data.
64 bytes from par21s17-in-f14.1e100.net: icmp_seq=1 ttl=117 time=12.3 ms
64 bytes from par21s17-in-f14.1e100.net: icmp_seq=2 ttl=117 time=11.8 ms
--- google.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1002ms
rtt min/avg/max/mdev = 11.800/12.050/12.300/0.250 ms
| Information | Signification |
|---|---|
ttl | Time To Live (nombre de sauts restants) |
time | Latence en millisecondes |
packet loss | Pourcentage de paquets perdus |
traceroute - Chemin réseau
# Installer si nécessaire
sudo apt install traceroute
# Tracer le chemin
traceroute google.com
# Avec ICMP (comme ping)
sudo traceroute -I google.com
# Limiter les sauts
traceroute -m 15 google.com
Sortie typique :
traceroute to google.com (142.250.74.238), 30 hops max
1 192.168.1.1 (192.168.1.1) 1.234 ms 1.123 ms 1.098 ms
2 10.0.0.1 (10.0.0.1) 5.432 ms 5.321 ms 5.210 ms
3 * * *
4 72.14.215.85 (72.14.215.85) 12.345 ms 12.234 ms 12.123 ms
remarque
Les * * * indiquent un routeur qui ne répond pas (souvent un pare-feu).
mtr - Traceroute amélioré
# Installer
sudo apt install mtr
# Mode interactif
mtr google.com
# Mode rapport
mtr -r -c 10 google.com
🔝 Retour à la table des matières
2 - netstat et ss
ss - Socket Statistics (moderne)
# Toutes les connexions
ss
# Connexions TCP établies
ss -t
# Connexions en écoute
ss -l
# Avec numéros de ports (pas de résolution)
ss -n
# Avec processus associés
ss -p
# Combinaison courante
ss -tulnp
| Option | Description |
|---|---|
-t | TCP |
-u | UDP |
-l | Listening (en écoute) |
-n | Numérique (pas de résolution DNS) |
-p | Processus |
-a | Toutes (établies + écoute) |
Exemples pratiques ss
# Ports en écoute
sudo ss -tulnp
# Connexions HTTP
ss -t state established '( dport = :80 or sport = :80 )'
# Connexions SSH
ss -t state established '( dport = :22 or sport = :22 )'
# Statistiques
ss -s
netstat - Legacy mais utile
# Installer
sudo apt install net-tools
# Ports en écoute
netstat -tulnp
# Connexions établies
netstat -an | grep ESTABLISHED
# Statistiques
netstat -s
Tableau de correspondance
| netstat | ss | Description |
|---|---|---|
netstat -tulnp | ss -tulnp | Ports en écoute |
netstat -an | ss -an | Toutes les connexions |
netstat -r | ip route | Table de routage |
netstat -i | ip -s link | Statistiques interfaces |
🔝 Retour à la table des matières
3 - nslookup et dig
nslookup - Requêtes DNS simples
# Résoudre un nom
nslookup google.com
# Avec un serveur DNS spécifique
nslookup google.com 8.8.8.8
# Requête inverse (IP vers nom)
nslookup 8.8.8.8
# Type d'enregistrement spécifique
nslookup -type=MX gmail.com
nslookup -type=TXT example.com
dig - DNS avancé
# Installer si nécessaire
sudo apt install dnsutils
# Requête simple
dig google.com
# Réponse courte
dig +short google.com
# Enregistrement MX
dig MX gmail.com
# Tous les enregistrements
dig ANY example.com
# Serveur DNS spécifique
dig @8.8.8.8 google.com
# Trace de résolution
dig +trace google.com
# Requête inverse
dig -x 8.8.8.8
Types d'enregistrements DNS
| Type | Description | Exemple |
|---|---|---|
| A | IPv4 | 142.250.74.238 |
| AAAA | IPv6 | 2a00:1450:4007:... |
| CNAME | Alias | www → example.com |
| MX | Mail server | mail.example.com |
| NS | Serveur de noms | ns1.example.com |
| TXT | Texte | SPF, DKIM |
| PTR | Inverse | IP → nom |
host - Alternative simple
# Résolution simple
host google.com
# Type spécifique
host -t MX gmail.com
🔝 Retour à la table des matières
4 - curl et wget
curl - Transfert de données
# Récupérer une page
curl https://example.com
# Sauvegarder dans un fichier
curl -o page.html https://example.com
# Suivre les redirections
curl -L https://example.com
# Headers seulement
curl -I https://example.com
# Headers détaillés (requête + réponse)
curl -v https://example.com
# POST avec données
curl -X POST -d "user=john&pass=secret" https://api.example.com/login
# POST JSON
curl -X POST -H "Content-Type: application/json" \
-d '{"user":"john"}' https://api.example.com/users
# Avec authentification
curl -u user:password https://api.example.com
# Télécharger avec nom original
curl -O https://example.com/file.zip
# Timeout
curl --connect-timeout 5 --max-time 10 https://example.com
wget - Téléchargement
# Télécharger un fichier
wget https://example.com/file.zip
# Nom de sortie personnalisé
wget -O mon_fichier.zip https://example.com/file.zip
# Téléchargement en arrière-plan
wget -b https://example.com/gros_fichier.iso
# Reprendre un téléchargement interrompu
wget -c https://example.com/gros_fichier.iso
# Télécharger un site entier (mirroring)
wget -m -p -E -k https://example.com
# Limiter la bande passante
wget --limit-rate=500k https://example.com/file.zip
Comparaison
| Aspect | curl | wget |
|---|---|---|
| Usage principal | APIs, tests | Téléchargement |
| Protocoles | HTTP, FTP, SFTP, etc. | HTTP, FTP |
| Récursif | Non | Oui |
| Reprise | Non | Oui (-c) |
| Sortie par défaut | stdout | Fichier |
🔝 Retour à la table des matières
5 - Introduction à tcpdump
Qu'est-ce que tcpdump ?
tcpdump capture et analyse le trafic réseau en temps réel.
Utilisation de base
# Capturer sur toutes les interfaces
sudo tcpdump
# Interface spécifique
sudo tcpdump -i eth0
# Limiter le nombre de paquets
sudo tcpdump -c 10
# Sauvegarder dans un fichier
sudo tcpdump -w capture.pcap
# Lire un fichier
tcpdump -r capture.pcap
Filtres courants
# Par hôte
sudo tcpdump host 192.168.1.100
# Par port
sudo tcpdump port 80
sudo tcpdump port 443
# Par protocole
sudo tcpdump tcp
sudo tcpdump udp
sudo tcpdump icmp
# Combinaisons
sudo tcpdump host 192.168.1.100 and port 22
sudo tcpdump 'tcp port 80 or tcp port 443'
# Réseau entier
sudo tcpdump net 192.168.1.0/24
Options utiles
| Option | Description |
|---|---|
-i | Interface |
-c N | Capturer N paquets |
-w file | Écrire dans un fichier |
-r file | Lire depuis un fichier |
-n | Pas de résolution DNS |
-v, -vv | Verbeux |
-A | Afficher en ASCII |
-X | Afficher en hex et ASCII |
Exemple pratique
# Voir le trafic HTTP
sudo tcpdump -i eth0 -A -s 0 'tcp port 80'
# Capturer pour analyse Wireshark
sudo tcpdump -i eth0 -w /tmp/capture.pcap
astuce
Le fichier .pcap peut être ouvert avec Wireshark pour une analyse graphique.
🔝 Retour à la table des matières
6 - Exercices pratiques
Exercice 1 : Diagnostic de base
# 1. Testez la connectivité à Google
ping -c 4 google.com
# 2. Tracez le chemin
traceroute google.com
# 3. Résolvez le DNS
dig google.com +short
# 4. Vérifiez les ports en écoute
sudo ss -tulnp
Exercice 2 : Utiliser curl
# 1. Récupérez les headers d'un site
curl -I https://httpbin.org/get
# 2. Faites une requête GET
curl https://httpbin.org/get
# 3. Faites un POST JSON
curl -X POST \
-H "Content-Type: application/json" \
-d '{"name":"test"}' \
https://httpbin.org/post
Exercice 3 : DNS
# 1. Trouvez les serveurs MX de gmail.com
dig MX gmail.com +short
# 2. Trouvez les serveurs de noms de google.com
dig NS google.com +short
# 3. Faites une résolution inverse
dig -x 8.8.8.8 +short
Quiz
Q1. Quelle commande remplace netstat sur les systèmes modernes ?
Réponse
ss (Socket Statistics)
Q2. Comment voir seulement les ports en écoute avec ss ?
Réponse
ss -l ou plus complet ss -tulnp
Q3. Quelle option de curl suit les redirections ?
Réponse
-L ou --location
🔝 Retour à la table des matières
Points clés à retenir
pingteste la connectivité,traceroutemontre le cheminss -tulnp= ports en écoute (remplace netstat)digplus puissant quenslookuppour le DNScurlpour les APIs,wgetpour les téléchargementstcpdumppour capturer le trafic (fichiers .pcap)- Toujours utiliser
-npour éviter la résolution DNS lente
🔝 Retour à la table des matières
← Chapitre précédent | Chapitre suivant : SSH - Connexion sécurisée →