Diagnosing network packet loss, latency spikes, and routing hops in Linux traditionally requires toggling between separate utilities like ping, traceroute, and mtr. The Trippy command Linux utility (invoked as trip) unifies these diagnostics into an interactive, visual terminal dashboard. Written in Rust, Trippy provides real-time hop analysis, multiple tracing protocols, round-trip time (RTT) histogram distributions, and geo-IP mapping directly inside your terminal.
What Is the Trippy (trip) Command in Linux?
Trippy operates as an interactive network diagnostic tool. While standard traceroute sends a single probe sequence and exits, Trippy continuously pulses network targets across intermediate routers. It maps every intermediate gateway, measures min/max/average latencies, calculates packet loss percentages per hop, and displays dynamic packet distributions using Unicode sparklines and bar graphs.
How to Install Trippy on Linux
Trippy is widely packaged across Linux distributions and can be installed via package managers, pre-compiled binaries, or Cargo.
Installing on Arch Linux
On Arch Linux, Trippy is available directly in the official extra repositories:
sudo pacman -S trippy
Installing on Debian, Ubuntu, and Linux Mint
Download the latest official .deb package release from the GitHub repository and install it using APT:
# Download latest release architecture package
curl -LO https://github.com/fujiapple852/trippy/releases/latest/download/trippy-x86_64-unknown-linux-musl.tar.gz
tar -xzf trippy-*.tar.gz
sudo install trip /usr/local/bin/
Installing via Cargo (Rust Package Manager)
If you maintain a Rust toolchain, compile and install Trippy with Cargo:
cargo install trippy
Granting Raw Socket Capabilities
Because network tracing tools send low-level ICMP and raw IP packets, running network utilities on Linux often requires root privileges. Rather than running Trippy with sudo every time, you can grant the binary raw network packet capabilities using setcap:
sudo setcap 'cap_net_raw+p' $(which trip)
This allows your standard unprivileged user account to trace routes seamlessly.
Running Your First Interactive Network Trace
To trace a route to an external host, provide the destination hostname or IP address to the trip command:
trip digitash.com
This launches an interactive curses-style terminal interface. The screen is organised into modular columns:
- Hop: The gateway number along the path.
- Host: The resolved hostname or IP address of the routing node.
- Loss%: Current packet loss percentage for that specific hop.
- Sent / Recv: Total diagnostic packets dispatched and received.
- Last / Avg / Best / Wrst: Real-time latency measurements in milliseconds.
- StdDev: Jitter and variance across ping responses.
Navigating the Trippy TUI Dashboard
While Trippy is actively tracing, you can manipulate the view using interactive keyboard controls:
- Up / Down Arrow (or j / k): Move the selection cursor to focus on a specific network hop.
- Left / Right Arrow (or h / l): Cycle between detailed view tabs, including the packet distribution histogram and hop charts.
- p: Pause or resume active probing.
- r: Reset all collected probe counters and restart statistics from zero.
- F: Toggle DNS hostname resolution on or off to inspect raw IP addresses.
- q: Quit the application cleanly.
Tracing with Different Network Protocols
Corporate firewalls and cloud providers often drop traditional ICMP echo requests while permitting standard web traffic. Trippy allows you to switch transport protocols and target ports dynamically using the -p flag:
# Trace using UDP probes
trip -p udp 1.1.1.1
# Trace using TCP SYN packets on web port 443
trip -p tcp -P 443 google.com
# Trace using ICMP (default protocol)
trip -p icmp digitash.com
Exporting Non-Interactive Reports
If you need to archive network diagnostic data for IT tickets or automated network monitoring scripts, Trippy can output static text or JSON reports without opening the interactive UI:
# Generate a 10-probe text summary report
trip --mode stream -c 10 8.8.8.8
# Export machine-readable JSON output
trip --mode json -c 15 1.1.1.1 > network_report.json