WireGuard VPN Server einrichten: Sicherer Fernzugriff auf dein Heimnetzwerk
Schritt-für-Schritt Anleitung zur Installation und Konfiguration eines eigenen WireGuard VPN-Servers auf Debian 12, Ubuntu oder Raspberry Pi. Inklusive QR-Code Client-Einrichtung.
🎯 Was du in dieser Anleitung lernst
Hardware-Checkliste für dieses Tutorial
Empfohlene & getestete Hardware-Komponenten für die Umsetzung
GL.iNet GL-MT3000 (Beryl AX) Pocket WiFi 6 VPN-Router
Raspberry Pi 5 (4GB RAM)
SanDisk Extreme 64GB MicroSD
TP-Link USB 3.0 Gigabit Ethernet Adapter
- ▸1. Was ist WireGuard und warum ist es die beste Wahl?
- ▸2. Schritt 1: System aktualisieren und WireGuard installieren
- ▸3. Schritt 2: IPv4-Forwarding im Linux-Kernel aktivieren
- ▸4. Schritt 3: Kryptografische Schlüssel generieren
- ▸5. Schritt 4: Server-Konfiguration (wg0.conf) erstellen
- ▸6. Schritt 5: Server starten und als Autostart aktivieren
- ▸7. Schritt 6: Client-Profil erstellen & als QR-Code scannen
- ▸8. Fazit & Verifikation
1. Was ist WireGuard und warum ist es die beste Wahl?
WireGuard ist das modernste Open-Source VPN-Protokoll der Welt. Im Gegensatz zu alten, trägen Protokollen wie OpenVPN oder IPsec wurde WireGuard von Grund auf für maximale Geschwindigkeit, minimale Angriffsfläche und perfekten Roaming-Support (unterbrechungsfreier Wechsel zwischen WLAN und 5G) entwickelt.
🔒 Einsatzgebiet: Ob auf einem Raspberry Pi im Heimnetzwerk oder auf einem gemieteten VPS – mit WireGuard surfst du unterwegs in öffentlichen WLANs verschlüsselt und greifst sicher auf deine lokalen Geräte (NAS, Smart Home, Router) zu.
2. Schritt 1: System aktualisieren und WireGuard installieren
Auf modernen Debian 12 / Ubuntu 22.04 / 24.04 Systemen ist WireGuard direkt in den offiziellen Paketquellen enthalten:
sudo apt update && sudo apt upgrade -y
sudo apt install wireguard qrencode iptables -y
Das Werkzeug qrencode nutzen wir später, um Client-Profile direkt im Terminal als QR-Code für die WireGuard-App auf dem Smartphone anzuzeigen!
3. Schritt 2: IPv4-Forwarding im Linux-Kernel aktivieren
Damit der Server Datenpakete zwischen dem VPN-Tunnel und deinem Heimnetz bzw. dem Internet weiterleiten darf, aktivieren wir das IP-Forwarding:
sudo nano /etc/sysctl.d/99-wireguard.conf
Füge folgende Zeilen ein:
net.ipv4.ip_forward=1
net.ipv6.conf.all.forwarding=1
Speichere die Datei mit Strg+O, Enter und schließe sie mit Strg+X. Lade die Konfiguration neu:
sudo sysctl -p /etc/sysctl.d/99-wireguard.conf
4. Schritt 3: Kryptografische Schlüssel generieren
WireGuard nutzt asymmetrische Kryptografie. Sowohl der Server als auch jeder Client besitzen ein eigenes privates und öffentliches Schlüsselpaar:
# In das geschützte WireGuard-Verzeichnis wechseln
cd /etc/wireguard
umask 077
# Server-Schlüsselpaar erzeugen
wg genkey | tee server_private.key | wg pubkey > server_public.key
# Ersten Client-Schlüssel erzeugen (z.B. Smartphone)
wg genkey | tee client1_private.key | wg pubkey > client1_public.key
Prüfe deine erzeugten Server-Schlüssel:
cat server_private.key
cat server_public.key
5. Schritt 4: Server-Konfiguration (wg0.conf) erstellen
Ermittle zuerst den Namen deiner primären Netzwerkschnittstelle (z.B. eth0 oder ens3):
ip route show default
Erstelle nun die Konfigurationsdatei für das WireGuard-Interface:
sudo nano /etc/wireguard/wg0.conf
Füge folgendes Setup ein (ersetze <SERVER_PRIVATE_KEY> und <CLIENT1_PUBLIC_KEY> mit deinen echten Schlüsseln sowie eth0 mit deinem Interface):
[Interface]
Address = 10.10.0.1/24
ListenPort = 51820
PrivateKey = <SERVER_PRIVATE_KEY>
SaveConfig = false
# NAT-Weiterleitung beim Start aktivieren und beim Stoppen entfernen
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
# Client 1: Smartphone
[Peer]
PublicKey = <CLIENT1_PUBLIC_KEY>
AllowedIPs = 10.10.0.2/32
6. Schritt 5: Server starten und als Autostart aktivieren
Starte den WireGuard-Dienst:
sudo systemctl enable --now wg-quick@wg0
Prüfe den Live-Status des Interfaces:
sudo wg show
Du siehst nun dein Interface wg0 mit dem Port 51820 und deinem konfigurierten Peer!
7. Schritt 6: Client-Profil erstellen & als QR-Code scannen
Erstelle auf dem Server eine Profildatei für dein Smartphone:
nano /etc/wireguard/client1.conf
Inhalt:
[Interface]
PrivateKey = <CLIENT1_PRIVATE_KEY>
Address = 10.10.0.2/24
DNS = 1.1.1.1, 10.10.0.1
[Peer]
PublicKey = <SERVER_PUBLIC_KEY>
Endpoint = DEINE_OEFFENTLICHE_IP_ODER_DYNDNS:51820
AllowedIPs = 0.0.0.0/0, ::/0
PersistentKeepalive = 25
📲 Genialer Tipp: Zeige das Profil als scanbaren QR-Code direkt im Terminal an:
qrencode -t ansiutf8 < /etc/wireguard/client1.confÖffne die offizielle WireGuard App auf iOS oder Android, tippe auf
+→ QR-Code scannen und richte die Kamera auf dein Terminal. Die Verbindung steht sofort!
8. Fazit & Verifikation
Aktiviere den Schalter in der WireGuard-App. Rufe auf deinem Smartphone die Seite https://whatismyipaddress.com auf – wenn dort die IP-Adresse deines Servers angezeigt wird, läuft dein gesamter Datenverkehr bombensicher über deinen eigenen VPN-Tunnel!
Geschrieben von Christian Schaar
Autor & Gründer NetzBastionSpezialisiert auf Open-Source IT-Sicherheit, UniFi-Netzwerkarchitektur und sichere Self-Hosting-Infrastrukturen. Alle Anleitungen basieren auf echten Installationen und werden praxisnah verifiziert.
❓ Häufig gestellte Fragen (FAQ)
Q: Welcher Port muss im Router für WireGuard weitergeleitet werden?
Standardmäßig nutzt WireGuard den UDP-Port 51820. Richte in deiner FRITZ!Box oder deinem Router eine Portfreigabe für 'UDP 51820' an die lokale IP-Adresse deines WireGuard-Servers ein.
Q: Funktioniert WireGuard auch mit Dual-Stack Lite (DS-Lite) oder Glasfaser ohne öffentliche IPv4?
Bei reinem DS-Lite oder Carrier-Grade NAT (CGNAT) erreichst du deinen Heimserver über IPv4 nicht direkt. WireGuard unterstützt jedoch nativ IPv6! Alternativ kannst du für wenige Euro einen kleinen Cloud-VPS (z.B. bei netcup) als Relay betreiben.
Q: Warum ist WireGuard besser als OpenVPN oder IPsec?
WireGuard läuft direkt im Linux-Kernel, verwendet moderne kryptografische Primitiven (ChaCha20, Poly1305, Curve25519) und hat nur rund 4.000 Zeilen Code (im Vergleich zu 100.000+ bei OpenVPN). Das sorgt für drastisch höhere Durchsatzraten und minimalen Akkuverbrauch auf Smartphones.