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!