Kategorien
Bits & Freiheit

VPN selbst hosten – Mit WireGuard zur vollen Kontrolle über deine Verbindung

In einer Welt, in der deine Daten wertvoller als Plutonium sind und Konzerne dich am liebsten bis aufs letzte Cookie auswerten würden, wächst bei vielen der Wunsch nach etwas… sagen wir mal: digitaler Selbstbestimmung. Also ein bisschen Privatsphäre, ein Hauch Kontrolle über das eigene Online-Leben – du weißt schon, Dinge, die eigentlich selbstverständlich sein sollten.

Kommerzielle VPN-Anbieter werfen sich da natürlich heldenhaft in den Ring. Sie versprechen dir Anonymität, Schutz vor neugierigen Blicken und den Zugang zu allem, was Netflix dir sonst vorenthält. Klingt erstmal wie das digitale Rundum-sorglos-Paket. Aber Hand aufs Herz: Weißt du wirklich, was mit deinen Daten passiert, sobald sie durch deren Server rauschen?

Und dann wären da noch die ganz besonderen Exemplare: Die kostenlosen VPNs mit fancy Namen und „100 % anonym – unlimited – free for life!!!“ Versprechen. Spoiler: Wenn ein Dienst nichts kostet, bist meist du das Produkt.

Viele dieser VPNs kommen aus Ländern, wo Datenschutz eher als urbaner Mythos gehandelt wird – allen voran: China. Und das ist kein Gelaber. Die App SuperVPN hatte laut Sicherheitsforschern gleich mehrfach schwerwiegende Sicherheitslücken und soll Daten über nicht gesicherte Server verschoben haben. Hola VPN wurde erwischt, wie sie die Bandbreite ihrer Nutzer verkauft und in ein Botnetz eingespeist haben – ja, wirklich. Und TurboVPN, ebenfalls mit Verbindungen nach China, wurde wegen massiver Datensammelei kritisiert, trotz angeblicher „No-Log“-Politik.

Kleiner Funfact: Einige dieser Anbieter hatten in der Vergangenheit nicht mal eine gültige Datenschutzerklärung – aber hey, Hauptsache die App-Icons glänzen schön bunt im App Store.

Aber hier kommt der Boss-Move: Du hostest dein VPN einfach selbst. Ja, genau. Kein Abo-Wahnsinn, keine plötzlich verschwundenen Funktionen, keine AGB-Überraschung à la „Jetzt verkaufen wir deine Seele – äh, Daten – doch an Werbepartner“. Stattdessen: Dein Server, deine Regeln. Keine Abos, kein Bullshit.

In diesem Beitrag zeige ich dir Schritt für Schritt, wie du dir dein eigenes VPN mit WireGuard aufbaust – dem Protokoll, das nicht nur schnell und sicher ist, sondern auch so schlank, dass es fast schon Keto lebt. Und zwar auf einem Raspberry Pi 5, den ich dafür selbst nutze. Alternativ schnappen wir uns einen vServer – für alle, die daheim lieber keine Ports öffnen oder einfach mehr Bandbreite wollen, weil 4K-Streaming durch einen Strohhalm so schon hart nervt.

Du denkst jetzt: „SSH, Ports, Peers – Hilfe, Bahnhof!“ Kein Stress. Ich erklär das alles so, dass du keine Informatik-Diplome brauchst, sondern einfach loslegen kannst. Am Ende hast du dein eigenes VPN am Start – schützt dich in unsicheren WLANs und greifst von unterwegs aufs Heimnetz zu, wie ein digitaler Ninja. Ob Nextcloud, NAS, Drucker oder dein Smart-Home-Gedöns – du erreichst alles sicher, egal ob du in Berlin, Bangkok oder in der Bahn hockst und dort versehentlich mal Netz hast.

Und ja, ich weiß, was du jetzt denkst: „Aber sind wirklich alle VPN-Anbieter Schurken, die in dunklen Kellern sitzen und Schindluder mit deinen Daten treiben?“ Nein! Zum Glück gibt’s Ausnahmen. Mullvad zum Beispiel. Kein Logging, keine E-Mail-Pflicht, Zahlung per Bargeld – klingt fast schon zu gut, um legal zu sein, ist es aber. Oder ProtonVPN, die Macher hinter Proton Mail – sitzt in der Schweiz (also guter Datenschutz), setzt auf Open Source und hat mit „Secure Core“ ein nettes Feature am Start.

Trotzdem gilt: Vertrauen bleibt Vertrauenssache. Wenn du wirklich auf Nummer sicher gehen willst, baust du dein VPN selbst. Dann weißt du, was abgeht – und das ist fast so cool wie GTA6. Also… wenn es jemals erscheint. Vielleicht. Irgendwann. Hoffentlich.

Ach, wo wir gerade bei Alternativen sind…

Reicht nicht auch die Fritz!Box?

Jetzt fragt sich vielleicht der ein oder andere: „Kann ich nicht einfach die Fritz!Box nehmen? Die unterstützt doch auch WireGuard.“ Ja, das kannst du – aber wie immer hängt es davon ab, was du willst.

Kurz gesagt: Wenn du einfach nur mal schnell sicher auf dein Heimnetz willst – nimm die Fritz!Box.

Wenn du volle Kontrolle und Flexibilität willst – lies jetzt weiter.

WireGuard auf dem Raspberry Pi einrichten

Ich zeige dir jetzt Schritt für Schritt, wie du WireGuard auf deinem Raspberry Pi installierst und konfigurierst. Keine Sorge, auch wenn das anfangs nach viel aussieht, mit ein bisschen Geduld kriegen wir das sauber hin.

Voraussetzungen Bevor wir anfangen, solltest du folgende Dinge bereithalten:

  • Einen Raspberry Pi 5 (oder auch Raspberry Pi 4, das funktioniert ebenfalls).
  • Eine frische Installation von Raspberry Pi OS (Lite), damit du keine unnötigen Ressourcen verschwendest.
  • Einen SSH-Zugang zu deinem Pi oder alternativ Tastatur und Monitor.
  • Eine statische öffentliche IP-Adresse oder einen DynDNS-Dienst, damit du von unterwegs auf deinen Heimanschluss kommst.
  • In deiner Fritz!Box musst du den UDP-Port 51820 auf den Pi weiterleiten (dazu kommen wir gleich noch).

1. Raspberry Pi aktualisieren

Als Erstes loggst du dich per SSH auf deinem Raspberry Pi ein und sorgst dafür, dass dein System aktuell ist.

sudo apt update && sudo apt upgrade -y

Dieser Befehl aktualisiert alle installierten Pakete und sorgt dafür, dass du mit einer sicheren und stabilen Basis arbeitest.

2. WireGuard installieren

WireGuard ist in den offiziellen Debian/Ubuntu-Repositories enthalten. Du installierst es ganz einfach mit:

sudo apt install wireguard -y

Um zu überprüfen, ob die Installation erfolgreich war, kannst du folgendes eingeben:

wg --version

Wenn WireGuard korrekt installiert ist, zeigt dir dieser Befehl die Versionsnummer an.

3. Schlüsselpaare erstellen

WireGuard arbeitet ähnlich wie SSH mit Public/Private-Key-Paaren. Diese Schlüssel dienen der Authentifizierung zwischen Server und Client. Auf dem Server (also deinem Pi) erstellst du die Schlüssel mit:

wg genkey | tee privatekey | wg pubkey > publickey

Dieser Befehl erzeugt zwei Dateien: privatekey und publickey.

Der privatekey bleibt auf dem Server und wird niemals weitergegeben. Der publickey wird später an deine Clients verteilt.

4. Server-Konfigurationsdatei anlegen

Jetzt erstellen wir die Konfigurationsdatei für WireGuard auf dem Server.

Dazu öffnest du die Datei mit:

sudo nano /etc/wireguard/wg0.conf

Und fügst folgenden Inhalt ein:

[Interface]
PrivateKey = DEIN_PRIVATEKEY
Address = 10.0.0.1/24
ListenPort = 51820
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

Anstelle von DEIN_PRIVATEKEY trägst du den Inhalt deiner privatekey Datei ein.

Dazu gibst du im Terminal ein:

cat privatekey

Den Wert kopierst du und fügst ihn exakt dort ein.

5. IP-Forwarding aktivieren

Damit dein Server den Verkehr zwischen VPN und Internet weiterleiten kann, musst du IP-Forwarding aktivieren. Dazu öffnest du:

sudo nano /etc/sysctl.conf

Suche die Zeile:

#net.ipv4.ip_forward=1

Entferne das Kommentarzeichen #, speichere die Datei und aktiviere die Änderung mit:

sudo sysctl -p

6. WireGuard starten und dauerhaft aktivieren

Nun startest du WireGuard und sorgst dafür, dass es beim Booten automatisch geladen wird:

sudo systemctl enable wg-quick@wg0
sudo systemctl start wg-quick@wg0

Wenn du alles richtig gemacht hast, läuft dein VPN-Server jetzt.

7. Einen Client einrichten (Smartphone, Laptop & Co.)

Ein VPN-Server allein bringt dir natürlich noch nichts, wenn du dich nicht auch von außen verbinden kannst. Jetzt kümmern wir uns darum, deine Endgeräte (also z. B. dein Smartphone oder deinen Laptop) als Clients einzurichten.

a) Schlüssel für den Client erzeugen

Zuerst brauchen wir für jeden Client ebenfalls ein eigenes Schlüsselpaar. Du kannst das entweder direkt auf dem Raspberry Pi erstellen oder auf dem jeweiligen Gerät (wenn es z. B. auch ein Linux-Laptop ist). Ich zeige dir hier den Weg über den Raspberry Pi.

wg genkey | tee client_privatekey | wg pubkey > client_publickey

Jetzt hast du zwei Dateien: client_privatekey und client_publickey.

b) Client zum Server hinzufügen

Du musst dem Server mitteilen, dass er Verbindungen von diesem Client akzeptieren soll. Dazu öffnest du erneut die Server-Konfigurationsdatei:

sudo nano /etc/wireguard/wg0.conf

Und fügst am Ende folgenden Block ein:

[Peer]
PublicKey = CLIENT_PUBLICKEY
AllowedIPs = 10.0.0.2/32

Statt CLIENT_PUBLICKEY trägst du den Inhalt der Datei client_publickey ein. Wir geben dem Client hier die Adresse 10.0.0.2. Für jeden weiteren Client vergibst du einfach 10.0.0.3, 10.0.0.4 usw. Anschließend lädst du die geänderte Konfiguration neu:

sudo systemctl restart wg-quick@wg0

c) Client-Konfiguration anlegen

Jetzt erstellen wir die Konfigurationsdatei für den Client. Dazu brauchst du:

  • Den Client Private Key
  • Den Server Public Key
  • Die öffentliche IP (oder DynDNS-Adresse) deines Heimanschlusses
  • Den verwendeten Port (51820)

Erstelle eine Datei client.conf (oder direkt in einer App später), mit folgendem Inhalt:

[Interface]
PrivateKey = CLIENT_PRIVATEKEY
Address = 10.0.0.2/32
DNS = 1.1.1.1
[Peer]
PublicKey = SERVER_PUBLICKEY
Endpoint = deine.ddns-adresse.de:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25

CLIENT_PRIVATEKEY = Inhalt von client_privatekey SERVER_PUBLICKEY = Inhalt von publickey (vom Server) Die Zeile AllowedIPs = 0.0.0.0/0 bedeutet übrigens: Leite den gesamten Internetverkehr durch den Tunnel (Full Tunnel). Wenn du nur Zugriff aufs Heimnetz möchtest, aber nicht deinen gesamten Internetverkehr umleiten willst, nutzt du stattdessen:

AllowedIPs = 10.0.0.0/24

d) Client-App installieren

Wenn du das VPN auf deinem Smartphone nutzen willst, gehst du in den jeweiligen App-Store und suchst nach „WireGuard“. Die App ist kostenlos und wird direkt vom WireGuard-Projekt gepflegt. In der App kannst du bequem per QR-Code konfigurieren. Dazu generierst du auf dem Raspberry Pi einen QR-Code (vorausgesetzt, qrencode ist installiert):

sudo apt install qrencode
qrencode -t ansiutf8 < client.conf

Alternativ kopierst du die Konfiguration manuell in die App oder nutzt sie auf einem Laptop im WireGuard-Client. Ab jetzt solltest du dich erfolgreich von außen verbinden können!

WireGuard auf dem vServer einrichten

Vielleicht willst du dein VPN aber lieber auf einen vServer auslagern, wofür es realistische Gründe gibt. Wenn deine Internetleitung zu Hause eher an nostalgisches ISDN erinnert und der Upload schon beim Gedanken an größere Transfers einknickt, macht ein Server mit dickerer Anbindung einfach mehr Sinn. Auch wenn deine IP öfter wechselt, als du deine Socken sparst du dir mit einer festen IP auf dem vServer den ganzen DynDNS-Kram und das Gefrickel drumherum.

Dazu kommt: Auf dem Server läuft das Ding stabil durch, ohne dass du dir Gedanken über Stromausfälle, Router-Reboots oder Provider-Zickereien machen musst. Kurz gesagt: Mehr Geschwindigkeit, mehr Verlässlichkeit, weniger Kopfschmerzen. Und keine Sorge, das Setup ist nahezu identisch zum Raspberry Pi.

Installation Du mietest einen kleinen vServer (3-5 €/Monat) mit Debian oder Ubuntu und führst exakt dieselben Schritte wie oben beim Raspberry Pi durch.

Einziger Unterschied: Beim PostUp und PostDown musst du schauen, ob dein Interface eth0, ens3 oder ähnlich heißt. Du prüfst das so:

ip a

Und ersetzt eth0 entsprechend.

Nützliche Erweiterungen

Jetzt bist du schon ziemlich weit. Aber wo wir schon dabei sind, ein paar Schmankerl obendrauf können ja nicht schaden.

a) Pi-hole als DNS-Filter

Wenn du sowieso schon einen Raspberry Pi betreibst, könntest du noch Pi-hole installieren und in der WireGuard-Config als DNS eintragen (DNS = 10.0.0.1). Damit blockst du Werbung und Tracker direkt auf DNS-Ebene, sowohl daheim als auch mobil über dein VPN.

b) Split-Tunneling

Vielleicht willst du nur für bestimmte Seiten dein VPN nutzen (z. B. deutsches Netflix im Urlaub) und nicht den gesamten Verkehr. Dann trägst du im Client einfach z. B. ein:

AllowedIPs = 10.0.0.0/24, 93.184.216.34/32

(Das zweite wäre hier beispielhaft eine einzelne Ziel-IP.)

c) DynDNS einrichten

Falls du keine statische IP hast, hilft ein DynDNS-Dienst wie afraid.org, DuckDNS oder Fritz!Box-eigene DynDNS. Damit bleibt dein VPN auch erreichbar, wenn sich deine IP ändert.

Dann wären wir auch schon durch

Du siehst, ein eigenes VPN mit WireGuard aufsetzen ist keine Raketenwissenschaft und klappt locker auch ohne Informatik-Diplom. Du hast jetzt alles in der Hand, um deine digitale Freiheit selbst zu regeln. Und ganz ehrlich: Was ist cooler, als genau zu wissen, dass keiner ungefragt in deinen Daten rumschnüffelt?

Häufige Fehler & Troubleshooting

Auch wenn WireGuard grundsätzlich recht simpel ist, kann es beim ersten Mal natürlich haken. Daher hier die häufigsten Stolperfallen und wie du sie easy beseitigst.

1. Keine Verbindung möglich?

Prüfe, ob der WireGuard-Dienst läuft Auf dem Server:

sudo systemctl status wg-quick@wg0

Wenn da irgendwas rot oder „inactive“ steht, starte ihn neu:

sudo systemctl restart wg-quick@wg0

Firewall blockiert was?

Falls du ufw oder iptables nutzt, stell sicher, dass der Port 51820/UDP freigegeben ist:

sudo ufw allow 51820/udp

Portweiterleitung auf dem Router vergessen?

Wenn dein Server zu Hause steht, musst du im Router (Fritz!Box & Co.) den Port 51820/UDP an deinen Raspberry Pi weiterleiten.

2. Verbindung klappt, aber kein Internet?

IP-Forwarding aktiviert?

Manchmal vergisst man das:

sudo sysctl net.ipv4.ip_forward

Wenn 0, dann aktivieren:

sudo sysctl -w net.ipv4.ip_forward=1

Und dauerhaft setzen (in /etc/sysctl.conf):

net.ipv4.ip_forward=1

PostUp/PostDown Regeln richtig gesetzt?

Prüfe nochmal genau deine wg0.conf. Fehler wie falsches Interface (eth0, ens3 …) passieren schnell.

3. DynDNS-Adresse aktualisiert nicht?

Nutze ein DynDNS-Update-Tool wie ddclient oder die integrierte DynDNS-Funktion deiner Fritz!Box. Manchmal hilft einfach Geduld. DynDNS braucht ein paar Minuten, um sich zu aktualisieren.

4. WireGuard-App verbindet nicht?

QR-Code falsch gelesen?

Lösch die Konfig und importier sie neu. Uhrzeit synchron?

WireGuard ist empfindlich, wenn Server und Client unterschiedliche Uhrzeiten haben. Stelle sicher, dass beide Geräte NTP aktiviert haben.

timedatectl

VPN-Verbindung automatisch beim Start herstellen

Weil wir Menschen von Natur aus faul sind, willst du sicher nicht jedes Mal manuell die VPN-Verbindung aktivieren, oder?

Android In der WireGuard-App:

  • Tippe auf dein Tunnel-Profil
  • Aktiviere „Always-on VPN“ und „Block connections without VPN“ (optional für maximale Sicherheit) Jetzt verbindet sich dein Smartphone immer, sobald Internet da ist.

iOS (iPhone / iPad) Leider gibt es kein echtes Always-on wie bei Android. Aber:

  • In den WireGuard-Einstellungen „On-Demand“ aktivieren
  • Regeln setzen: „Wi-Fi is not connected“ oder „Wi-Fi is connected to untrusted network“ So verbindet sich das VPN automatisch, wenn du z. B. aus dem Heim-WLAN raus bist.

Linux (Desktop / Laptop) Du kannst das VPN beim Booten aktivieren:

sudo systemctl enable wg-quick@wg0

Oder manuell starten:

sudo systemctl start wg-quick@wg0

Windows In der WireGuard-App:

  • Profil öffnen → Rechtsklick → „Activate on boot“ setzen. Jetzt verbindet sich Windows automatisch.

 

Damit ist dein eigenes VPN souverän eingerichtet, du hast die Kontrolle – und mal ehrlich, fühlt sich doch besser an als irgendein Werbeversprechen auf Hochglanz.

Eine Antwort auf „VPN selbst hosten – Mit WireGuard zur vollen Kontrolle über deine Verbindung“

Schreibe einen Kommentar

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