October 18, 2022
ubuntu - linux - vpn - wireguard - localized
2 minutes

Using Ubuntu as a Client with WireGuard

WireGuard is a communication protocol and free and open-source software that implements encrypted virtual private networks, and was designed with the goals of ease of use, high speed performance, and low attack surface.

Install WireGuard

To connect to your AlgoVPN using WireGuard from Ubuntu, make sure your system is up-to-date then install WireGuard:

# Update your system:
sudo apt update && sudo apt upgrade

# If the file /var/run/reboot-required exists then reboot:
[ -e /var/run/reboot-required ] && sudo reboot

# Install WireGuard:
sudo apt install wireguard openresolv

For installation on other Linux distributions, see the Installation page on the WireGuard site.

Locate the Config File

The Algo-generated config files for WireGuard are named configs/<ip_address>/wireguard/<username>.conf on the system where you ran ./algo. One file was generated for each of the users you added to config.cfg. Each WireGuard client you connect to your AlgoVPN must use a different config file. Choose one of these files and copy it to your Linux client.

Configure WireGuard

Finally, install the config file on your client as /etc/wireguard/wg0.conf and start WireGuard:

# Install the config file to the WireGuard configuration directory on your
# Linux client:
sudo install -o root -g root -m 600 <username>.conf /etc/wireguard/wg0.conf

# Start the WireGuard VPN:
sudo systemctl start wg-quick@wg0

# Check that it started properly:
sudo systemctl status wg-quick@wg0

# Verify the connection to the AlgoVPN:
sudo wg

# See that your client is using the IP address of your AlgoVPN:
curl ipv4.icanhazip.com

# Optionally configure the connection to come up at boot time:
sudo systemctl enable wg-quick@wg0

If your Linux distribution does not use systemd you can bring up WireGuard with sudo wg-quick up wg0.

Using a DNS Search Domain

As of the v1.0.20200510 release of wireguard-tools WireGuard supports setting a DNS search domain. In your wg0.conf file a non-numeric entry on the DNS line will be used as a search domain. For example this:

DNS =  172.27.153.31, fd00::b:991f, mydomain.com

will cause your /etc/resolv.conf to contain:

search mydomain.com
nameserver 172.27.153.31
nameserver fd00::b:991f

Start and Stop Wireguard easily

  • Start command:
wg-quick up wg0
  • Stop command:
wg-quick down wg0

Change config file

  • Stop VPN if it's running
wg-quick down wg0
  • Change config file
sudo install -o root -g root -m 600 <username>.conf /etc/wireguard/wg0.conf