Proxmox Wireguard VPN tunnel

2022-10-19

Wireguard

WireGuard® is an extremely simple yet fast and modern VPN that utilizes state-of-the-art cryptography. It aims to be faster, simpler, leaner, and more useful than IPsec, while avoiding the massive headache. It intends to be considerably more performant than OpenVPN. WireGuard is designed as a general purpose VPN for running on embedded interfaces and super computers alike, fit for many different circumstances. Initially released for the Linux kernel, it is now cross-platform (Windows, macOS, BSD, iOS, Android) and widely deployable. It is currently under heavy development, but already it might be regarded as the most secure, easiest to use, and simplest VPN solution in the industry.

- https://www.wireguard.com/

Proxmox

Proxmox VE is a complete open-source platform for enterprise virtualisation. With the built-in web interface you can easily manage VMs and containers, software-defined storage and networking, high-availability clustering, and multiple out-of-the-box tools on a single solution.

- https://www.proxmox.com/en/

Instructions

There are many ways to install Wireguard using Proxmox. A while ago I installed headers on the Proxmox host and create a LXC container specifically for Wireguard but this setup was proving to be unreliable, I decided to look for other solutions. I ended up using PiVPN inside a VM, let me show you how I did it.

Creating a VM

I chose to use the Debian Linux distribution as I have some experience using it, you can find the ISO files here.

I am not going into full detail, you can find these instructions here.

Installing Wireguard

The simplest way to setup and manage a VPN, designed for Raspberry Pi™.

- https://www.pivpn.io/

PiVPN was originally created for Rasberry Pi but supports many systems nowadays.

PiVPN may be able run and install VPN Protocols on any other Debian or Ubuntu based distributions however we do not provide support for them.

- https://docs.pivpn.io/faq/

1
2
3
4
apt update
apt upgrade
apt install curl
curl -L https://install.pivpn.io | bash
1
2
3
4
5
6
7
8
9
10
-a,  add              Create a client conf profile"
-c,  clients          List any connected clients to the server"
-d,  debug            Start a debugging session if having trouble"
-l,  list             List all clients"
-qr, qrcode           Show the qrcode of a client for use with the mobile app"
-r,  remove           Remove a client"
-h,  help             Show this help dialog"
-u,  uninstall        Uninstall pivpn from your system!"
-up, update           Updates PiVPN Scripts"
-bk, backup           Backup VPN configs and user profiles"

Adding a new client

PiVPN makes the creation of new clients very easy, just run the pivpn add command and follow the wizard.

PiVPN creates a config files under the user directory.

You can also use the pivpn -qr command to generate a QR code for your client config which makes it very easy to add the VPN tunnel on mobile devices.

I hope these instructions are helpful. Do not hesitate to contact me or leave a comment below.

Created by Jeroen Druwé