Schwierigkeit: Leicht · Dauer: 10–20 Min · Ziel: WireGuard unter Linux via systemd zuverlässig beim Boot starten und sauber prüfen.
Kurzproblem und Zielbild
Viele WireGuard-Setups funktionieren nach manueller Aktivierung, starten aber nach einem Reboot nicht automatisch. Das führt zu Ausfällen bei Remote-Zugriffen oder Routing-Setups im Homelab.
Ziel in diesem Tutorial: Deine bestehende wg0.conf wird als systemd-Service eingebunden, automatisch gestartet und mit klaren Checks verifiziert.
Voraussetzungen
- Linux-Host (Debian/Ubuntu) mit installierten Paketen
wireguardundwireguard-tools - Funktionierende Konfiguration unter
/etc/wireguard/wg0.conf - Sudo-Rechte und Zugriff auf System-Logs
Schnellstart (funktionierende Basis)
sudo systemctl enable wg-quick@wg0.service
sudo systemctl daemon-reload
sudo systemctl start wg-quick@wg0.service
sudo systemctl status wg-quick@wg0.service --no-pager
Was macht das? Der Dienst wird im Autostart registriert, geladen und sofort gestartet. Danach siehst du direkt, ob wg0 sauber hochkommt.
Schritt-für-Schritt Umsetzung
1) Konfigurationsdatei prüfen
sudo ls -l /etc/wireguard/wg0.conf
sudo grep -E '^(\[Interface\]|Address|PrivateKey|ListenPort|\[Peer\]|PublicKey|AllowedIPs|Endpoint|PersistentKeepalive)' /etc/wireguard/wg0.conf
Erklärung: Stelle sicher, dass die Datei existiert und zentrale Felder gesetzt sind. Falsche Pfade oder Tippfehler sind die häufigste Ursache für Startprobleme.
2) Service im Autostart aktivieren
sudo systemctl enable wg-quick@wg0.service
sudo systemctl daemon-reload
Erklärung: enable erstellt die Boot-Verknüpfung. Mit daemon-reload stellst du sicher, dass systemd den aktuellen Stand nutzt.
3) Service starten und Zustand prüfen
sudo systemctl start wg-quick@wg0.service
sudo systemctl status wg-quick@wg0.service --no-pager
sudo wg show
ip a show wg0
Erklärung: Du prüfst sowohl Service-Status als auch Interface-/Peer-Status. So erkennst du, ob der Tunnel nur „läuft“ oder wirklich aktiv kommuniziert.
4) Reboot-Test (entscheidend)
sudo reboot
# nach dem Login
systemctl is-enabled wg-quick@wg0.service
systemctl status wg-quick@wg0.service --no-pager
wg show
Erklärung: Erst der Reboot-Test bestätigt den echten Autostart und vermeidet böse Überraschungen bei ungeplanten Neustarts.
Validierung / Checks
# 1) Service ist enabled
systemctl is-enabled wg-quick@wg0.service
# 2) Service läuft ohne Fehler
systemctl status wg-quick@wg0.service --no-pager
# 3) WireGuard Interface + Handshake
wg show
# 4) Letzte Logs
journalctl -u wg-quick@wg0 -n 120 --no-pager
Troubleshooting
Fehlerbild 1: „Unit wg-quick@wg0.service not found“
Ursache: Paket fehlt oder Service-Name passt nicht zur Config-Datei.
sudo apt update
sudo apt install -y wireguard wireguard-tools
ls /etc/wireguard/
# wenn Datei z. B. wg-homelab.conf heißt:
sudo systemctl enable wg-quick@wg-homelab.service
Fehlerbild 2: Service startet, aber kein Handshake
Ursache: Endpoint/Firewall/Port oder Routing passt nicht.
sudo wg show
sudo ss -lunpt | grep 51820
sudo journalctl -u wg-quick@wg0 -n 200 --no-pager
# ggf. UFW/iptables prüfen
Fazit
Mit wg-quick@wg0 im systemd-Autostart wird WireGuard im Homelab deutlich zuverlässiger betrieben – besonders bei Router-/Gateway-Szenarien oder Remote-Administration.
Nächster Schritt: ergänze ein kleines Monitoring (z. B. periodischer Check via Cron/Health-Script), damit Ausfälle früh erkannt werden.





