Ein eigenes VPN klingt kompliziert? Mit WireGuard ist es das nicht mehr. Das moderne VPN-Protokoll ist schlank, extrem schnell und in wenigen Minuten eingerichtet. In dieser Anleitung zeigen wir dir, wie du ein WireGuard VPN unter Linux einrichtest – vom Schlüsselpaar über die Server-Konfiguration bis zum ersten Client.
Egal ob du ein WireGuard VPN für den sicheren Fernzugriff auf dein Heimnetz, für verschlüsselte Verbindungen im offenen WLAN oder als schlanke Alternative zu OpenVPN nutzen willst – das Prinzip bleibt gleich. Wir gehen die Einrichtung Schritt für Schritt durch und schauen anschließend auf Client-Konfiguration, Sicherheit, Performance und typische Stolperfallen, damit dein Tunnel dauerhaft stabil läuft.
- Warum WireGuard?
- Schritt 1: WireGuard installieren
- Schritt 2: Schlüsselpaar erzeugen
- Schritt 3: Server konfigurieren
- Schritt 4: IP-Weiterleitung aktivieren
- Schritt 5: Tunnel starten und aktivieren
- Firewall-Port freigeben
- WireGuard im Vergleich zu OpenVPN und IPsec
- Den Client einrichten und Split Tunneling nutzen
- Sicherheit und Performance optimieren
- Häufige Fragen
- Wie füge ich weitere Clients hinzu?
- Warum baut der Tunnel keine Verbindung auf?
- Ist WireGuard sicher genug für sensible Daten?
- Fazit
Warum WireGuard?
WireGuard ist deutlich einfacher konfiguriert als klassische Lösungen wie OpenVPN, dabei schneller und mit modernster Verschlüsselung. Es ist seit Jahren fester Bestandteil des Linux-Kernels. Ideal, um von unterwegs sicher auf dein Heimnetz oder deinen Server zuzugreifen.
Schritt 1: WireGuard installieren
sudo apt update
sudo apt install -y wireguardSchritt 2: Schlüsselpaar erzeugen
WireGuard arbeitet mit einem privaten und einem öffentlichen Schlüssel. Erzeuge sie für den Server:
wg genkey | sudo tee /etc/wireguard/privatekey | wg pubkey | sudo tee /etc/wireguard/publickeySchritt 3: Server konfigurieren
Lege die Konfigurationsdatei /etc/wireguard/wg0.conf an. Sie definiert die Server-Adresse im VPN, den Port und den ersten Client als „Peer“:
[Interface]
Address = 10.0.0.1/24
ListenPort = 51820
PrivateKey = DEIN_SERVER_PRIVATE_KEY
[Peer]
PublicKey = CLIENT_PUBLIC_KEY
AllowedIPs = 10.0.0.2/32Schritt 4: IP-Weiterleitung aktivieren
Damit der Server Datenverkehr weiterleiten darf, aktivierst du IP-Forwarding dauerhaft:
echo "net.ipv4.ip_forward=1" | sudo tee /etc/sysctl.d/99-wireguard.conf
sudo sysctl -p /etc/sysctl.d/99-wireguard.confSchritt 5: Tunnel starten und aktivieren
Starte die Verbindung mit wg-quick und aktiviere den Autostart über systemd:
sudo wg-quick up wg0
sudo systemctl enable wg-quick@wg0Den Status des Tunnels prüfst du jederzeit mit sudo wg show.
Firewall-Port freigeben
Nicht vergessen: Der UDP-Port 51820 muss in der Firewall offen sein. Mit UFW geht das schnell:
sudo ufw allow 51820/udpWireGuard im Vergleich zu OpenVPN und IPsec
Warum überhaupt WireGuard und nicht das altbekannte OpenVPN? Der größte Unterschied liegt in der Schlankheit: WireGuard besteht aus wenigen tausend Zeilen Code, während OpenVPN und IPsec über hunderttausende Zeilen mitbringen. Weniger Code bedeutet eine kleinere Angriffsfläche und einfachere Prüfbarkeit. Dazu kommt die deutlich höhere Geschwindigkeit, weil WireGuard direkt im Kernel arbeitet und moderne Kryptografie (Curve25519, ChaCha20, Poly1305) fest verdrahtet nutzt.
| Merkmal | WireGuard | OpenVPN |
|---|---|---|
| Protokoll | UDP | UDP oder TCP |
| Geschwindigkeit | Sehr hoch | Mittel |
| Konfiguration | Wenige Zeilen | Umfangreich |
| Verschlüsselung | Fest (modern) | Wählbar |
| Reconnect | Nahtlos (Roaming) | Langsamer |
Für die meisten Selfhosting-Szenarien ist WireGuard die bessere Wahl. Nur wenn du zwingend TCP auf Port 443 tunneln musst, um restriktive Firewalls zu umgehen, spielt OpenVPN seine Stärke aus.
Den Client einrichten und Split Tunneling nutzen
Auf der Client-Seite erzeugst du analog zum Server ein Schlüsselpaar und legst eine eigene Konfigurationsdatei an. Entscheidend ist der Wert AllowedIPs: Trägst du 0.0.0.0/0, ::/0 ein, läuft dein gesamter Datenverkehr durch den Tunnel (Full Tunnel) – ideal im öffentlichen WLAN. Gibst du dagegen nur dein Heimnetz wie 10.0.0.0/24, 192.168.1.0/24 an, wird nur dieser Verkehr getunnelt (Split Tunnel), während normales Surfen direkt läuft.
Steht der Server hinter einem NAT oder wechselt die IP, hilft PersistentKeepalive = 25, damit die Verbindung nicht einschläft. Den öffentlichen Server-Schlüssel und die Endpoint-Adresse trägst du im [Peer]-Block des Clients ein.
- Full Tunnel:
AllowedIPs = 0.0.0.0/0, ::/0– maximaler Schutz unterwegs - Split Tunnel: nur interne Netze angeben – spart Bandbreite
- PersistentKeepalive: hält NAT-Mappings offen, wichtig hinter Routern
- Endpoint: öffentliche IP oder DynDNS-Domain plus
:51820
Sicherheit und Performance optimieren
WireGuard ist von Haus aus sicher, ein paar Best Practices erhöhen die Robustheit aber deutlich. Setze die Dateirechte der privaten Schlüssel restriktiv mit sudo chmod 600 /etc/wireguard/privatekey, damit kein anderer Nutzer sie lesen kann. Für zusätzlichen Schutz kannst du pro Peer einen Preshared Key über wg genpsk erzeugen und als PresharedKey hinterlegen – das schützt zusätzlich gegen zukünftige Quantenangriffe.
Bei der Performance lohnt ein Blick auf die MTU: Kommt es zu Verbindungsabbrüchen bei großen Paketen, hilft oft ein niedrigerer Wert wie MTU = 1420 im [Interface]-Block. Den aktuellen Status inklusive letztem Handshake und übertragenem Volumen zeigt dir sudo wg show jederzeit an.
Soll der gesamte Client-Verkehr über den Server ins Internet geleitet werden, brauchst du auf dem Server zusätzlich eine NAT-Regel, die die Pakete maskiert – etwa über iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE. Praktisch lässt sich das direkt in der wg0.conf über die Zeilen PostUp und PostDown hinterlegen, sodass die Regel automatisch mit dem Tunnel kommt und wieder verschwindet. Achte außerdem darauf, im Client einen erreichbaren DNS-Server zu setzen, damit die Namensauflösung im Full-Tunnel-Betrieb nicht ins Leere läuft.
Häufige Fragen
Wie füge ich weitere Clients hinzu?
Erzeuge für jeden Client ein eigenes Schlüsselpaar und ergänze in der wg0.conf des Servers einen weiteren [Peer]-Block mit dessen öffentlichem Schlüssel und einer eindeutigen AllowedIPs-Adresse (z. B. 10.0.0.3/32). Danach lädst du die Konfiguration mit sudo wg syncconf wg0 <(wg-quick strip wg0) neu, ohne den Tunnel zu trennen.
Warum baut der Tunnel keine Verbindung auf?
In den meisten Fällen ist der UDP-Port nicht freigegeben oder es fehlt eine Portweiterleitung im Router. Prüfe die Firewall, kontrolliere mit sudo wg show, ob ein Handshake zustande kommt, und stelle sicher, dass die öffentlichen Schlüssel auf beiden Seiten korrekt vertauscht wurden.
Ist WireGuard sicher genug für sensible Daten?
Ja. WireGuard nutzt ausschließlich moderne, geprüfte Kryptografie und ist fester Bestandteil des Linux-Kernels. In Kombination mit restriktiven Dateirechten und optionalem Preshared Key eignet es sich problemlos für den Zugriff auf sensible Dienste im Heimnetz.
Fazit
WireGuard bringt dir ein schnelles, sicheres VPN mit erstaunlich wenig Konfiguration: Schlüssel erzeugen, wg0.conf anlegen, Tunnel starten – fertig. Für jeden weiteren Client ergänzt du einfach einen weiteren [Peer]-Block. Ein VPN ist ein zentraler Baustein für sicheres Selfhosting und ergänzt einen gehärteten SSH-Zugang ideal.

