OKWszystkie usługi działają prawidłowo
InfrawireLogo InfrawireDokumentacja

Diagnostyka sieci: MTR i traceroute

Dowiesz się, jak używać MTR (My Traceroute) i traceroute do diagnozy problemów z siecią, lokalizacji dużych opóźnień i oceny jakości połączenia.

📋 Wymagania

  • Serwer VPS z dostępem root lub sudo
  • Aktywne połączenie SSH
  • Ubuntu/Debian (polecenia dostosowane do tych dystrybucji)

🔧 Instalacja

Traceroute (podstawowe narzędzie)

Bash
sudo apt update sudo apt install traceroute -y

MTR (zaawansowane)

MTR łączy funkcje ping i traceroute w jednym narzędziu.

Bash
1sudo apt update 2sudo apt install mtr-tiny -y 3 4# Pełna wersja z interfejsem graficznym (opcjonalnie) 5sudo apt install mtr -y

Weryfikacja

Bash
traceroute --version mtr --version

🛠️ Traceroute

Podstawowe użycie

Bash
1traceroute google.com 2traceroute 8.8.8.8 3 4# Limit skoków (domyślnie 30) 5traceroute -m 20 google.com 6 7# Timeout w sekundach 8traceroute -w 5 google.com

Przydatne opcje

Bash
1# UDP (domyślnie) 2traceroute -U google.com 3 4# TCP (często pewniejsze) 5traceroute -T google.com 6 7# ICMP (jak ping) 8traceroute -I google.com 9 10# Bez rozwiązywania DNS (szybciej) 11traceroute -n google.com

Przykładowy wynik

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
 ...

🚀 MTR (zalecane)

MTR wysyła pakiety ciągle i liczy statystyki w czasie rzeczywistym.

Podstawowe polecenia

Bash
1# Tryb interaktywny (zalecany) 2mtr google.com 3 4# Raport (nieinteraktywny) 5mtr --report google.com 6 7mtr --report --report-cycles 10 google.com 8mtr --report 8.8.8.8

Opcje zaawansowane

Bash
1mtr --report --report-cycles 50 google.com 2 3mtr --tcp --port 80 google.com 4mtr --udp --port 53 8.8.8.8 5 6mtr --no-dns google.com 7mtr --interval 2 google.com 8mtr --psize 64 google.com

Tryb interaktywny

Bez --report:

  • d — szczegółowe statystyki wł./wył.
  • n — rozwiązywanie nazw DNS
  • r — reset statystyk
  • s — rozmiar pakietu
  • j — interwał między pakietami
  • q — wyjście

📊 Interpretacja wyników

Opóźnienie

  • < 50 ms — bardzo dobrze (sieć lokalna lub blisko)
  • 50–100 ms — dobrze (region)
  • 100–200 ms — akceptowalnie (międzykontynentalnie)
  • > 200 ms — wysokie, może powodować problemy

Utrata pakietów

  • 0% — idealnie
  • < 1% — typowe w Internecie
  • 1–5% — dopuszczalne, ale może szkodzić
  • > 5% — wymaga analizy

Gwiazdki (*)

W traceroute:

  • pojedyncza * zamiast czasu — router nie odpowiedział na ten pakiet
  • trzy * z rzędu — brak odpowiedzi (timeout lub filtr zapory)

🎯 Przypadki użycia

Wysokie opóźnienie

Bash
mtr --report --report-cycles 30 8.8.8.8 mtr --report --report-cycles 30 1.1.1.1 mtr --report --report-cycles 50 twoja-domena.pl

Utrata pakietów

Bash
mtr --tcp --port 443 --report --report-cycles 50 google.com mtr --report --report-cycles 100 twoj-serwer.pl

Test z VPS do Twojej lokalizacji

Bash
curl ifconfig.me mtr --report --report-cycles 30 TWOJE_PUBLICZNE_IP

🔍 Typowe problemy

Duże opóźnienie na jednym skoku

Bash
mtr --tcp --port 443 --report google.com mtr --udp --port 53 --report 8.8.8.8 mtr --report google.com

Znacząca utrata pakietów

Bash
mtr --report --report-cycles 100 cel.pl mtr --tcp --port 80 --report --report-cycles 50 cel.pl

Powtarzające się timeouty

Bash
mtr --timeout 10 --report cel.pl mtr --tcp --port 443 --timeout 10 --report cel.pl

📝 Przydatne fragmenty

Skrypt diagnostyczny

Bash
1#!/bin/bash 2echo "=== MTR do Google DNS ===" 3mtr --report --report-cycles 30 8.8.8.8 4 5echo -e "\n=== MTR do Cloudflare DNS ===" 6mtr --report --report-cycles 30 1.1.1.1 7 8echo -e "\n=== MTR do Twojej domeny ===" 9mtr --report --report-cycles 30 twoja-domena.pl

Zapis wyniku

Bash
mtr --report --report-cycles 30 google.com > mtr-raport-$(date +%Y%m%d).txt mtr --report --report-cycles 30 --csv google.com > mtr-raport.csv

✅ Dobre praktyki

  • Preferuj MTR — bogatsze statystyki niż sam traceroute
  • Testuj kilka celów — porównaj wyniki
  • Powtarzaj testy — sieć bywa zmienna
  • TCP przy filtrowanym ICMP — część routerów blokuje ICMP, nie TCP
  • Nie myl opóźnienia pośredniego z końcowym — liczy się opóźnienie do hosta docelowego

🆘 Rozwiązywanie problemów

MTR źle się wyświetla

Bash
mtr --report cel.pl mtr --version

Błąd „mtr: command not found”

Bash
sudo apt update sudo apt install mtr-tiny -y # lub sudo apt install mtr -y

Same gwiazdki

Bash
mtr --tcp --port 443 --report cel.pl sudo ufw status sudo iptables -L

📚 Dodatkowe materiały

Powiązane poradniki

❓ Najczęstsze pytania

P: Różnica między traceroute a MTR?
O: Traceroute wysyła serię pakietów i kończy. MTR ciągle mierzy i zbiera statystyki — lepsze do diagnozy.

P: Dlaczego niektóre skoki mają gwiazdki?
O: Router nie odpowiedział — zapora, konfiguracja lub brak odpowiedzi na pakiety diagnostyczne.

P: Czy martwić się o wysokie opóźnienie na pośrednim skoku?
O: Nie zawsze. Jeśli opóźnienie do końcowego hosta jest akceptowalne, pośrednie skoki bywają mylące.

P: Jak czytać utratę pakietów w MTR?
O: Poniżej 1% jest typowe; 1–5% może być problematyczne; powyżej 5% — warto zbadać trasę.