mtr (Matt's Traceroute) combines ping and traceroute into a single continuously-updating display. It sends probes to every hop on the path in real time, giving you live latency, jitter, and packet loss statistics for each router — not just a one-shot snapshot.

ICMP · UDP · TCP · Live Statistics · Linux · macOS · Windows
01 — Why mtr Beats Traceroute
traceroutemtr
Probe styleOne-shot, 3 probes per hopContinuous — hundreds of probes over time
StatisticsRTT onlyLoss %, Sent, Last, Avg, Best, Worst, StDev
JitterNot shownStDev column shows jitter
Intermittent issuesEasy to missAccumulates over time — shows patterns
OutputStatic textLive ncurses display or report mode
When a network issue is intermittent, traceroute might miss it entirely. mtr runs continuously and catches problems that appear only occasionally.
02 — Basic Usage
Interactive live display
mtr google.com
Run for N cycles then print report
mtr -r -c 100 google.com
Typical report output
Start: 2026-03-13T10:00:00+0000 HOST: myhost Loss% Snt Last Avg Best Wrst StDev 1.|-- 192.168.1.1 0.0% 100 1.2 1.1 0.9 2.1 0.2 2.|-- 10.0.0.1 0.0% 100 8.3 8.1 7.9 9.1 0.3 3.|-- 72.14.215.165 0.0% 100 11.9 12.0 11.5 13.2 0.4 4.|-- ??? 100.0% 100 0.0 0.0 0.0 0.0 0.0 5.|-- 142.250.185.46 0.0% 100 14.2 14.1 13.8 15.0 0.3
ColumnMeaning
Loss%Percentage of probes with no reply at this hop
SntTotal probes sent so far
LastRTT of the most recent probe (ms)
AvgAverage RTT across all probes (ms)
BestLowest RTT seen (ms)
WrstHighest RTT seen (ms)
StDevStandard deviation — measures jitter
???Hop did not reply — ICMP blocked, but path continues
03 — Common Flags
FlagDescriptionExample
-rReport mode — run then exitmtr -r google.com
-c <n>Number of cycles to runmtr -r -c 200 google.com
-nNo DNS — show IPs only (faster)mtr -n google.com
-uUse UDP probesmtr -u google.com
-TUse TCP probesmtr -T -P 443 google.com
-P <port>Target port (TCP/UDP mode)mtr -T -P 80 google.com
-i <sec>Probe interval in secondsmtr -i 0.5 google.com
-m <hops>Max number of hopsmtr -m 20 google.com
-4 / -6Force IPv4 or IPv6mtr -6 google.com
--jsonOutput as JSONmtr --json -r google.com
04 — Practical Examples
100-cycle report, no DNS
mtr -r -c 100 -n 8.8.8.8
Test TCP path to a web server on port 443
sudo mtr -T -P 443 -r -c 50 google.com
Share a report — save to file
mtr -r -c 100 google.com > mtr_report.txt
JSON output for scripting / monitoring
mtr --json -r -c 50 google.com | python3 -m json.tool
IPv6 path analysis
mtr -6 -r -c 50 ipv6.google.com
05 — Interpreting Results
PatternMeaning
Loss% at one hop only, 0% afterThat router rate-limits ICMP — not a real problem
Loss% starts at a hop and persistsReal packet loss at or after that hop — investigate that link
RTT jumps at one hop, stays highLatency introduced at that link — congestion or long cable run
High StDev (jitter)Inconsistent link — poor Wi-Fi, overloaded router, or bad cable
All ??? rows, destination repliesAll intermediate routers block ICMP — normal, path is fine
Loss% at final destinationThe target host is dropping packets — firewall or overload
ℹ  Always run mtr for at least 100 cycles before drawing conclusions — intermittent issues need time to show up in the statistics.
⚠  TCP and UDP modes may require sudo on Linux. If mtr shows all ??? hops, try switching probe type: sudo mtr -T -P 80 google.com