WireGuard VPN Server Netzwerk

WireGuard VPN Server einrichten: Schnelles, modernes VPN für dein Heimnetzwerk

WireGuard VPN Server einrichten – schnell, modern, sicher. WireGuard ist das neue Standard-VPN-Protokoll, das klassische Lösungen wie OpenVPN in puncto Geschwindigkeit, Einfachheit und Sicherheit weit übertrifft. In diesem Guide richtest du deinen eigenen WireGuard-Server ein und verbindest deine Geräte damit.

Warum WireGuard statt OpenVPN?

WireGuard wurde von Grund auf neu entwickelt und überzeugt mit:

  • Einfachheit: Nur ~4.000 Zeilen Code (OpenVPN hat ~100.000+) – weniger Code bedeutet weniger Angriffsfläche
  • Geschwindigkeit: Deutlich höherer Durchsatz, niedrigere Latenz als OpenVPN oder IPsec
  • Moderne Kryptographie: ChaCha20, Curve25519, BLAKE2 – State-of-the-Art-Algorithmen
  • Im Linux-Kernel integriert: Ab Kernel 5.6 direkt integriert – keine Kernel-Module nötig
  • Einfache Konfiguration: Unkompliziertes Schlüsselpaar-System wie SSH

Voraussetzungen

Du brauchst:

  • Einen Linux-Server mit öffentlicher IP-Adresse (VPS oder Heimserver mit Port-Forwarding)
  • Einen offenen UDP-Port (Standard: 51820)
  • Linux-Kernel 5.6+ (auf modernen Systemen standardmäßig vorhanden)

WireGuard installieren

Server (Debian/Ubuntu)

sudo apt update && sudo apt install wireguard -y

Schlüsselpaare generieren

# Server-Schlüsselpaar
wg genkey | tee /etc/wireguard/server_private.key | wg pubkey > /etc/wireguard/server_public.key

# Client-Schlüsselpaar (für jeden Client wiederholen)
wg genkey | tee /etc/wireguard/client1_private.key | wg pubkey > /etc/wireguard/client1_public.key

# Schlüssel anzeigen
cat /etc/wireguard/server_private.key
cat /etc/wireguard/server_public.key
cat /etc/wireguard/client1_private.key
cat /etc/wireguard/client1_public.key

Schreibe alle vier Werte auf – du brauchst sie für die Konfigurationsdateien.

Server konfigurieren

Erstelle die Konfigurationsdatei /etc/wireguard/wg0.conf:

[Interface]
Address = 10.0.0.1/24
ListenPort = 51820
PrivateKey = SERVER_PRIVATE_KEY_HIER

# IP-Forwarding aktivieren
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

[Peer]
# Client 1
PublicKey = CLIENT1_PUBLIC_KEY_HIER
AllowedIPs = 10.0.0.2/32

Ersetze eth0 durch dein tatsächliches Netzwerk-Interface (ip route get 1.1.1.1 zeigt es dir).

IP-Forwarding aktivieren

echo "net.ipv4.ip_forward = 1" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

WireGuard starten

# Starten
sudo systemctl enable wg-quick@wg0
sudo systemctl start wg-quick@wg0

# Status prüfen
sudo wg show

Client konfigurieren

Erstelle auf dem Client-Gerät die Konfigurationsdatei wg0.conf:

[Interface]
PrivateKey = CLIENT1_PRIVATE_KEY_HIER
Address = 10.0.0.2/24
DNS = 1.1.1.1  # Optional: oder dein Pi-hole

[Peer]
PublicKey = SERVER_PUBLIC_KEY_HIER
Endpoint = DEINE_SERVER_IP:51820
AllowedIPs = 0.0.0.0/0  # Gesamten Traffic durch VPN leiten
PersistentKeepalive = 25

AllowedIPs: Mit 0.0.0.0/0 läuft der gesamte Internettraffic durch den VPN-Server. Für Split-Tunneling (nur Heimnetz-Traffic) nutze stattdessen 10.0.0.0/24.

Client verbinden

Linux

sudo wg-quick up wg0

Windows und macOS

Importiere die wg0.conf-Datei in die offizielle WireGuard-App (wireguard.com).

iOS und Android

Generiere einen QR-Code auf dem Server und scanne ihn mit der WireGuard-App:

sudo apt install qrencode
qrencode -t ansiutf8 < /etc/wireguard/client1.conf

WireGuard VPN Server einrichten: Fehlerbehebung und Optimierung

Verbindung kommt nicht zustande

Häufige Ursachen und Lösungen:

  • Falsche Schlüssel: Private Key des Clients muss mit dem Public Key übereinstimmen. Nochmals überprüfen
  • Firewall blockiert UDP 51820: Füge eine Regel hinzu: ufw allow 51820/udp
  • NAT/Portweiterleitung fehlt: Im Router muss UDP-Port 51820 an den WireGuard-Server weitergeleitet werden
  • AllowedIPs falsch: Stelle sicher, dass die Client-IP in der Server-Konfiguration unter AllowedIPs eingetragen ist

WireGuard-Status und Debugging

# Verbindungsstatus anzeigen (als root)
sudo wg show

# Logs anzeigen
sudo journalctl -u wg-quick@wg0 -f

# Verbindung testen
ping 10.0.0.1  # Server-IP im WireGuard-Netz

Mehrere Clients verwalten

Für jeden neuen Client erstellst du ein Schlüsselpaar und fügst den Public Key in die Server-Konfiguration ein:

# Neuen Client-Schlüssel generieren
wg genkey | tee client2_private.key | wg pubkey > client2_public.key

# In /etc/wireguard/wg0.conf ergänzen:
[Peer]
PublicKey = CLIENT2_PUBLIC_KEY
AllowedIPs = 10.0.0.3/32

Split-Tunneling: Nur bestimmter Traffic durch VPN

Statt allen Traffic durch WireGuard zu leiten (AllowedIPs = 0.0.0.0/0), kannst du nur den Traffic für dein Heimnetz tunneln:

AllowedIPs = 192.168.1.0/24, 10.0.0.0/24

Damit nutzt du WireGuard nur für den Zugriff auf dein Heimnetz, während dein normaler Internetzugang unverändert bleibt – schneller und ressourcenschonender.

WireGuard einfacher verwalten: wg-easy

Für eine komfortable Weboberfläche empfiehlt sich wg-easy – ein Docker-Container mit Admin-UI:

docker run -d \
  --name wg-easy \
  -e WG_HOST=deine.domain.de \
  -e PASSWORD=sicheresAdminPasswort \
  -v ~/.wg-easy:/etc/wireguard \
  -p 51820:51820/udp \
  -p 51821:51821/tcp \
  --cap-add NET_ADMIN \
  --cap-add SYS_MODULE \
  --sysctl="net.ipv4.conf.all.src_valid_mark=1" \
  --sysctl="net.ipv4.ip_forward=1" \
  --restart unless-stopped \
  ghcr.io/wg-easy/wg-easy

Öffne http://server-ip:51821 im Browser und verwalte alle VPN-Clients komfortabel per Weboberfläche.

Fazit: WireGuard für dein sicheres Heimnetz

WireGuard ist das modernste und performanteste VPN-Protokoll, das du heute einsetzen kannst. Die Konfiguration ist zwar manuell etwas aufwendiger als bei Tailscale, aber du behältst die volle Kontrolle ohne Abhängigkeit von externen Diensten. Wer eine einfachere Alternative ohne eigene Server-IP sucht, sollte Tailscale in Betracht ziehen – dazu gibt es ebenfalls einen Guide auf Lapalutschi.de.

Ähnliche Beiträge