HOME LAB · SELFHOSTING · NETZWERK

Schlagwort: autostart

  • WireGuard Autostart mit systemd auf Debian/Ubuntu

    WireGuard Autostart mit systemd auf Debian/Ubuntu

    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 wireguard und wireguard-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.

    Quellen