VPN mit Wireguard
Autor: Gerd Raudenbusch
Stand: 04.07.2026
Was ist Wireguard
Ein "Virtuelles privates Netzwerk" (VPN) ist ein privates "Netz im Netz". Mit WireGuard als freier Software lässt sich solch ein virtuelles privates Netzwerk mit verschlüsselten Verbindungen sehr einfach etablieren. WireGuard verwendet das verbindungslose UDP-Protokoll als Transportprotokoll; TCP wird nicht unterstützt. Innerhalb des VPNs können beliebige Protokolle transportiert werden.
Wireguard bietet aufgrund des Aufbaus einige Vorteile gegenüber anderen VPN-Protokollen:
- Eine einfache minimierte Codebasis, die damit auch leicht verständlich und überprüfbar ist
- Hohe Übertragungsgeschwindigkeiten, da für die Verschlüsselung und Übertragung kaum Ressourcen der Server und Clients belastet werden
- Eine plattformübergreifende Integration in verschiedene Betriebssysteme wie Windows, Linux, MacOS, Android, iOS und weitere
Wann es nützlich ist
Das Aufspannen von VPNs ist vor allem nützlich, wenn ein oder mehrere Endpunkte im öffentlichen Netz sind und vernetzt werden sollen, oder um einen vertrauenswürdigen Zugang zu ihnen zu gewinnen, indem man einen Wireguard-Server als "Haustür" aufstellt.
Wireguard installieren
sudo apt update
sudo apt install wireguard wireguard-toolsWireguard konfigurieren
Schlüsselerzeugung
umask 077
wg genkey | sudo tee /etc/wireguard/endpoint.key | wg pubkey | sudo tee /etc/wireguard/endpoint.pub
sudo cat /etc/wireguard/server.pubKonfigurationsdatei
- Jeder Server braucht einen privaten Schlüssel zum Betrieb
- Dem Server müssen die öffentlichen Schlüssel aller Clients bekannt sein
- Jeder Client authentifiziert sich mit seinem eigenen privaten Schlüssel
- Dem Client muss der öffentliche Schlüssel des Servers bekannt sein
Folgendes Beispiel konfiguriert einen Server und zwei Clients:
- Server:
/etc/wireguard/wg0.conf
[Interface]
Address = 10.44.0.1/24 # Dies ist eine selbst definierte VPN-Adresse
ListenPort = 51820 # Der Port ist beliebig wählbar
PrivateKey = /etc/wireguard/server.key # Privater Schlüssel für Server
[Peer]
PublicKey = /etc/wireguard/endpoint1.pub # Öffentlicher Schlüssel von Client 1
AllowedIPs = 10.44.0.2/32 # Selbst definierte VPN-Adresse von Client 1
[Peer]
PublicKey = /etc/wireguard/endpoint2.pub # Öffentlicher Schlüssel von Client 1
AllowedIPs = 10.44.0.3/32 # Selbst definierte VPN-Adresse von Client 1- Client 1:
/etc/wireguard/wg0.conf
[Interface]
Address = 10.44.0.2/24 # Selbst definierte VPN-Adresse für Client 1
PrivateKey = /etc/wireguard/endpoint1.key # Privater Schlüssel für Client 1
[Peer]
PublicKey = /etc/wireguard/server.pub # Öffentlicher Schlüssel des Servers
Endpoint = <IP des Servers>:51820 # Richtige IP-Adresse des Servers
AllowedIPs = 10.44.0.0/24 # Erlaubter IP-Bereich (hier 10.44.0.x)
PersistentKeepalive = 25 # Hält die Verbindung offen- Client 2:
/etc/wireguard/wg0.conf
[Interface]
Address = 10.44.0.3/24 # Selbst definierte VPN-Adresse für Client 2
PrivateKey = /etc/wireguard/endpoint2.key # Privater Schlüssel für Client 2
[Peer]
PublicKey = /etc/wireguard/server.pub # Öffentlicher Schlüssel des Servers
Endpoint = <IP des Servers>:51820 # Richtige IP-Adresse des Servers
AllowedIPs = 10.44.0.0/24 # Erlaubter IP-Bereich (hier 10.44.0.x)
PersistentKeepalive = 25 # Hält die Verbindung offenWireguard-Dienst
- Wireguard wird über
systemdkontrolliert. Mitsudo systemctl enable wg-quick@wg0wird der Dienst für die Konfigurationwg0.confeingerichtet. Der Befehlsudo systemctl start wg-quick@wg0startet den Dienst, mitsudo systemctl status wg-quick@wg0lässt sich der Status einsehen. - Mit
sudo wg showlässt sich der aktuelle Wireguard-Zustand einsehen - Anstatt auf dem Client
systemdzu verwenden, kann die Verbindung auch mitsudo wg-quick up wg0aufgebaut und mitsudo wg-quick down wg0geschlossen werden. Außerdem kann die VPN-Verbindung, wenn sie dort nicht schon von selbst gezeigt wird, in den Netzwerk-Manager importiert werden. - Wireguard-Verbindungen sind immer bidirektional, d.h. wenn der Client sich verbunden hat, können sie sich gegenseitig über ihre VPN-IP-Adressen erreichen.
Konfiguration als QR-Code
Manche Clients und Server können die Konfiguration per QR-Code
einlesen. Der QR-Code lässt sich mit dem Tool qrencode
leicht erzeugen:
sudo apt update -y && apt install -y qrencode
sudo qrencode -o ./qrcode.png < /etc/wireguard/wg0.conf