Heiko Zimmermann
SAP-Berater, System Engineer und Entwickler.

Weblog

23 February 2019, 11:38

Ich habe bei edis.at seit 2013 einen kleinen Raspberry Pi Model B Rev 2 als VPN-Server.

Bisher läuft OpenVPN darauf. Allerdings, durch die schwache Hardware, wenig performant. Da liegt es nahe, dass ich mir WireGuard als Alternative ansehe. Da WireGuard als Linux-Kernelmodul läuft gibt es unter Linux einen Performance-Schub. Das gilt entsprechend nicht für wireguard-go Implementierungen. Diese soll man unter Linux auch dringen vermeiden.

Ich habe einmal für meine Geräte etwas verglichen. Mein MacOS zu OpenBSD (beide wireguard-go) ist mit WireGuard langsamer, als mit OpenVPN (AES-NI mit nur AES-128-CBC). Mein Pine64 mit Ambian (Kernelmodul) zu OpenBSD (wireguard-go) ist schneller mit WireGuard, als mit OpenVPN. Mein iOS (APP, kein Kernelmodul) zu OpenBSD (wireguard-go) ist mit OpenVPN (AES-NI) schneller, als mit WireGuard. Dafür gewinnt WireGuard beim Verbindungsaufbau um Längen und kann problemlos VPN-On-Demand. Es lohnt sich selbst zu testen.

Der übliche Weg am Raspberry Pi ist: "deb http://deb.debian.org/debian/ unstable main" einzubinden und WireGuard normal zu installieren.

Leider macht mir da Debian einen Strich durch die Rechnung. Denn bei wg bekomme ich "segmentation fault". Die Ursache ist, dass mein kleiner Pi nur eine "ARMv6"-CPU besitzt und Debian Binär-Pakete für "ARMv7a" liefert.

Zur Lösung kompiliere ich WireGuard aus der Source selbst:

sudo apt install libmnl-dev build-essential git raspberrypi-kernel-headers qrencode
git clone https://git.zx2c4.com/WireGuard
cd WireGuard/src
make
sudo make install
sudo modinfo wireguard
sudo modprobe wireguard

Danach konnte ich WireGuard wie gewohnt benutzen

Nun zum Ergebnis. Mit OpenVPN vom Pine64 (Armbian) zum Raspberry Pi Model B Rev 2 (Raspbian) erreichte ich im Durchschnitt 8500 kbit/s. Mit WireGurad erreichte ich im Durchschnitt 21000 kbit/s. Ich bin beeindruckt.

Abschließend sei noch ausdrücklich erwähnt, dass WireGuard zwar vielversprechend ist, sich dennoch in der Entwicklung befindet und experimentell ist. Hierzu einige Überlegungen vom VPN-Anbieter Perfect-Privacy.

PS: qrencode ist nicht nowendig, nur angenehmer, um die Konfiguration in der iPhone-App einzulesen:
qrencode -t ansiutf8 < mobile.conf