WireGuard-VPN mit Raspberry Pi und DuckDNS (ohne Fritz!Box)


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

  1. Auf https://www.duckdns.org anmelden
  2. Domain anlegen, z. B.: meinserver.duckdns.org
  3. 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 Pi
  • client_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

  1. Weboberfläche öffnen: http://192.168.0.1
  2. Internet → Port-Forwarding
  3. „Neuen Port freigeben“ klicken
  4. Eingeben:
    • Protokoll: UDP
    • Externer Port: 51820
    • Interne IP: 192.168.178.50 (Raspberry Pi)
    • Interner Port: 51820
  5. Speichern und Router ggf. neu starten

Vodafone EasyBox

  1. Weboberfläche: http://192.168.2.1
  2. Erweitert → NAT → Portweiterleitung
  3. Eintrag hinzufügen:
    • Name: WireGuard-VPN
    • Protokoll: UDP
    • Öffentlicher Port: 51820
    • Private IP: 192.168.178.50
    • Privater Port: 51820
  4. Speichern

Telekom Speedport

  1. Weboberfläche: http://speedport.ip
  2. Internet → Portfreigaben → Geräte und Anwendungen
  3. Raspberry Pi auswählen
  4. Neue Portfreigabe:
    • Anwendung: Benutzerdefiniert
    • Protokoll: UDP
    • Port: 51820
  5. Speichern

Allgemeiner Router (z. B. TP-Link, ASUS, Netgear)

  1. Weboberfläche öffnen (meist 192.168.0.1 oder 192.168.1.1)
  2. NAT → Port Forwarding oder Virtual Server
  3. Eintrag:
    • Service Name: WireGuard
    • Protokoll: UDP
    • Externer Port: 51820
    • Interner Port: 51820
    • Interne IP: IP des Raspberry Pi
  4. 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

Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert