App Review: Trippy

Written by Donavan Schaper

May 22, 2023

During recent troubleshooting on Windows I felt I needed more from the CLI built in toolset and wondered if there are admins who feel the same?

At some point engineers find themselves working on network traces in order to resolve routine maintenance issues and while ping and tracert still go a long way, it can be good to have a more robust experience.

In walks Trippy!

Trippy combines the functionality of traceroute and ping and is designed to assist with the analysis of networking issues.

Getting Started: Installation

Before we begin, ensure you are able to execute PowerShell scripts which are remotely signed by using

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

Now that your session has the required permissions, we can proceed to install.

In this guide we are using scoop to perform the install. Read more about scoop scoopinstaller.github.io

kick off the installation using the following command:

irm get.scoop.sh | iex

Deploy using the following command:

scoop install https://trippy.cli.rs/scoop/trippy.json

You should see the process begin pulling the required binaries for the installation.

And there we have a completed installation:

Run the tool using below syntax:

Usage Examples

Basic usage with default parameters:

trip www.example.com

Trace using the udp (or tcp or icmp) protocol (also aliases --udp & --tcp):

trip www.example.com -p udp

Trace to multiple targets simultaneously (icmp protocol only):

trip www.example.com google.com crates.io

Trace with a minimum round time of 250ms and a grace period of 50ms:

trip www.example.com -i 250ms -g 50ms

Trace with a custom first and maximum time-to-live:

trip www.example.com --first-ttl 2 --max-ttl 10

Use custom destination port 443 for tcp tracing:

trip www.example.com -p tcp -P 443

Use custom source port 5000 for udp tracing:

trip www.example.com -p udp -S 5000

Use the dublin (or paris) ECMP routing strategy for udp with fixed source and destination ports:

trip www.example.com -p udp -R dublin -S 5000 -P 3500

Trace with a custom source address:

trip www.example.com -p tcp -A 127.0.0.1

Trace with a source address determined by the IPv4 address for interface en0:

trip www.example.com -p tcp -I en0

Trace using IPv6:

trip www.example.com -6

Generate a json (or csv, pretty, markdown) tracing report with 5 rounds of data:

trip www.example.com -m json -C 5

Perform DNS queries using the google DNS resolver (or cloudflare, system, resolv):

trip www.example.com -r google

Lookup AS information for all discovered IP addresses (not yet available for the system resolver):

trip www.example.com -r google -z true

Lookup and display short (or long or location or off) GeoIp information from a mmdb file:

trip www.example.com --geoip-mmdb-file GeoLite2-City.mmdb --tui-geoip-mode short

Customize the color theme:

trip www.example.com --tui-theme-colors bg-color=blue,text-color=ffff00

List all Tui items that can have a custom color theme:

trip --print-tui-theme-items

Customize the key bindings:

trip www.example.com --tui-key-bindings previous-hop=k,next-hop=j,quit=shift-q

List all Tui commands that can have a custom key binding:

trip --print-tui-binding-commands

Specify the location of the trippy config file:

trip www.example.com --config-file /path/to/trippy.toml

Generate bash shell completions (or fish, powershell, zsh, elvish):

trip --generate bash

Run in silent tracing mode and output compact trace logging with full span events:

trip www.example.com -m silent -v --log-format compact --log-span-events full

Good luck and happy Tripping!

ABOUT DONAVAN SCHAPER

CLOUD ARCHITECT

WordPress Appliance - Powered by TurnKey Linux