WireGuard-VPN für zu Hause: Mit wg-easy und Docker sicher ins Heimnetz
Von unterwegs auf NAS, Homeserver und Drucker zugreifen, ohne Ports für jeden Dienst zu öffnen: Wir richten WireGuard mit der Weboberfläche wg-easy in Docker ein und verbinden Handy und Laptop per QR-Code.

Ein VPN baut einen verschlüsselten Tunnel von deinem Handy oder Laptop nach Hause. Unterwegs bist du dann so im Heimnetz, als säßest du auf dem Sofa: Du erreichst NAS, Homeserver, Smart Home und 3D-Drucker, ohne einen einzigen dieser Dienste ins Internet zu stellen. WireGuard ist dafür das modernste und schnellste Protokoll. Mit wg-easy bekommt es eine Weboberfläche, in der du Geräte per Klick anlegst.
Du brauchst: einen Server im Heimnetz mit Docker (zum Beispiel einen Raspberry Pi, siehe https://spawnpunkt.de/magazin/raspberry-pi-als-heimserver-docker-po…), Zugriff auf deinen Router für eine Portfreigabe und eine öffentliche IPv4-Adresse oder DynDNS. Zeitaufwand: etwa 30 Minuten.
Vorab: Bist du von außen erreichbar?
Für ein VPN nach Hause muss dein Anschluss aus dem Internet erreichbar sein. Viele Anschlüsse über Kabel und Glasfaser haben inzwischen keine eigene öffentliche IPv4-Adresse mehr (DS-Lite oder CGNAT). Prüfe in deinem Router, welche IPv4-Adresse er vom Anbieter bekommt. Beginnt sie mit 100.64 bis 100.127 oder steht dort DS-Lite, funktioniert eine einfache Portfreigabe nicht. Dann kannst du beim Anbieter oft eine echte IPv4-Adresse anfragen oder einen Dienst wie Tailscale nutzen, der ohne Portfreigabe auskommt.
Weil sich deine öffentliche Adresse regelmäßig ändert, brauchst du außerdem einen DynDNS-Namen, etwa über MyFRITZ!, DuckDNS oder deinen Domain-Anbieter. Im Folgenden steht dafür vpn.example.org.
Schritt 1: Ordner und Compose-Datei anlegen
Melde dich per SSH auf deinem Server an und lege einen Ordner an:
mkdir -p ~/wg-easy && cd ~/wg-easy
nano docker-compose.ymlFüge diese Konfiguration ein. Sie folgt dem Beispiel aus der Dokumentation von wg-easy (Version 15):
services:
wg-easy:
image: ghcr.io/wg-easy/wg-easy:15
container_name: wg-easy
restart: unless-stopped
environment:
- INSECURE=true
volumes:
- ./daten:/etc/wireguard
- /lib/modules:/lib/modules:ro
ports:
- "51820:51820/udp"
- "51821:51821/tcp"
cap_add:
- NET_ADMIN
- SYS_MODULE
sysctls:
- net.ipv4.ip_forward=1
- net.ipv4.conf.all.src_valid_mark=1Port 51820/UDP ist der eigentliche VPN-Tunnel. Port 51821/TCP ist die Weboberfläche. INSECURE=true erlaubt die Oberfläche ohne HTTPS. Das ist nur in Ordnung, solange Port 51821 ausschließlich im Heimnetz erreichbar ist.
Schritt 2: Container starten
docker compose up -d
docker compose logs -fMit Strg+C verlässt du die Protokollanzeige, der Container läuft weiter. Öffne nun im Browser http://192.168.1.50:51821 (mit der IP deines Servers). Ein Einrichtungsassistent führt dich durch die ersten Schritte: Admin-Benutzer mit sicherem Passwort anlegen, danach als Host deinen DynDNS-Namen vpn.example.org und als Port 51820 eintragen.
Schritt 3: Portfreigabe im Router
Im Router leitest du UDP-Port 51820 an die IP-Adresse deines Servers weiter. Bei der FRITZ!Box geht das unter Internet → Freigaben → Portfreigaben → Gerät für Freigaben hinzufügen → Neue Freigabe → Portfreigabe, Protokoll UDP, Port 51820.
Gib dem Server im Router außerdem eine feste IP-Adresse, damit die Freigabe nach einem Neustart noch passt.

Schritt 4: Geräte verbinden
- Klicke in wg-easy auf Neuer Client und gib einen Namen ein, etwa „Handy“.
- Installiere die offizielle WireGuard-App aus dem App Store oder Google Play Store.
- Tippe in der App auf + und wähle QR-Code scannen. Scanne den QR-Code aus wg-easy.
- Für Laptops lädst du stattdessen die Konfigurationsdatei herunter und importierst sie in der WireGuard-App für Windows, macOS oder Linux.
Lege für jedes Gerät einen eigenen Client an. Verlierst du ein Handy, löschst du nur diesen einen Eintrag.
Schritt 5: Testen
Schalte am Handy das WLAN aus, damit du wirklich über das Mobilfunknetz gehst, und aktiviere den Tunnel in der App. Öffne dann im Browser eine Adresse aus deinem Heimnetz, zum Beispiel die Oberfläche deines NAS. In wg-easy siehst du, wann der Client zuletzt Daten übertragen hat.
Klappt es nicht, prüfe der Reihe nach: Stimmt der DynDNS-Name (nslookup vpn.example.org)? Ist die Portfreigabe für UDP eingerichtet? Hat dein Anschluss eine öffentliche IPv4-Adresse?
Updates
wg-easy aktualisierst du wie jeden Container. Die Version 15 in der Compose-Datei bekommt dabei automatisch kleinere Updates, aber keine großen Versionssprünge mit geänderter Konfiguration:
cd ~/wg-easy
docker compose pull
docker compose up -d- Ein VPN bringt dich ins Heimnetz, ohne einzelne Dienste ins Internet zu stellen
- Zuerst prüfen: öffentliche IPv4-Adresse oder DS-Lite/CGNAT?
- wg-easy per Docker Compose starten, nur UDP 51820 im Router freigeben
- Die Weboberfläche bleibt im Heimnetz
- Ein Client pro Gerät, verbinden per QR-Code
- Eine FRITZ!Box mit aktuellem FRITZ!OS kann WireGuard auch selbst
Läuft dein VPN? Zeig dein Homelab in der Community oder frag nach, wenn der Tunnel nicht zustande kommt.
- WireGuard – wireguard.com/
- wg-easy Dokumentation – wg-easy.github.io/wg-easy/latest/
- AVM: WireGuard-VPN in der FRITZ!Box – avm.de/service/vpn/
Kommentare
Noch keine Kommentare. Was meinst du dazu?
Mitreden? Melde dich an, um zu kommentieren.