Voraussetzungen
- Raspberry Pi mit Raspberry Pi OS (Lite empfohlen)
- Öffentlich erreichbarer Port (Portfreigabe im Router nötig, z. B. 51820/UDP)
- DuckDNS-Domain (kostenlos)
- Geräte: Smartphone (Android/iOS) und Laptop (Windows/Linux/macOS)
DuckDNS einrichten
- Auf https://www.duckdns.org anmelden
- Domain anlegen, z. B.:
meinserver.duckdns.org
- Token notieren – wird für Updates gebraucht
DuckDNS-Update auf dem Raspberry Pi installieren
sudo apt update
sudo apt install curl -y
mkdir -p ~/duckdns
cd ~/duckdns
Update-Skript anlegen:
echo "echo url=\"https://www.duckdns.org/update?domains=meinserver&token=DEINTOKEN&ip=\" | curl -k -o ~/duckdns/duck.log -K -" > duck.sh
chmod 700 duck.sh
Cronjob für automatische Updates alle 5 Minuten:
(crontab -l ; echo "*/5 * * * * ~/duckdns/duck.sh >/dev/null 2>&1") | crontab -
Jetzt zeigt meinserver.duckdns.org
immer auf deine aktuelle IP.
WireGuard installieren
sudo apt install wireguard -y
Schlüsselpaare erstellen
wg genkey | tee server_private.key | wg pubkey > server_public.key
wg genkey | tee client_private.key | wg pubkey > client_public.key
server_private.key
bleibt auf dem Raspberry Piclient_private.key
gehört auf Smartphone/Laptop
Serverkonfiguration anlegen
Datei /etc/wireguard/vpn-meinserver.conf
:
[Interface]
Address = 10.0.0.1/24
ListenPort = 51820
PrivateKey = <Server-PrivateKey>
[Peer]
PublicKey = <Client-PublicKey>
AllowedIPs = 10.0.0.2/32
WireGuard starten und aktivieren
sudo systemctl enable wg-quick@vpn-meinserver
sudo systemctl start wg-quick@vpn-meinserver
Client-Konfiguration für Laptop & Smartphone
Datei laptop-meinserver.conf
/ smartphone-meinserver.conf
:
[Interface]
Address = 10.0.0.2/24
PrivateKey = <Client-PrivateKey>
DNS = 1.1.1.1
[Peer]
PublicKey = <Server-PublicKey>
Endpoint = meinserver.duckdns.org:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25
Clients einrichten
- Windows/macOS: WireGuard-App → „Add Tunnel“ → Konfigurationsdatei importieren
- Linux:
sudo cp laptop-meinserver.conf /etc/wireguard/ sudo wg-quick up laptop-meinserver sudo systemctl enable wg-quick@laptop-meinserver
- Android/iOS: WireGuard-App → Tunnel importieren → Datei auswählen oder QR-Code
Portweiterleitung für WireGuard-VPN auf Raspberry Pi
Vorarbeit auf dem Raspberry Pi
- Stelle sicher, dass WireGuard läuft und du in der Config z. B. Port 51820/UDP definiert hast:
[Interface] Address = 10.0.0.1/24 ListenPort = 51820 PrivateKey = <Server-PrivateKey>
- Raspberry Pi sollte eine statische IP im Heimnetz haben, z. B.
192.168.178.50
.
Am besten direkt im Router festlegen: „Diesem Gerät immer die gleiche IP zuweisen“.
Vodafone Station
- Weboberfläche öffnen:
http://192.168.0.1
- Internet → Port-Forwarding
- „Neuen Port freigeben“ klicken
- Eingeben:
- Protokoll: UDP
- Externer Port: 51820
- Interne IP: 192.168.178.50 (Raspberry Pi)
- Interner Port: 51820
- Speichern und Router ggf. neu starten
Vodafone EasyBox
- Weboberfläche:
http://192.168.2.1
- Erweitert → NAT → Portweiterleitung
- Eintrag hinzufügen:
- Name:
WireGuard-VPN
- Protokoll: UDP
- Öffentlicher Port: 51820
- Private IP: 192.168.178.50
- Privater Port: 51820
- Name:
- Speichern
Telekom Speedport
- Weboberfläche:
http://speedport.ip
- Internet → Portfreigaben → Geräte und Anwendungen
- Raspberry Pi auswählen
- Neue Portfreigabe:
- Anwendung: Benutzerdefiniert
- Protokoll: UDP
- Port: 51820
- Speichern
Allgemeiner Router (z. B. TP-Link, ASUS, Netgear)
- Weboberfläche öffnen (meist
192.168.0.1
oder192.168.1.1
) - NAT → Port Forwarding oder Virtual Server
- Eintrag:
- Service Name:
WireGuard
- Protokoll: UDP
- Externer Port: 51820
- Interner Port: 51820
- Interne IP: IP des Raspberry Pi
- Service Name:
- Speichern
Test der Portweiterleitung
- Von außerhalb des Heimnetzes:
nc -zvu meinserver.duckdns.org 51820
Wenn „open“ zurückkommt, ist der Port erreichbar.
Sicherheits-Check
- Nur UDP 51820 öffnen, sonst nichts!
- Alle Dienste (Nextcloud, Jellyfin, Portainer) nicht direkt freigeben, nur über VPN erreichbar machen.
Firewall absichern
VPN-Port öffnen:
sudo apt install ufw -y
sudo ufw allow 51820/udp
sudo ufw enable
Testen
- VPN auf Smartphone/Laptop aktivieren
- Pi oder andere Geräte im Heimnetz anpingen:
ping 10.0.0.1
- Dienste wie Nextcloud oder Jellyfin nur im VPN erreichbar
Schreibe einen Kommentar