WireGuard is a modern and lightweight VPN (Virtual Private Network) protocol that aims to provide better security and performance than traditional VPN protocols such as OpenVPN and IPsec. It uses state-of-the-art cryptography and is designed to be fast, simple, and easy to use.
The “wg” command-line tool is used to manage the configuration of WireGuard interfaces. It allows you to create and configure WireGuard tunnels, add and remove peers (i.e., other devices or networks that you want to connect to), and set various parameters such as IP addresses, port numbers, and cryptographic keys.
With the “wg” tool, you can easily set up a secure and fast VPN connection between two or more devices or networks. For example, you can use WireGuard to connect your laptop or mobile device to your home network, so that you can access your files, printers, and other resources remotely, or to connect two remote networks together to share resources and collaborate more effectively.
The WireGuard protocol is supported by a wide range of platforms, including Linux, Windows, macOS, iOS, Android, and even some routers and NAS devices. Its simplicity and high performance make it an attractive option for anyone who needs to set up a VPN quickly and easily without sacrificing security or speed.
To get started with WireGuard, you can follow the Quick Start guide on the WireGuard website, which provides step-by-step instructions for setting up a basic WireGuard configuration on Linux.
If you encounter the below error while running the command wg:
wg: command not found
you may try installing the below package as per your choice of distribution:
Distribution | Command |
---|---|
Debian | apt-get install wireguard-tools |
Arch Linux | pacman -S wireguard-tools |
Kali Linux | apt-get install wireguard-tools |
OSX | brew install wireguard-tools |
wg Command Examples
1. Check status of currently active interfaces:
# wg
2. Generate a new private key:
# wg genkey
3. Generate a public key from a private key:
# wg pubkey path/to/public_key
4. Generate a public and private key:
# wg genkey | tee path/to/private_key | wg pubkey > path/to/public_key
5. Show the current configuration of a wireguard interface:
# wg showconf wg0