Wireguard VPN
Veröffentlicht: 21.12.2025 | Aktualisiert: 09.04.2026
Ziel ist es mittels Wireguard einen (Home-)Server für bestimmte Applikationen wie z.B. HomeAssistant über ein Virtual Private Network (VPN) von einem öffentlichem Server aus erreichbar zu machen.
Server Setup
Um ein Wireguard VPN bereitzustellen nutzen wir “wg-easy”, ein Tool dass als Docker Container betrieben nicht nur einen Wireguard Server an sich sondern auch eine Web-UI dafür liefert und die Konfiguration vereinfacht.
Die compose.ymldafür sieht z.B. so aus:
services:
wg-easy:
image: ghcr.io/wg-easy/wg-easy:15
container_name: wg-easy
environment:
- WG_HOST=ÖFFENTLIHCE-IPv4-ADRESSE-DES-SERVERS
- WG_PORT=51820
- WG_DEFAULT_ADDRESS=10.8.0.x #oder ein anderer adressbereich
- WG_DEFAULT_DNS= #ja, mit absicht leer, damit die dns config der clients nicht überschrieben wird
- WG_ALLOWED_IPS=10.42.42.0/24,fdcc:ad94:bacf:61a3::/64 #zusätzlicher sicherheitsfaktor
- INSECURE=false
networks:
wg:
ipv4_address: 10.42.42.42
ipv6_address: fdcc:ad94:bacf:61a3::2a
volumes:
- ./config:/etc/wireguard # für die conifg
- /lib/modules:/lib/modules:ro # für hardwarebeschleunigte wireguard verschlüsselung
ports:
- "51820:51820/udp" #freigabe in der Firewall nicht vergessen!
- "51821:51821/tcp" #freigabe in der Firewall nicht vergessen!
restart: unless-stopped
cap_add:
- NET_ADMIN
- SYS_MODULE
sysctls:
- net.ipv4.ip_forward=1
- net.ipv4.conf.all.src_valid_mark=1
- net.ipv6.conf.all.disable_ipv6=0
- net.ipv6.conf.all.forwarding=1
- net.ipv6.conf.default.forwarding=1
networks:
wg:
driver: bridge
enable_ipv6: true
ipam:
driver: default
config:
- subnet: 10.42.42.0/24
- subnet: fdcc:ad94:bacf:61a3::/64