Trippy

Trippy

WHAT IS IT?

Trippy is a Rust network diagnostic tool that puts traceroute and ping into one terminal UI. trip example.com discovers the hops to the target, then keeps measuring each one: packet loss, latency (last, average, best, worst), standard deviation and jitter. The README says it draws heavily from mtr and borrows ideas from libparistraceroute and Dublin Traceroute, two tools built to trace through multi-path routing.

WHY IS IT INTERESTING?

  • Three probe protocols: ICMP, UDP and TCP over IPv4 and IPv6, with tunable source and destination ports, packet size and payload pattern, TTL and TOS.
  • Multi-path routing (ECMP): classic, paris and dublin strategies, plus per-flow isolation, so you see the parallel paths your traffic takes rather than an average that blends them.
  • What plain traceroute hides: NAT detection, RFC 4884 ICMP extensions including MPLS label stacks, and the AS number and name of every hop.
  • Several targets at once: one instance traces multiple destinations, with RTT history and distribution charts, a GeoIP world map, and hop privacy to hide the first hops before you share a screenshot.
  • Reports for scripts: JSON, CSV, plain or Markdown tables, a per-flow report and Graphviz dot output, over a fixed number of rounds.
  • Wide packaging: Linux, macOS, Windows, FreeBSD, NetBSD and OpenBSD, with packages for Debian 13, Homebrew, WinGet, Arch, Nix and a Docker image.

Trippy opens raw sockets, so it needs privileges: sudo, the setuid bit or, on Linux, the CAP_NET_RAW capability, which it drops once the sockets exist. On Windows it needs Administrator rights and, if Windows Defender blocks inbound ICMP, a firewall rule that the docs provide as PowerShell. Unprivileged mode (--unprivileged) only works on macOS as of 0.13.0, and without the paris and dublin strategies. AS numbers come from Team Cymru's DNS service, which means an external query, and the GeoIP map needs a MaxMind or IPinfo mmdb file that you supply yourself.

The latest release, 0.13.0, dates from May 5, 2025. The main branch still gets commits, mostly dependency bumps, and its changelog lists a breaking change for the next version: the default address family becomes system.

USE CASES

  • Find the hop where packet loss starts on a flaky link by leaving the trace running for a few minutes.
  • Trace over TCP to port 443 of a server when ICMP is filtered along the way.
  • Compare, flow by flow, the paths of traffic that a carrier spreads over ECMP.
  • Attach a JSON or Markdown report to a ticket with a hosting provider or ISP.