Introduction
trip answers "where exactly does my packet lose time?" in real time. Traditional mtr is great, but Trippy adds TCP/UDP probe modes, IPv6 parity, GeoIP + ASN lookups, DNS over HTTPS, and a TUI where you can inspect per-hop jitter, loss, and round-trip distributions simultaneously.
What Trippy Does
- Sends ICMP, UDP, or TCP probes with increasing TTLs.
- Displays per-hop RTT, jitter, packet loss, and EWMA in a live TUI.
- Resolves hops with cloudflare/google/resolv.conf DNS resolvers.
- Looks up ASN and country via bundled MaxMind DB.
- Exports runs to CSV, JSON, PPRINT, or Markdown for reporting.
Architecture Overview
Trippy opens a raw socket, sends one probe per hop per refresh tick, and reads responses on a dedicated tracer thread. A Tokio task queue drives DNS/GeoIP lookups in parallel. The ratatui renderer redraws the TUI at 60fps with minimal allocations. Packet-crafting is cross-platform via the socket2 crate.
Self-Hosting & Configuration
- Install via
brew install trippy,cargo install trippy, apt, dnf. - Linux: grant raw-socket capability with
setcap cap_net_raw+ep $(which trip). - Config file at
~/.config/trippy/trippy.tomlstores defaults. - GeoIP DB path configurable — bring your own MaxMind.
- CI-friendly
--report-mode prettyruns N cycles then prints.
Key Features
- Single binary combining mtr + ASN + GeoIP in one TUI.
- TCP/UDP modes traverse firewalls that drop ICMP.
- IPv6 first-class support.
- Export to CSV/JSON/Markdown for postmortems.
- DNS-over-HTTPS resolver avoids ISP poisoning.
Comparison with Similar Tools
- mtr — classic; no GeoIP/AS, ICMP-centric.
- traceroute — one-shot, no live stats.
- nali + mtr — pipes GeoIP in; less integrated.
- WinMTR — Windows GUI; limited probe modes.
- PathPing — Windows built-in; basic stats.
FAQ
Q: Do I need root?
A: Raw sockets require root or CAP_NET_RAW.
Q: Can I tweak probe rate?
A: --min-round-duration 250ms --max-round-duration 1s.
Q: GeoIP source?
A: Bundled MaxMind GeoLite2 or supply your own with --geoip-mmdb-file.
Q: Does it support SCTP? A: Not yet.