Ce guide vous apprendra à utiliser MTR (My Traceroute) et Traceroute pour diagnostiquer les problèmes de connectivité réseau, identifier les points de latence et analyser la qualité de votre connexion réseau.
📋 Prérequis
- Un serveur VPS avec accès root ou sudo
- Une connexion SSH active
- Ubuntu/Debian (les commandes sont adaptées pour ces distributions)
🔧 Installation
Installation de Traceroute (outil de base)
Bash# Sur Ubuntu/Debian sudo apt update sudo apt install traceroute -y
Installation de MTR (outil avancé)
MTR combine les fonctionnalités de ping et traceroute en un seul outil puissant.
Bash1# Sur Ubuntu/Debian 2sudo apt update 3sudo apt install mtr-tiny -y 4 5# Pour la version complète avec interface graphique (optionnel) 6sudo apt install mtr -y
Vérification de l'installation
Bash1# Vérifier que traceroute est installé 2traceroute --version 3 4# Vérifier que MTR est installé 5mtr --version
🛠️ Utilisation de Traceroute
Commande de base
Bash1# Traceroute vers une destination 2traceroute google.com 3 4# Traceroute vers une IP 5traceroute 8.8.8.8 6 7# Limiter le nombre de sauts (par défaut 30) 8traceroute -m 20 google.com 9 10# Spécifier le timeout en secondes 11traceroute -w 5 google.com
Options utiles
Bash1# Utiliser UDP (par défaut) 2traceroute -U google.com 3 4# Utiliser TCP (plus fiable) 5traceroute -T google.com 6 7# Utiliser ICMP (comme ping) 8traceroute -I google.com 9 10# Ne pas résoudre les noms DNS (plus rapide) 11traceroute -n google.com
Exemple de sortie
traceroute to google.com (142.250.185.14), 30 hops max, 60 byte packets
1 10.0.0.1 (10.0.0.1) 0.123 ms 0.089 ms 0.067 ms
2 192.168.1.1 (192.168.1.1) 5.234 ms 5.189 ms 5.145 ms
3 * * *
4 8.8.8.8 (8.8.8.8) 12.456 ms 12.389 ms 12.334 ms
...
🚀 Utilisation de MTR (recommandé)
MTR est plus puissant car il envoie des paquets en continu et calcule des statistiques en temps réel.
Commande de base
Bash1# MTR en mode interactif (recommandé) 2mtr google.com 3 4# MTR avec rapport (non-interactif) 5mtr --report google.com 6 7# MTR avec 10 paquets de test 8mtr --report --report-cycles 10 google.com 9 10# MTR vers une IP 11mtr --report 8.8.8.8
Options avancées
Bash1# Spécifier le nombre de paquets à envoyer 2mtr --report --report-cycles 50 google.com 3 4# Utiliser TCP au lieu d'ICMP 5mtr --tcp --port 80 google.com 6 7# Utiliser UDP 8mtr --udp --port 53 8.8.8.8 9 10# Ne pas résoudre les noms DNS 11mtr --no-dns google.com 12 13# Intervalle entre les paquets (en secondes) 14mtr --interval 2 google.com 15 16# Taille des paquets (en octets) 17mtr --psize 64 google.com
Mode interactif MTR
Quand vous lancez mtr sans l'option --report, vous entrez en mode interactif :
- d : Affiche/masque les statistiques détaillées
- n : Active/désactive le mode DNS (résolution des noms)
- r : Réinitialise les statistiques
- s : Change la taille des paquets
- j : Change l'intervalle entre les paquets
- q : Quitte MTR
📊 Interprétation des résultats
Latence normale
- < 50 ms : Excellent, réseau local ou très proche
- 50-100 ms : Bon, connexion régionale
- 100-200 ms : Acceptable, connexion intercontinentale
- > 200 ms : Élevé, peut causer des problèmes
Paquets perdus
- 0% : Parfait
- < 1% : Normal pour une connexion Internet
- 1-5% : Acceptable mais peut causer des problèmes
- > 5% : Problématique, investigation nécessaire
Signification des astérisques (*)
Dans traceroute, un * signifie :
- Un seul * à la place d'un temps : Le routeur n'a pas répondu à ce paquet spécifique
- Trois * consécutifs : Le routeur n'a pas répondu du tout (timeout ou filtre de pare-feu)
🎯 Cas d'utilisation
Diagnostic de latence élevée
Bash1# Tester vers Google DNS 2mtr --report --report-cycles 30 8.8.8.8 3 4# Tester vers Cloudflare DNS 5mtr --report --report-cycles 30 1.1.1.1 6 7# Identifier le saut problématique 8mtr --report --report-cycles 50 votre-domaine.com
Diagnostic de perte de paquets
Bash1# Test avec TCP pour contourner les filtres ICMP 2mtr --tcp --port 443 --report --report-cycles 50 google.com 3 4# Test vers un serveur spécifique 5mtr --report --report-cycles 100 votre-serveur.com
Test depuis votre VPS vers votre localisation
Bash1# Tester vers votre adresse IP publique 2# Récupérez votre IP publique d'abord 3curl ifconfig.me 4 5# Puis testez depuis votre VPS 6mtr --report --report-cycles 30 VOTRE_IP_PUBLIQUE
🔍 Diagnostic de problèmes courants
Problème : Latence élevée sur un saut spécifique
Si vous voyez une latence élevée sur un saut intermédiaire :
Bash# Tester avec différents protocoles mtr --tcp --port 443 --report google.com mtr --udp --port 53 --report 8.8.8.8 mtr --report google.com
Important: Une latence élevée sur un saut intermédiaire peut être normale si ce routeur ne répond pas rapidement aux requêtes de diagnostic, mais la latence finale reste bonne.
Problème : Perte de paquets importante
Si vous voyez une perte de paquets élevée :
Bash1# Tester avec plus de paquets pour confirmer 2mtr --report --report-cycles 100 destination.com 3 4# Tester avec TCP si ICMP est filtré 5mtr --tcp --port 80 --report --report-cycles 50 destination.com
Attention: Si la perte de paquets apparaît sur tous les sauts, le problème est probablement sur votre VPS ou votre connexion locale. Si elle apparaît uniquement sur un saut spécifique, le problème est sur le réseau entre votre VPS et la destination.
Problème : Timeouts répétés
Bash1# Augmenter le timeout 2mtr --timeout 10 --report destination.com 3 4# Tester avec différents protocoles 5mtr --tcp --port 443 --timeout 10 --report destination.com
📝 Commandes utiles
Script de diagnostic complet
Créez un script pour tester plusieurs destinations :
Bash1#!/bin/bash 2echo "=== Test MTR vers Google DNS ===" 3mtr --report --report-cycles 30 8.8.8.8 4 5echo -e "\n=== Test MTR vers Cloudflare DNS ===" 6mtr --report --report-cycles 30 1.1.1.1 7 8echo -e "\n=== Test MTR vers votre domaine ===" 9mtr --report --report-cycles 30 votre-domaine.com
Sauvegarder les résultats
Bash1# Sauvegarder le rapport dans un fichier 2mtr --report --report-cycles 30 google.com > mtr-report-$(date +%Y%m%d).txt 3 4# Avec format CSV 5mtr --report --report-cycles 30 --csv google.com > mtr-report.csv
✅ Bonnes pratiques
- Utilisez MTR plutôt que traceroute : MTR fournit des statistiques plus complètes
- Testez plusieurs destinations : Comparez les résultats vers différents serveurs
- Faites plusieurs tests : Les réseaux peuvent varier, faites plusieurs tests à différents moments
- Utilisez TCP si ICMP est filtré : Certains routeurs filtrent ICMP mais pas TCP
- Interprétez correctement les résultats : Une latence élevée sur un saut intermédiaire n'est pas toujours un problème si la latence finale est bonne
🆘 Dépannage
MTR ne s'affiche pas correctement
Bash1# Si MTR ne fonctionne pas en mode interactif, utilisez le mode rapport 2mtr --report destination.com 3 4# Vérifier la version de MTR 5mtr --version
Erreur "mtr: command not found"
Bash1# Réinstaller MTR 2sudo apt update 3sudo apt install mtr-tiny -y 4 5# Ou installer la version complète 6sudo apt install mtr -y
Les résultats montrent tous des astérisques
Si tous les sauts montrent des *, cela peut signifier :
Bash1# Votre pare-feu bloque ICMP 2# Testez avec TCP à la place 3mtr --tcp --port 443 --report destination.com 4 5# Vérifiez les règles de pare-feu 6sudo ufw status 7sudo iptables -L
📚 Ressources supplémentaires
❓ Questions fréquentes
Q : Quelle est la différence entre Traceroute et MTR ?
R : Traceroute envoie quelques paquets et affiche les résultats. MTR envoie des paquets continuellement et calcule des statistiques en temps réel, ce qui est plus utile pour le diagnostic.
Q : Pourquoi certains sauts montrent des astérisques ?
R : Cela signifie que le routeur n'a pas répondu. Cela peut être dû à un filtre de pare-feu, une configuration de routeur, ou simplement que le routeur ne répond pas aux requêtes de diagnostic.
Q : Dois-je m'inquiéter d'une latence élevée sur un saut intermédiaire ?
R : Pas nécessairement. Si la latence finale vers la destination est bonne, une latence élevée sur un saut intermédiaire peut être normale. C'est la latence finale qui compte vraiment.
Q : Comment interpréter la perte de paquets dans MTR ?
R : Une perte de paquets < 1% est normale. Entre 1-5%, c'est acceptable mais peut causer des problèmes. Au-delà de 5%, c'est problématique et nécessite une investigation.