trippy (binary: trip) is a Rust network diagnostic tool that fuses traceroute and ping into a single live TUI. For every hop it shows packets sent/received, loss %, and last/avg/best/worst/stddev latency, plus jitter analysis, histograms, GeoIP, and DNS resolution. It supports ICMP, UDP, and TCP probes and can trace multiple targets at once — making it far faster to answer “where is the network breaking?” than classic traceroute + ping.
Installation
| Platform | Command |
|---|
| Cargo (all platforms) | cargo install trippy |
| macOS (Homebrew) | brew install trippy |
| Arch Linux | sudo pacman -S trippy |
| Debian/Ubuntu | sudo apt install trippy |
| Fedora | sudo dnf install trippy |
| Nix | nix-env -iA nixpkgs.trippy |
| Windows (Scoop) | scoop install trippy |
Privileges
ICMP/raw sockets need elevated rights:
sudo trip example.com
# Or grant the capability once (Linux), then run without sudo:
sudo setcap cap_net_raw+ep $(which trip)
Basic Usage
| Command | Description |
|---|
trip example.com | Trace + ping a host (ICMP, live TUI) |
trip example.com google.com | Trace multiple targets at once |
trip 1.1.1.1 | Trace an IP directly |
trip --help | Full option list |
trip --version | Version |
Protocol & Probe Options
| Option | Description |
|---|
-i, --interface eth0 | Use a specific source interface |
--icmp | ICMP probes (default) |
--udp | UDP probes |
--tcp | TCP probes (good through firewalls) |
-p, --target-port 443 | Target port (UDP/TCP) |
--first-ttl N | Start at a given TTL |
--max-ttl N | Maximum number of hops |
-4 / -6 | Force IPv4 / IPv6 |
Timing & Rate
| Option | Description |
|---|
--min-round-duration 100ms | Minimum time per round |
--max-round-duration 1s | Maximum time per round |
--initial-sequence N | Starting sequence number |
--read-timeout 1s | Per-probe read timeout |
--grace-duration 100ms | Wait for late responses |
DNS & GeoIP
| Option | Description |
|---|
-r, --dns-resolve-method system | Resolver: system, resolv, google, cloudflare |
-z, --dns-lookup-as-info | Show the AS (autonomous system) number per hop |
--dns-resolve-all | Resolve all IPs for a host |
--geoip-mmdb-file GeoLite2-City.mmdb | Add city/country GeoIP per hop |
Interactive Keys
| Key | Action |
|---|
↑ / ↓ | Select a hop |
Tab | Switch between targets |
z | Toggle the hop chart |
h | Toggle help |
q | Quit |
Esc | Close a panel |
Reports (Non-Interactive)
trippy can emit one-shot reports for scripts and tickets.
| Command | Description |
|---|
trip example.com -m report | Print a table report and exit |
trip example.com -m json | JSON output |
trip example.com -m csv | CSV output |
trip example.com -m stream | Continuous text stream |
trip example.com -m flows | Show distinct routing flows (ECMP) |
Common Workflows
# Where is the latency? Trace with AS info and a 30-hop cap
sudo trip example.com -z --max-ttl 30
# Diagnose through a firewall that drops ICMP
sudo trip example.com --tcp -p 443
# Compare two upstreams side by side
sudo trip 1.1.1.1 8.8.8.8
# Capture a report to attach to a support ticket
sudo trip example.com -m json > trace-report.json
| Tool | Combines ping+traceroute | Multi-target | TUI | Protocols |
|---|
| trippy | Yes | Yes | Rich | ICMP/UDP/TCP |
| mtr | Yes | No | Basic | ICMP/UDP |
| traceroute | No | No | No | ICMP/UDP/TCP |
| ping | No | No | No | ICMP |
Resources