Aller au contenu principal

Diagnostic réseau


Table des matières

  1. ping et traceroute
  2. netstat et ss
  3. nslookup et dig
  4. curl et wget
  5. Introduction à tcpdump
  6. 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
InformationSignification
ttlTime To Live (nombre de sauts restants)
timeLatence en millisecondes
packet lossPourcentage 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
OptionDescription
-tTCP
-uUDP
-lListening (en écoute)
-nNumérique (pas de résolution DNS)
-pProcessus
-aToutes (é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

netstatssDescription
netstat -tulnpss -tulnpPorts en écoute
netstat -anss -anToutes les connexions
netstat -rip routeTable de routage
netstat -iip -s linkStatistiques 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

TypeDescriptionExemple
AIPv4142.250.74.238
AAAAIPv62a00:1450:4007:...
CNAMEAliaswww → example.com
MXMail servermail.example.com
NSServeur de nomsns1.example.com
TXTTexteSPF, DKIM
PTRInverseIP → 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

Aspectcurlwget
Usage principalAPIs, testsTéléchargement
ProtocolesHTTP, FTP, SFTP, etc.HTTP, FTP
RécursifNonOui
RepriseNonOui (-c)
Sortie par défautstdoutFichier

🔝 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

OptionDescription
-iInterface
-c NCapturer N paquets
-w fileÉcrire dans un fichier
-r fileLire depuis un fichier
-nPas de résolution DNS
-v, -vvVerbeux
-AAfficher en ASCII
-XAfficher 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

  • ping teste la connectivité, traceroute montre le chemin
  • ss -tulnp = ports en écoute (remplace netstat)
  • dig plus puissant que nslookup pour le DNS
  • curl pour les APIs, wget pour les téléchargements
  • tcpdump pour capturer le trafic (fichiers .pcap)
  • Toujours utiliser -n pour éviter la résolution DNS lente

🔝 Retour à la table des matières


← Chapitre précédent | Chapitre suivant : SSH - Connexion sécurisée →