Skip to content
/ vasily Public

Vasily is a network troubleshooting utility written in Go. It's a combination of ping, traceroute, and top that repeatedly pings multiple hosts and displays the results in an easy-to-read format

License

Notifications You must be signed in to change notification settings

pcekm/vasily

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Vasily

Go

Vasily is a network troubleshooting utility that's a combination of ping, traceroute, and top. It repeatedly pings multiple hosts and displays the results in an easy-to-read format.

Requirements

Vasily has been tested with Go 1.23 on recent versions of:

  • macOS (both unprivileged ICMP and raw sockets)
  • Linux (both unprivileged ICMP and raw sockets)
  • FreeBSD
  • OpenBSD

It will likely also work on other UNIX systems that Go supports, provided they have standard support for raw sockets. Windows is currently unsupported.

Building

You will need Go version 1.23 or higher:

git clone https://github.com/pcekm/vasily
cd vasily
./scripts/buildrelease.sh

By default, Linux and macOS use unprivileged ICMP. To force the use of raw sockets, build with the rawsock tag:

./scripts/buildrelease.sh -tags=rawsock

Installing

For Linux and macOS systems using unprivileged ICMP, build the program and copy it to where you want it (e.g. /usr/local/bin). (But see the caveats about unprivileged ICMP on Linux below.)

cp vasily /usr/local/bin

For other systems that use raw sockets, you will also need to adjust its ownership and permissions so that it runs setuid root.

cp vasily /usr/local/bin
chown 0:0 /usr/local/bin/vasily
chmod u+s /usr/local/bin/vasily

Linux unprivileged ICMP

Depending on your distribution, you may need to adjust a setting on your Linux machine to enable unprivileged pings. If it panics with listen error: permission denied, change net.ipv4.ping_group_range. Something like this, followed by a reboot should do it:

# As root:
printf 'net.ipv4.ping_group_range=0\t10000\n' >> /etc/sysctl.conf

See the ICMP manpage for more information.

If you can't make it work, you can also build with the rawsock tag and install it setuid root as described above.

About

Vasily is a network troubleshooting utility written in Go. It's a combination of ping, traceroute, and top that repeatedly pings multiple hosts and displays the results in an easy-to-read format

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published