====== WireGuard-Server in Proxmox (Failover und weitere Clients) ====== [[:start|← Heimnetz-Übersicht]] · [[infrastruktur:netzwerk|Netzwerk]] · [[infrastruktur:openwrtone|Router openwrtone]] · [[infrastruktur:proxmox|Proxmox]] · [[infrastruktur:backup:start|Sicherungen]] Stand: **10.10.2026**. **Hinweis:** Auf dieser Seite stehen keine Schlüssel. Sie liegen nur auf den Geräten (''/etc/wireguard'' im Container, UCI auf dem Router). ===== Zweck ===== * **Ausfallsicherung:** Arcen hängt mit seinem gesamten Verkehr am WireGuard-Tunnel der FRITZ!Box. Hängt der WireGuard-Dienst der FRITZ!Box (so am 10.10.2026 nach einem Neustart), gibt es einen zweiten Weg über diesen Server. * **Weitere Systeme:** Handys, Laptops und andere Standorte können sich hier ebenfalls einwählen, ohne die FRITZ!Box anzufassen. ===== Aufbau ===== %%raw flowchart LR subgraph ARC["Arcen"] OW["openwrtone
fritzbox: 10.10.11.1
pve: 10.10.20.2"] end subgraph RAD["Raderbroich"] FB["FRITZ!Box 6591
192.168.192.1"] WG["LXC 105 wireguard
192.168.192.5
Tunnel 10.10.20.1"] LAN["LAN 192.168.192.0/24"] end OW <==>|"Tunnel 1: FRITZ!Box, UDP 55536"| FB OW <-.->|"Tunnel 2: Failover, UDP 51820 (Portfreigabe)"| WG FB --- LAN WG --- LAN FB --- NET(["Internet"])
^ Eigenschaft ^ Wert ^ | Container | **LXC 105 ''wireguard''** auf ''pve'', Debian 13, 1 Kern, 256 MB RAM, 4 GB, startet mit Proxmox (''onboot'') | | Adresse | ''192.168.192.5/24'', Gateway FRITZ!Box ''192.168.192.1'' – **außerhalb des DHCP-Bereichs der FRITZ!Box halten bzw. dort reservieren** | | WireGuard | Schnittstelle ''wg0'', Tunnelnetz **10.10.20.0/24**, Server ''10.10.20.1'', UDP **51820** | | Weiterleitung | IPv4-Forwarding an; ''nftables'': nur SSH (aus LAN und Tunneln) und UDP 51820 eingehend, NAT (Masquerade) über ''eth0'' für Tunnelnetz und Arcen | | Von außen erreichbar unter | ''p323kqke5o1kdla8.myfritz.net:51820'' – **setzt eine Portfreigabe in der FRITZ!Box voraus (siehe unten)** | | Zugang | SSH als ''root'' mit Schlüssel (Mac von Norbert) | Die Quelladressen von Arcen erscheinen im Raderbroich-LAN als ''192.168.192.5'' (NAT im Container). Dadurch braucht die FRITZ!Box keine statische Route. ===== Teilnehmer ===== ^ Name ^ Tunnel-IP ^ Netze hinter dem Teilnehmer ^ Bemerkung ^ | ''openwrtone-arcen'' | ''10.10.20.2'' | ''10.10.11.0/24'', ''10.10.12.0/24'' | Schnittstelle ''pve'' auf dem Router in Arcen | | (weitere Clients) | ab ''10.10.20.10'' | – | werden mit dem Hilfsskript angelegt | ===== Neuen Client anlegen ===== Im Container (''ssh root@192.168.192.5''): wg-peer-hinzufuegen NAME Das Skript vergibt die nächste freie Adresse, erzeugt Schlüssel und liefert die fertige Konfiguration samt QR-Code (für die WireGuard-App). Standardziele des Clients: Raderbroich-LAN ''192.168.192.0/24'' und das Tunnelnetz. Weitere Ziele als zweiter Parameter, z. B. ''"192.168.192.0/24, 10.10.11.0/24"''. Gegenstellen mit eigenem Schlüssel (Router): ''wg-peer-hinzufuegen NAME --pubkey PUBKEY --netze NETZ1,NETZ2''. Teilnehmer ansehen: ''wg show wg0''. ===== Portfreigabe in der FRITZ!Box (offen) ===== FRITZ!Box → Heimnetz → Netzwerk → Gerät ''wireguard'' (''192.168.192.5'') → **Portfreigaben → Neue Freigabe**: ^ Einstellung ^ Wert ^ | Anwendung | Andere Anwendung | | Protokoll | **UDP** | | Port an Gerät | 51820 bis 51820 | | Port extern gewünscht | 51820 | | IPv4 | ja (Arcen nutzt kein IPv6) | Ohne diese Freigabe funktioniert der Server nur aus dem LAN und **durch den vorhandenen Tunnel**, nicht als Ersatz. ===== Arcen: Anbindung und Failover ===== Auf dem Router openwrtone gibt es die Schnittstelle **''pve''** (WireGuard, Adresse ''10.10.20.2/32'', erlaubte Ziele ''0.0.0.0/0'' ohne automatische Routen). Stand 10.10.2026: * Tunnel steht, Handshake und Ping zum Server ''10.10.20.1'' getestet. Zugriff ins Raderbroich-LAN und ins Internet über den Server getestet. * Der Tunnel läuft vorerst mit dem Endpunkt ''192.168.192.5:51820'' **durch den Tunnel der FRITZ!Box** (Test). Als Ersatz taugt das erst, wenn der Endpunkt auf ''p323kqke5o1kdla8.myfritz.net:51820'' steht und die Portfreigabe besteht. * **Noch nicht aktiv:** das automatische Umschalten (Standardroute von ''fritzbox'' auf ''pve'', sobald der FRITZ!Box-Tunnel keinen Handshake mehr hat und der Server erreichbar ist). Wird nach der Portfreigabe gebaut und mit einem echten Ausfalltest geprüft. Grenzen: * Fällt die **FRITZ!Box komplett** aus (Strom, Kabelanschluss), hat auch Raderbroich kein Internet, dann nützt der Server nichts. * Verkehr von Raderbroich nach Arcen (z. B. HA Raderbroich → HA Arcen) läuft weiter über die FRITZ!Box. Bei einem Ausfall des FRITZ!Box-WireGuard bräuchte das Raderbroich-LAN eine Route auf ''192.168.192.5'' (für ''10.10.11.0/24''). Das ist nicht eingerichtet. ===== Sicherung ===== LXC 105 ist noch nicht in einer Sicherung. Konfiguration und Schlüssel liegen in ''/etc/wireguard'' im Container. Nach der Einrichtung ''vzdump 105'' ausführen und ''infrastruktur:backup:start'' ergänzen. ===== Nachtrag 10.10.2026 (Stand am Nachmittag) ===== * **Portfreigabe:** In der FRITZ!Box angelegt. Test von Arcen aus über ''p323kqke5o1kdla8.myfritz.net:51820'' (Weg über Landal direkt zur öffentlichen Adresse): **kein Handshake**. Im LAN von Raderbroich kommen auf UDP 51820 keine Pakete an. Die Freigabe wirkt also noch nicht (Protokoll, Port, Zielgerät oder Aktivierung in der FRITZ!Box prüfen). Das Umschalten wurde deshalb noch **nicht** gebaut. * **Weboberfläche:** Versuch mit wg-easy (Docker im unprivilegierten Container) gescheitert, die Datenbank-Migration hing. Zurückgebaut, der native WireGuard-Server (''wg-quick@wg0'') läuft wie zuvor. Docker ist im Container installiert und kann entfernt werden. Das Skript ''wg-peer-hinzufuegen'' bleibt die Bedienung. * **SSH auf den Container:** Aus Arcen (10.10.11.x) nicht möglich, weil der Container für die Arcen-Netze eine Rückroute über den Tunnel hat. Verwaltung über ''pve'' (''pct exec 105'') oder aus dem Raderbroich-LAN. ===== Nachtrag 10.10.2026, 12:20 Uhr: Portfreigabe wirkt, Stufe B getestet ===== **Dieser Nachtrag ersetzt die Aussagen weiter oben zum fehlenden Handshake.** * **FRITZ!Box-Freigabe:** Gerät ''PC-192-168-192-5'' (''192.168.192.5''), Freigabe „wireguard“, UDP, Port ''51820'' (IPv4), aktiv. Seitdem Handshake über ''p323kqke5o1kdla8.myfritz.net:51820'' (Server sieht die Landal-Adresse des Chalets als Absender). * **Endpunkt auf dem Arcen-Router:** ''pve'' zeigt auf den öffentlichen Namen, der Dienst ''tunnel-failover'' führt die IP nach (wie bei ''fritzbox''). * **Test Stufe B (12:15 bis 12:19):** FRITZ!Box-Tunnel (UDP 55536) blockiert → nach 38 s Stufe B, Internet und Raderbroich-LAN über den Server, öffentliche Adresse blieb die von Raderbroich; Block entfernt → nach ca. 60 s zurück in Stufe A. * **Rückroute im Container:** Für ''10.10.11.1'' gibt es eine Host-Route über die FRITZ!Box (''PostUp'' in ''wg0.conf''), weil sonst Antworten auf Verkehr, der über den FRITZ!Box-Weg aus Arcen kommt, in den falschen Tunnel liefen (Container war aus Arcen nicht erreichbar). * **Sicherung:** ''vzdump'' von LXC 105 auf ''pve'' (''/var/lib/vz/dump'') am 10.10.2026. * **Offen:** Weboberfläche (wg-easy im unprivilegierten Container gescheitert); Docker ist im Container noch installiert.