How To Create a Point-To-Point VPN with WireGuard on Ubuntu 16.04
This article was mostly copied from Digitalocean.
WireGuard is a modern, high-performance VPN designed to be easy to use while providing robust security.
One of the simplest topologies that WireGuard can use is a point-to-point connection. This establishes a secure link between two machines without mediation by a central server. This type of connection can also be used between more than two members to establish a mesh VPN topology, where each individual server can talk to its peers directly. Because each host is on equal footing, these two topologies are best suited for establishing secure messaging between servers as opposed to using a single server as a gateway to route traffic through.
Installing the Software
First, add the WireGuard PPA to the system to configure access to the project's packages:
$ sudo add-apt-repository ppa:wireguard/wireguard