MTR, ping a traceroute: Jak najít problémový uzel v síti?

Ilustrační grafické znázornění průběhu síťové komunikace pomocí traceroute. Oranžové uzly představují jednotlivé síťové hopy (routery nebo servery), které paket prochází na cestě k cílovému bodu. Spojovací čáry mezi uzly znázorňují přenos dat mezi jednotlivými body v síti. Šedé servery na pozadí představují ostatní síťové prvky, které nejsou součástí konkrétní trasy.

Nedávno jsem řešil problém s připojením k našim serverům, které máme umístěné v Bostonu v USA. Potřeboval jsem zjistit, proč v některých případech dostávám vysokou latenci, a tak jsem zkusil traceroute a ping, abych odhalil, kde se data na cestě ztrácí. Nakonec jsem si řekl, že by se podobný návod mohl hodit i dalším, kteří právě podobnou situaci řeší.

Správná diagnostika síťového připojení pomůže odhalit, jestli je problém u vás doma, u vašeho poskytovatele internetu, nebo až na straně vzdáleného serveru. Na macOS k tomu můžeme využít traceroute, ping a další příkazy, které podrobně ukážou cestu vašich dat.


1. Co je traceroute a jak jej použít?

Výstup příkazu traceroute na macOS směřující na server bestsafevpn.com. Zobrazuje síťovou trasu paketů s jednotlivými hopy a jejich latencí v milisekundách. Některé uzly neodpovídají, což je znázorněno * * *. Poslední dostupné hopy ukazují spojení přes Cogentco síť a cílový server s IP adresou 153.92.2.45.
Traceroute na náš web

Co dělá traceroute?

Traceroute sleduje cestu paketů z vašeho zařízení k cílové IP adrese nebo doméně. Postupně nám ukazuje všechny mezilehlé uzly (routery). Díky tomu vidíme, kde přesně může docházet k latenci nebo dokonce k úplnému výpadku.

Jak spustit traceroute na macOS

Otevřete si Terminál a zadejte:

traceroute 8.8.8.8

(Samozřejmě 8.8.8.8 můžete nahradit jinou IP nebo doménou – já jsem to zrovna používal na naše servery v Bostonu.)

Jak číst výstup traceroute?

Ve výpisu traceroute uvidíte seznam hopů (meziuzlů), kterými vaše data prochází.

  • Každý řádek ukazuje IP adresu routeru a dobu odezvy (v milisekundách).
  • * * * značí, že router neodpověděl. Nemusí to nutně znamenat problém, může jen blokovat ICMP.
  • Pokud trasa končí a server je nedostupný, je pravděpodobné, že cíl blokuje ICMP nebo je na trase jiný problém.

Příklad výstupu:

1  192.168.1.1 (192.168.1.1)  2.345 ms  3.412 ms  4.567 ms
2  10.0.0.1 (10.0.0.1)       8.213 ms  9.123 ms  9.890 ms
3  * * *
4  203.0.113.1 (203.0.113.1) 45.678 ms 46.789 ms 47.901 ms
5  8.8.8.8 (8.8.8.8)         98.765 ms 100.234 ms 102.345 ms

2. Jak použít příkaz ping na macOS

Co dělá ping?

Příkaz ping je parťák každého admina. Pošle malé testovací pakety přes ICMP a měří, jak rychle se dostanou tam a zase zpátky.

  • Zjistíte tak dostupnost serveru.
  • Uvidíte dobu odezvy (latenci).
  • Odhalíte případnou ztrátovost paketů.

Jak spustit ping na macOS

V Terminálu:

ping -c 10 8.8.8.8
  • -c 10 znamená, že pošle 10 paketů a skončí.
  • Bez parametru -c poběží ping pořád, dokud ho nepřerušíte Ctrl + C.

Další užitečné přepínače:

  • ping -i 0.5 example.com → Interval 0,5 sekundy mezi pakety.
  • ping -s 1024 example.com → Zvýší velikost paketů.
  • ping -D example.com → Přidává časové značky.

Jak číst výstup ping?

Typicky uvidíte něco jako:

64 bytes from 8.8.8.8: icmp_seq=1 ttl=52 time=98.765 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=52 time=100.234 ms
  • icmp_seq je číslo paketů.
  • ttl je počet „skoků“, po kterých by se paket zrušil.
  • time je doba odezvy v milisekundách.

Pokud se místo odpovědí objeví Request timeout, server třeba ICMP blokuje nebo je zcela nedostupný.

Co dělat, když ping nefunguje?

  1. Zkusím otevřít jinou stránku nebo pingnout jinou IP (třeba ping google.com).
  2. Pokud nic nepomáhá, můžou být problémy v síti, u poskytovatele nebo na cílovém serveru.
  3. Někdy pomůže reset modemu/routeru.
  4. K detailnější analýze zkusím traceroute nebo MTR.

3. Jak používat mtr pro pokročilou analýzu

Co je mtr?

MTR (My Traceroute) je vylepšená verze traceroute – kombinuje traceroute a ping. Sleduje nejen trasu, ale i průběžnou ztrátu paketů a latenci.

Proč používat mtr?

  • Umí zobrazovat statistiky v reálném čase.
  • Snadno uvidíte, na kterém hopu dochází k výpadkům.
  • Je nepostradatelný, pokud máte nestabilní spojení.

Instalace na macOS

brew install mtr

Pokud nemáte Homebrew, nainstalujte ho:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Jak spustit mtr?

mtr 8.8.8.8

Dostanete interaktivní tabulku s informacemi o všech hopch.

Jak číst výstup mtr?

Zobrazí se:

  • HOST – IP nebo doména hopu.
  • Loss% – ztráta paketů.
  • Last/Avg/Best/Wrst – poslední, průměrná, nejlepší a nejhorší doba odezvy.
  • StDev – odchylka.

Pokud je na některém hopu 100% ztráta, může to být tím, že router neodpovídá na ICMP.

Další přepínače

  • mtr -u 8.8.8.8 → Traceroute přes UDP.
  • mtr -T 8.8.8.8 → Traceroute přes TCP.

4. Další užitečné příkazy pro diagnostiku sítě

4.1 nslookup

Zjišťuje, jak se doména překládá na IP:

nslookup google.com

4.2 dig

Podrobnější rozbor DNS záznamů:

dig google.com

4.3 netstat

Zobrazuje aktivní spojení, porty atd.:

netstat -an

4.4 ifconfig / ipconfig

Ukáže IP adresu, nastavení síťových rozhraní:

ifconfig

Na macOS můžete použít i:

ipconfig getifaddr en0

4.5 arp

Zobrazí seznam MAC adres a jejich přiřazené IP:

arp -a

4.6 route

Pro kontrolu směrovací tabulky:

netstat -rn

4.7 lsof

Které procesy mají aktivní síťová spojení:

lsof -i

5. Co dělat při problémech s připojením?

  1. Vyzkoušet jiný web – jestli to není problém jen cílového serveru.
  2. Restartovat router/modem – vždycky je to první krok.
  3. Ověřit IP adresu a bránu (ifconfig/ipconfig).
  4. Vyzkoušet mtr – detailní analýza, kde se data ztrácí.
  5. Zvážit VPN – někdy regionální omezení nebo jiný poskytovatel pomůže.
  6. Kontaktovat poskytovatele – pokud nic nepomáhá, s výpisy traceroute/mtr se jim lépe hledá řešení.
Název VPNSlevaOdkaz na vyzkoušení
NordVPN74% sleva + 3 měsíce zdarmaVyzkoušet
Surfshark87% sleva + 4 měsíce zdarmaVyzkoušet
CyberGhost82% sleva + 4 měsíce zdarmaVyzkoušet
Private Internet Access85% sleva + 4 měsíce zdarmaVyzkoušet
ExpressVPN61% sleva + 6 měsíců zdarmaVyzkoušet

6. Jak provádět traceroute přes TCP místo ICMP

Pokud je ICMP blokován (výstup je jen * * *), můžete použít TCP traceroute:

traceroute -T -p 80 google.com
  • -T – TCP místo ICMP.
  • -p 80 – port 80 (HTTP), dá se použít i 443 (HTTPS).

Když je ICMP blokován, tohle často pomůže ukázat, jestli je cesta průchozí.


7. Jak dlouhodobě monitorovat síť

Pokud máte podezření, že výpadky jsou nepravidelné, hodí se delší měření:

watch -n 10 ping -c 5 google.com

Nebo logovat do souboru:

ping -c 100 google.com > ping_log.txt

8. Shrnutí

V kostce:

  • Traceroute: ukáže cestu.
  • Ping: měří odezvu.
  • MTR: kombinuje obojí.
  • TCP traceroute: řešení, pokud je ICMP blokován.
  • Další příkazy: nslookup, dig, netstat, ifconfig atd. pomohou při hledání chyb.

Já osobně nejčastěji sáhnu po ping, traceroute a mtr. Když to nestačí, přidám netstat a dig. Tím většinou najdu úzké hrdlo, jestli je problém u mě, v Bostonu, nebo někde mezi.

Doufám, že ti tenhle přehled pomůže rychleji vyřešit potíže s internetem a třeba i ušetří pár bezesných nocí při hledání záhadné ztráty paketů! 🙂


Časté otázky

Proč na některých hopch vidím pouze ` * `?

To obvykle znamená, že daný router neodpovídá na ICMP (nebo konkrétní protokol traceroute). Nemusí jít nutně o problém; některé sítě prostě blokují ICMP odpovědi. Pokud se ale za tímto hopem ztrácí pakety nebo nelze dosáhnout cílové adresy, může jít o síťový problém nebo firewallovou blokaci.

Jak poznám, že problém není na mé straně, ale u poskytovatele nebo serveru?

Když ping na jiné adresy funguje a latence je normální, ale u konkrétního serveru je vysoká nebo ho nelze vůbec dosáhnout, pravděpodobně je potíž mimo vaši síť (u poskytovatele či přímo u vzdáleného serveru). MTR nebo traceroute vám zobrazí, který hop konkrétně vykazuje vysokou latenci či ztrátovost.

Pomůže mi TCP traceroute, když ICMP standardní traceroute selhává?

Ano. Některé firewally blokují ICMP pakety, takže klasický traceroute nefunguje. TCP traceroute používá TCP spojení na konkrétním portu (např. 80 nebo 443), díky čemuž se často dostane dál a ukáže, kde přesně dochází k přerušení komunikace.

Předchozí článek

5 Nejlepších VPN pro Android: Srovnání funkcí, výkonu a cen

Další článek

Recenze IPVanish VPN pod lupou: Detailní test A-Z