{"id":56,"date":"2026-06-11T16:25:33","date_gmt":"2026-06-11T16:25:33","guid":{"rendered":"https:\/\/shattered.io\/at\/2026\/06\/11\/wireguard-einrichten\/"},"modified":"2026-06-11T16:25:33","modified_gmt":"2026-06-11T16:25:33","slug":"wireguard-einrichten","status":"publish","type":"post","link":"https:\/\/shattered.io\/at\/2026\/06\/11\/wireguard-einrichten\/","title":{"rendered":"WireGuard einrichten: VPN-Server in 12 Schritten [2026]"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Ein eigener VPN-Server kostet weniger als ein Kaffee pro Monat und gibt dir die volle Kontrolle \u00fcber deinen verschl\u00fcsselten Datenverkehr. <strong>WireGuard einrichten<\/strong> dauert mit dieser Anleitung rund 30 Minuten, selbst wenn du noch nie einen Linux-Server administriert hast. WireGuard steckt seit Kernel 5.6 fest im Linux-Kern, besteht aus nur etwa 4.000 Zeilen Code und nutzt moderne Kryptografie wie Curve25519 und ChaCha20. Das Ergebnis: ein schlankes, schnelles und auditierbares VPN, das kommerzielle Dienste in puncto Geschwindigkeit deutlich abh\u00e4ngt.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In dieser Schritt-f\u00fcr-Schritt-Anleitung baust du einen kompletten WireGuard-Server auf Ubuntu 24.04 LTS auf, verbindest Desktop und Smartphone (per QR-Code) und h\u00e4rtest die Installation f\u00fcr den Dauerbetrieb. Du bekommst kopierfertige Konfigurationen, echte Ausgabebeispiele, eine Troubleshooting-Tabelle mit acht L\u00f6sungen und Profi-Tipps f\u00fcr mehrere Clients, Split-Tunneling und IPv6. Alle Befehle sind f\u00fcr \u00d6sterreich und den deutschsprachigen Raum getestet und auf dem Stand von 2026.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"was-ist-wireguard-und-warum-2026-die-erste-wahl\">Was ist WireGuard und warum 2026 die erste Wahl?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">WireGuard ist ein modernes VPN-Protokoll, das der Sicherheitsforscher Jason A. Donenfeld entwickelt hat. Sein Designziel war radikale Einfachheit: weniger Code bedeutet weniger Angriffsfl\u00e4che und eine kleinere Menge, die Sicherheitsforscher pr\u00fcfen m\u00fcssen. W\u00e4hrend OpenVPN auf \u00fcber 100.000 Zeilen Code kommt und klassische IPsec-Stacks noch deutlich umfangreicher sind, bringt es das WireGuard-Kernmodul auf rund 4.000 Zeilen. Diese Zahl stammt aus dem offiziellen WireGuard-Whitepaper und ist der wichtigste Grund f\u00fcr die hohe Vertrauensw\u00fcrdigkeit des Projekts.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Im M\u00e4rz 2020 wanderte WireGuard mit Linux 5.6 in die Mainline des Kernels. Seitdem l\u00e4uft das Protokoll direkt im Kernel-Space, was die hohe Geschwindigkeit und die niedrige Latenz erkl\u00e4rt. Linus Torvalds selbst bezeichnete den WireGuard-Code als ein Kunstwerk im Vergleich zu den Schrecken von OpenVPN und IPsec. Diese Einsch\u00e4tzung des Kernel-Erfinders trug ma\u00dfgeblich zur schnellen Verbreitung bei.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Kryptografisch setzt WireGuard auf eine feste Auswahl moderner Verfahren, ganz ohne die gef\u00e4hrliche Algorithmus-Vielfalt \u00e4lterer Protokolle. Der Schl\u00fcsselaustausch l\u00e4uft \u00fcber Curve25519 (Elliptische-Kurven-Diffie-Hellman), die Verschl\u00fcsselung \u00fcbernimmt ChaCha20, die Authentifizierung der Nachrichten erledigt Poly1305. F\u00fcr die Schl\u00fcsselableitung kommen BLAKE2s und HKDF zum Einsatz, f\u00fcr interne Hashtabellen SipHash24. Der gesamte Handshake basiert auf dem Noise-Protokoll-Framework. Diese Bausteine gelten 2026 als Stand der Technik und sind in der WireGuard-Spezifikation fest verdrahtet.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ein praktischer Vorteil: WireGuard verbindet sich nur \u00fcber UDP, standardm\u00e4\u00dfig auf Port 51820. Es gibt kein langes Aushandeln von Zertifikaten und keine komplexe Public-Key-Infrastruktur. Stattdessen tauschst du nur \u00f6ffentliche Schl\u00fcssel aus, \u00e4hnlich wie bei SSH. Mehr Hintergrund zu Verschl\u00fcsselung im Web findest du in unserer Erkl\u00e4rung zu <a href=\"\/at\/https-und-tls\/\">HTTPS und TLS<\/a>. Wer wissen will, wie sich Verschl\u00fcsselung gegen Quantencomputer wappnet, liest unseren Beitrag zur <a href=\"\/post-quantum-cryptography-2026\/\">Post-Quanten-Kryptografie<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"voraussetzungen-das-brauchst-du-bevor-du-wireguard-einrichten-kannst\">Voraussetzungen: Das brauchst du, bevor du WireGuard einrichten kannst<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Bevor du loslegst, brauchst du einen Linux-Server mit \u00f6ffentlicher IP-Adresse. F\u00fcr rund 4 bis 6 Euro pro Monat bekommst du bei Anbietern wie Hetzner, netcup oder einem \u00f6sterreichischen Hoster einen kleinen virtuellen Server (VPS). Dieser reicht f\u00fcr mehrere Nutzer locker aus, da WireGuard kaum Ressourcen verbraucht. Die folgende Tabelle fasst alle Voraussetzungen mit den getesteten Versionen zusammen.<\/p>\n\n\n\n<table class=\"wp-block-table\"><thead><tr><th>Komponente<\/th><th>Empfohlene Version (Stand 2026)<\/th><th>Zweck<\/th><\/tr><\/thead><tbody>\n<tr><td>Betriebssystem Server<\/td><td>Ubuntu 24.04 LTS (oder neuer) bzw. Debian 12<\/td><td>Stabile Basis mit Kernel-WireGuard<\/td><\/tr>\n<tr><td>Linux-Kernel<\/td><td>5.6 oder h\u00f6her (24.04 nutzt 6.8)<\/td><td>Enth\u00e4lt das WireGuard-Modul nativ<\/td><\/tr>\n<tr><td>wireguard-tools<\/td><td>1.0.20260223 (Stand Februar 2026)<\/td><td>Liefert die Befehle wg und wg-quick<\/td><\/tr>\n<tr><td>VPS-Ressourcen<\/td><td>1 vCPU, 1 GB RAM, 10 GB Disk<\/td><td>Reicht f\u00fcr 10+ gleichzeitige Clients<\/td><\/tr>\n<tr><td>Zugang<\/td><td>SSH mit root- oder sudo-Rechten<\/td><td>Administration des Servers<\/td><\/tr>\n<tr><td>\u00d6ffentliche IP<\/td><td>Statische IPv4 (optional IPv6)<\/td><td>Erreichbarkeit als VPN-Endpunkt<\/td><\/tr>\n<tr><td>Client<\/td><td>WireGuard-App f\u00fcr Windows, macOS, Linux, Android, iOS<\/td><td>Verbindung zum Server<\/td><\/tr>\n<\/tbody><\/table>\n\n\n\n<p class=\"wp-block-paragraph\">Auf der Client-Seite installierst du die offizielle WireGuard-App. F\u00fcr Android und iOS findest du sie kostenlos in Google Play und im App Store, f\u00fcr Windows und macOS gibt es Installer auf wireguard.com. Linux-Desktops nutzen dasselbe wg-quick-Werkzeug wie der Server. Grundlegende Kenntnisse im Umgang mit der Kommandozeile helfen dir, sind aber nicht zwingend n\u00f6tig: Du kannst die Befehle dieser Anleitung Zeile f\u00fcr Zeile kopieren.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wichtig: Halte die Zugangsdaten deines VPS und die sp\u00e4ter erzeugten privaten Schl\u00fcssel streng geheim. Ein privater WireGuard-Schl\u00fcssel ist wie ein Hauptschl\u00fcssel zu deinem Tunnel. Wie schnell gestohlene Zugangsdaten zum Problem werden, zeigen die F\u00e4lle in unserem Beitrag \u00fcber <a href=\"\/at\/datenlecks\/\">Datenlecks<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"wireguard-vs-openvpn-und-ipsec-der-technik-vergleich\">WireGuard vs. OpenVPN und IPsec: Der Technik-Vergleich<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Warum solltest du 2026 zu WireGuard greifen und nicht zum altbew\u00e4hrten OpenVPN? Die Antwort liegt in drei Bereichen: Geschwindigkeit, Codegr\u00f6\u00dfe und Konfigurationsaufwand. WireGuard arbeitet im Kernel-Space und verzichtet auf rechenintensive Aushandlungen. In unserem ausf\u00fchrlichen <a href=\"\/wireguard-vs-openvpn\/\">Vergleich WireGuard vs. OpenVPN<\/a> erreichte WireGuard 892 Mbit\/s gegen\u00fcber 222 Mbit\/s bei OpenVPN, also rund das Vierfache an Durchsatz.<\/p>\n\n\n\n<table class=\"wp-block-table\"><thead><tr><th>Merkmal<\/th><th>WireGuard<\/th><th>OpenVPN<\/th><th>IPsec\/IKEv2<\/th><\/tr><\/thead><tbody>\n<tr><td>Codegr\u00f6\u00dfe<\/td><td>~4.000 Zeilen<\/td><td>~100.000 Zeilen<\/td><td>Mehrere Hunderttausend Zeilen<\/td><\/tr>\n<tr><td>Transport<\/td><td>UDP (Port 51820)<\/td><td>UDP oder TCP<\/td><td>UDP (500, 4500)<\/td><\/tr>\n<tr><td>Verschl\u00fcsselung<\/td><td>ChaCha20-Poly1305<\/td><td>AES, viele Optionen<\/td><td>AES, viele Optionen<\/td><\/tr>\n<tr><td>Schl\u00fcsselaustausch<\/td><td>Curve25519 (Noise)<\/td><td>TLS, Zertifikate<\/td><td>IKE, Zertifikate<\/td><\/tr>\n<tr><td>Ort der Ausf\u00fchrung<\/td><td>Kernel-Space<\/td><td>User-Space<\/td><td>Kernel-Space<\/td><\/tr>\n<tr><td>Konfiguration<\/td><td>Sehr einfach (Textdatei)<\/td><td>Komplex (PKI)<\/td><td>Komplex<\/td><\/tr>\n<tr><td>Roaming (NAT\/WLAN-Wechsel)<\/td><td>Nahtlos<\/td><td>Verbindungsabbruch m\u00f6glich<\/td><td>Teilweise<\/td><\/tr>\n<\/tbody><\/table>\n\n\n\n<p class=\"wp-block-paragraph\">Der Tabelle entnimmst du den entscheidenden Punkt: WireGuard nutzt eine einzige, fest definierte Krypto-Suite. Diese Reduktion klingt nach einer Einschr\u00e4nkung, ist aber ein Sicherheitsgewinn. Bei OpenVPN und IPsec entstehen viele Schwachstellen durch falsch gew\u00e4hlte Algorithmen oder veraltete Cipher-Suites. WireGuard schlie\u00dft diese Fehlerquelle von vornherein aus. Gilt ein Verfahren irgendwann als unsicher, erscheint eine neue Protokollversion mit ausgetauschten Bausteinen, statt unz\u00e4hlige Konfigurationsoptionen offen zu halten.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ein weiterer Vorteil betrifft mobile Ger\u00e4te. Dank des Konzepts der Cryptokey-Routing-Tabelle und kurzer Handshakes \u00fcbersteht eine WireGuard-Verbindung den Wechsel zwischen WLAN und Mobilfunk fast unbemerkt. Dein Smartphone h\u00e4lt den Tunnel auch dann, wenn du das Netz wechselst. Bei OpenVPN brach die Verbindung in solchen Situationen h\u00e4ufig ab und musste neu aufgebaut werden.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"schritt-1-bis-3-server-vorbereiten-und-wireguard-installieren\">Schritt 1 bis 3: Server vorbereiten und WireGuard installieren<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Verbinde dich zun\u00e4chst per SSH mit deinem Server. Ersetze die Beispiel-IP durch die echte Adresse deines VPS. Danach bringst du das System auf den neuesten Stand, denn aktuelle Pakete schlie\u00dfen bekannte Sicherheitsl\u00fccken. Das ist der wichtigste erste Schritt, bevor du irgendeinen Dienst \u00f6ffentlich erreichbar machst.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Schritt 1: Per SSH auf dem Server anmelden\nssh root@203.0.113.10\n\n# Schritt 2: Paketquellen aktualisieren und System upgraden\nsudo apt update &amp;&amp; sudo apt upgrade -y\n\n# Schritt 3: WireGuard und die Werkzeuge installieren\nsudo apt install wireguard wireguard-tools qrencode -y<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Das Paket <strong>wireguard<\/strong> zieht das Kernel-Modul und alle Abh\u00e4ngigkeiten nach, <strong>wireguard-tools<\/strong> liefert die zentralen Befehle <code>wg<\/code> und <code>wg-quick<\/code>. Das Paket <strong>qrencode<\/strong> brauchst du sp\u00e4ter, um Smartphone-Clients per QR-Code einzurichten. Bei Ubuntu 24.04 ist das WireGuard-Modul bereits im Kernel enthalten, du musst also nichts kompilieren.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pr\u00fcfe nach der Installation, ob die Werkzeuge korrekt vorliegen. Der folgende Befehl zeigt die installierte Version an. Eine Ausgabe ohne Fehlermeldung best\u00e4tigt, dass alles bereit ist.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ wg --version\nwireguard-tools v1.0.20260223 - https:\/\/git.zx2c4.com\/wireguard-tools\/\n\n$ lsmod | grep wireguard\nwireguard             createsize  0\nip6_udp_tunnel         16384  1 wireguard\nudp_tunnel             32768  1 wireguard<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Falls <code>lsmod<\/code> keine Zeile mit wireguard ausgibt, l\u00e4dst du das Modul manuell mit <code>sudo modprobe wireguard<\/code>. Auf modernen Ubuntu- und Debian-Systemen geschieht das automatisch, sobald die erste WireGuard-Schnittstelle hochf\u00e4hrt. Damit ist die Grundinstallation abgeschlossen, und du wechselst in das Konfigurationsverzeichnis <code>\/etc\/wireguard<\/code>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"schritt-4-und-5-schluesselpaare-mit-curve25519-erzeugen\">Schritt 4 und 5: Schl\u00fcsselpaare mit Curve25519 erzeugen<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">WireGuard authentifiziert jeden Teilnehmer \u00fcber ein Schl\u00fcsselpaar aus privatem und \u00f6ffentlichem Schl\u00fcssel. Der private Schl\u00fcssel bleibt geheim auf dem jeweiligen Ger\u00e4t, der \u00f6ffentliche Schl\u00fcssel wandert zur Gegenstelle. Dieses Prinzip kennst du von SSH oder von digitalen Signaturen, die wir in unserem Beitrag zu <a href=\"\/at\/https-und-tls\/\">TLS und Zertifikaten<\/a> n\u00e4her beleuchten. Wechsle zuerst in das Konfigurationsverzeichnis und setze strenge Rechte.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Ins WireGuard-Verzeichnis wechseln\ncd \/etc\/wireguard\n\n# Restriktive Umask setzen, damit niemand sonst die Schl\u00fcssel lesen kann\numask 077\n\n# Schritt 4: Server-Schl\u00fcsselpaar erzeugen\nwg genkey | tee server_private.key | wg pubkey > server_public.key\n\n# Schritt 5: Client-Schl\u00fcsselpaar erzeugen\nwg genkey | tee client_private.key | wg pubkey > client_public.key<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Der Befehl <code>wg genkey<\/code> erzeugt einen zuf\u00e4lligen privaten Curve25519-Schl\u00fcssel. Die Pipe an <code>tee<\/code> speichert ihn in eine Datei und leitet ihn gleichzeitig an <code>wg pubkey<\/code> weiter, das daraus den passenden \u00f6ffentlichen Schl\u00fcssel berechnet. Die <code>umask 077<\/code> sorgt daf\u00fcr, dass nur der Eigent\u00fcmer (root) die Dateien lesen darf. Das ist entscheidend, denn ein offen lesbarer privater Schl\u00fcssel kompromittiert deinen gesamten Tunnel.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Lass dir die vier Schl\u00fcssel anzeigen und notiere sie. Du f\u00fcgst sie gleich in die Konfigurationsdateien ein. Achte penibel darauf, private und \u00f6ffentliche Schl\u00fcssel nicht zu verwechseln, denn das ist die h\u00e4ufigste Fehlerquelle beim ersten Aufbau.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ cat server_private.key\noK7m...gekuerzt...=  (privat, bleibt auf dem Server)\n\n$ cat server_public.key\nHIGr...gekuerzt...=  (oeffentlich, kommt in die Client-Config)\n\n$ cat client_public.key\nqm2T...gekuerzt...=  (oeffentlich, kommt in die Server-Config)<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"schritt-6-die-server-konfiguration-wg0-conf-erstellen\">Schritt 6: Die Server-Konfiguration wg0.conf erstellen<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Jetzt baust du die zentrale Konfigurationsdatei <code>\/etc\/wireguard\/wg0.conf<\/code>. Der Name wg0 bezeichnet die virtuelle Netzwerkschnittstelle. Du legst ein privates Tunnel-Subnetz fest (hier 10.8.0.0\/24), den Lauschport und die NAT-Regeln. \u00d6ffne die Datei mit einem Editor wie nano.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo nano \/etc\/wireguard\/wg0.conf<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Trage den folgenden Inhalt ein. Ersetze SERVER_PRIVATE_KEY durch den Inhalt von server_private.key und CLIENT_PUBLIC_KEY durch den Inhalt von client_public.key. Pr\u00fcfe mit <code>ip route list default<\/code>, wie deine \u00f6ffentliche Netzwerkschnittstelle hei\u00dft (oft eth0 oder ens3), und passe den Namen in den PostUp- und PostDown-Zeilen an.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>[Interface]\n# Privater Schluessel des Servers\nPrivateKey = SERVER_PRIVATE_KEY\n# Tunnel-IP des Servers im VPN-Subnetz\nAddress = 10.8.0.1\/24\n# UDP-Port, auf dem WireGuard lauscht\nListenPort = 51820\n\n# NAT-Regel beim Start setzen, beim Stopp entfernen\nPostUp   = iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE\nPostUp   = iptables -A FORWARD -i wg0 -j ACCEPT\nPostDown = iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE\nPostDown = iptables -D FORWARD -i wg0 -j ACCEPT\n\n[Peer]\n# Oeffentlicher Schluessel des Clients\nPublicKey = CLIENT_PUBLIC_KEY\n# Welche Tunnel-IP darf dieser Client nutzen\nAllowedIPs = 10.8.0.2\/32<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Der Abschnitt <strong>[Interface]<\/strong> beschreibt den Server selbst. <strong>Address<\/strong> vergibt ihm die VPN-interne IP 10.8.0.1. <strong>ListenPort<\/strong> legt den UDP-Port fest. Die <strong>PostUp<\/strong>-Zeilen werden ausgef\u00fchrt, sobald die Schnittstelle hochf\u00e4hrt: Die MASQUERADE-Regel ersetzt die Absenderadresse der Client-Pakete durch die Server-IP, damit Antworten den Weg zur\u00fcck durch den Tunnel finden. Die FORWARD-Regel erlaubt die Weiterleitung. <strong>PostDown<\/strong> r\u00e4umt diese Regeln beim Herunterfahren wieder auf.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Der Abschnitt <strong>[Peer]<\/strong> beschreibt den Client. <strong>AllowedIPs<\/strong> hat hier eine doppelte Bedeutung: Auf der Serverseite legt der Wert mit dem \/32-Suffix fest, dass genau diese eine Tunnel-IP zu diesem Client geh\u00f6rt. Das ist gleichzeitig eine Zugriffskontrolle, denn Pakete von anderen IPs lehnt der Server ab. Speichere die Datei mit Strg+O und verlasse nano mit Strg+X.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"schritt-7-ip-forwarding-und-nat-dauerhaft-aktivieren\">Schritt 7: IP-Forwarding und NAT dauerhaft aktivieren<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Damit dein Server Pakete zwischen dem Tunnel und dem Internet weiterleitet, musst du das IP-Forwarding im Kernel aktivieren. Standardm\u00e4\u00dfig ist es aus Sicherheitsgr\u00fcnden deaktiviert. Du schaltest es sowohl sofort als auch dauerhaft ein, damit die Einstellung einen Neustart \u00fcbersteht.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Sofort aktivieren (gilt bis zum naechsten Neustart)\nsudo sysctl -w net.ipv4.ip_forward=1\n\n# Dauerhaft aktivieren: eigene Konfigurationsdatei anlegen\necho \"net.ipv4.ip_forward=1\" | sudo tee \/etc\/sysctl.d\/99-wireguard.conf\necho \"net.ipv6.conf.all.forwarding=1\" | sudo tee -a \/etc\/sysctl.d\/99-wireguard.conf\n\n# Alle sysctl-Einstellungen neu einlesen\nsudo sysctl --system<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Die erste Zeile aktiviert das Forwarding sofort im laufenden Betrieb. Die zweite und dritte Zeile schreiben die Einstellung in eine eigene Datei unter <code>\/etc\/sysctl.d\/<\/code>. Diese Methode ist sauberer als das direkte Editieren der zentralen <code>\/etc\/sysctl.conf<\/code>, weil deine Anpassungen klar getrennt bleiben. Die letzte Zeile l\u00e4dt alle Einstellungen neu, sodass keine L\u00fccke entsteht.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Kontrolliere das Ergebnis mit dem folgenden Befehl. Eine Ausgabe von 1 best\u00e4tigt, dass die Weiterleitung aktiv ist. Ohne diesen Schritt baust du zwar eine Verbindung zum Server auf, kommst aber nicht ins Internet. Das ist eines der h\u00e4ufigsten Probleme, das wir weiter unten in der Fehlertabelle aufgreifen.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ sysctl net.ipv4.ip_forward\nnet.ipv4.ip_forward = 1<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"schritt-8-firewall-mit-ufw-konfigurieren-und-port-51820-oeffnen\">Schritt 8: Firewall mit UFW konfigurieren und Port 51820 \u00f6ffnen<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Ohne offenen Port erreicht dich kein Client. Du \u00f6ffnest den UDP-Port 51820 f\u00fcr WireGuard und beh\u00e4ltst gleichzeitig deinen SSH-Zugang. Die unkomplizierte Firewall UFW ist auf Ubuntu vorinstalliert und macht das Regelwerk \u00fcbersichtlich. Achte unbedingt darauf, zuerst SSH freizugeben, sonst sperrst du dich selbst aus.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Zuerst SSH erlauben, damit du dich nicht aussperrst\nsudo ufw allow OpenSSH\n\n# WireGuard-Port (UDP 51820) freigeben\nsudo ufw allow 51820\/udp\n\n# Firewall aktivieren\nsudo ufw enable\n\n# Status mit Regeln anzeigen\nsudo ufw status verbose<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Die erwartete Ausgabe listet beide Regeln auf. Falls du einen Cloud-Anbieter wie Hetzner oder AWS nutzt, pr\u00fcfe zus\u00e4tzlich dessen vorgelagerte Sicherheitsgruppe oder Cloud-Firewall im Webinterface. Diese blockiert UDP 51820 unter Umst\u00e4nden, bevor die Pakete \u00fcberhaupt deinen Server erreichen. Das ist eine h\u00e4ufige, schwer zu findende Stolperfalle.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ sudo ufw status verbose\nStatus: active\n\nTo                         Action      From\n--                         ------      ----\nOpenSSH                    ALLOW IN    Anywhere\n51820\/udp                  ALLOW IN    Anywhere\nOpenSSH (v6)               ALLOW IN    Anywhere (v6)\n51820\/udp (v6)             ALLOW IN    Anywhere (v6)<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"schritt-9-wireguard-dienst-starten-und-beim-boot-aktivieren\">Schritt 9: WireGuard-Dienst starten und beim Boot aktivieren<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Jetzt f\u00e4hrst du die WireGuard-Schnittstelle hoch. Das Werkzeug <code>wg-quick<\/code> liest deine wg0.conf, erzeugt die Schnittstelle, setzt die Routen und f\u00fchrt die PostUp-Regeln aus. Danach aktivierst du den passenden systemd-Dienst, damit WireGuard nach jedem Neustart automatisch startet.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Schnittstelle wg0 sofort starten\nsudo wg-quick up wg0\n\n# Dienst dauerhaft beim Systemstart aktivieren\nsudo systemctl enable wg-quick@wg0\n\n# Status der Schnittstelle pruefen\nsudo wg show<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Der Befehl <code>sudo wg show<\/code> ist dein wichtigstes Diagnosewerkzeug. Er zeigt die \u00f6ffentliche Schl\u00fcsselkennung, den Lauschport und alle konfigurierten Peers. Solange noch kein Client verbunden ist, fehlt die Zeile mit dem letzten Handshake. Das ist normal. Eine typische Ausgabe direkt nach dem Start sieht so aus:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ sudo wg show\ninterface: wg0\n  public key: HIGr...gekuerzt...=\n  private key: (hidden)\n  listening port: 51820\n\npeer: qm2T...gekuerzt...=\n  allowed ips: 10.8.0.2\/32<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Falls <code>wg-quick up wg0<\/code> mit einer Fehlermeldung abbricht, liegt meist ein Tippfehler in der wg0.conf vor. H\u00e4ufige Ursachen sind ein fehlerhaft kopierter Schl\u00fcssel oder ein falscher Schnittstellenname in der PostUp-Zeile. Mit <code>sudo wg-quick down wg0<\/code> f\u00e4hrst du die Schnittstelle wieder herunter, korrigierst die Datei und startest erneut.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"schritt-10-client-einrichten-fuer-desktop-und-smartphone\">Schritt 10: Client einrichten f\u00fcr Desktop und Smartphone<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Der Server l\u00e4uft, nun fehlt die Client-Konfiguration. Diese Datei kommt auf das Endger\u00e4t, also auf deinen Laptop oder dein Smartphone. Erstelle auf dem Server eine Datei <code>client.conf<\/code> mit dem folgenden Inhalt. Trage CLIENT_PRIVATE_KEY (aus client_private.key) und SERVER_PUBLIC_KEY (aus server_public.key) ein und ersetze die Beispiel-IP durch die \u00f6ffentliche Adresse deines Servers.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>[Interface]\n# Privater Schluessel des Clients\nPrivateKey = CLIENT_PRIVATE_KEY\n# Tunnel-IP des Clients\nAddress = 10.8.0.2\/24\n# DNS-Server, der ueber den Tunnel genutzt wird\nDNS = 1.1.1.1\n\n[Peer]\n# Oeffentlicher Schluessel des Servers\nPublicKey = SERVER_PUBLIC_KEY\n# Gesamter Verkehr durch den Tunnel (Full-Tunnel)\nAllowedIPs = 0.0.0.0\/0, ::\/0\n# Oeffentliche IP und Port des Servers\nEndpoint = 203.0.113.10:51820\n# Verbindung durch NAT aufrechterhalten\nPersistentKeepalive = 25<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Die Einstellung <strong>AllowedIPs = 0.0.0.0\/0, ::\/0<\/strong> auf der Client-Seite leitet den gesamten Datenverkehr (IPv4 und IPv6) durch den Tunnel. Das ist der klassische Full-Tunnel-Modus, mit dem du deine echte IP verbirgst und in \u00f6ffentlichen WLANs sicher surfst. <strong>PersistentKeepalive = 25<\/strong> sendet alle 25 Sekunden ein kleines Paket, damit NAT-Router und Firewalls die Verbindung nicht vorzeitig schlie\u00dfen. Das ist besonders f\u00fcr Ger\u00e4te hinter einem Heim-Router wichtig.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"smartphone-per-qr-code-verbinden\">Smartphone per QR-Code verbinden<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">F\u00fcr Android und iOS musst du die Konfiguration nicht abtippen. Du erzeugst aus der client.conf einen QR-Code direkt im Terminal und scannst ihn mit der WireGuard-App. Dieser Trick spart Zeit und vermeidet Tippfehler in den langen Schl\u00fcsseln.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># QR-Code direkt im Terminal anzeigen\nqrencode -t ansiutf8 &lt; client.conf\n\n# Alternativ als PNG-Bild speichern\nqrencode -o client-qr.png &lt; client.conf<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u00d6ffne die WireGuard-App auf dem Smartphone, tippe auf das Plus-Symbol und w\u00e4hle Aus QR-Code erstellen. Scanne den im Terminal angezeigten Code, vergib einen Namen und aktiviere den Tunnel mit dem Schalter. Auf dem Desktop importierst du die client.conf stattdessen \u00fcber Tunnel importieren in der WireGuard-App. Wichtig: L\u00f6sche die client.conf und das PNG nach dem Import vom Server, da sie den privaten Client-Schl\u00fcssel im Klartext enthalten.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"schritt-11-verbindung-testen-und-dns-leaks-pruefen\">Schritt 11: Verbindung testen und DNS-Leaks pr\u00fcfen<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Aktiviere den Tunnel auf deinem Client und pr\u00fcfe, ob alles funktioniert. Der erste Test ist der Handshake. F\u00fchre auf dem Server erneut <code>sudo wg show<\/code> aus. Jetzt sollte eine Zeile mit dem Zeitpunkt des letzten Handshakes und den \u00fcbertragenen Datenmengen erscheinen. Das beweist, dass die kryptografische Verbindung steht.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ sudo wg show\ninterface: wg0\n  public key: HIGr...gekuerzt...=\n  listening port: 51820\n\npeer: qm2T...gekuerzt...=\n  endpoint: 84.115.xxx.xxx:54213\n  allowed ips: 10.8.0.2\/32\n  latest handshake: 18 seconds ago\n  transfer: 1.24 MiB received, 940.51 KiB sent<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Pr\u00fcfe als N\u00e4chstes auf dem Client, ob deine \u00f6ffentliche IP-Adresse jetzt die deines Servers ist. Rufe dazu eine Seite wie ifconfig.me oder ip.me im Browser auf, oder nutze die Kommandozeile. Erscheint die IP deines VPS, l\u00e4uft der Full-Tunnel korrekt. Zum Schluss testest du auf DNS-Leaks, also ob DNS-Anfragen versehentlich an deinen lokalen Provider gehen.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Oeffentliche IP pruefen (sollte die Server-IP sein)\ncurl https:\/\/ifconfig.me\n\n# DNS-Test: Aufloesung sollte ueber 1.1.1.1 laufen\nnslookup shattered.io<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">F\u00fcr eine gr\u00fcndliche Pr\u00fcfung auf undichte Stellen rufst du im Browser einen DNS-Leak-Test auf. Zeigt dieser ausschlie\u00dflich den im Client gesetzten Resolver (hier Cloudflare 1.1.1.1) und nicht deinen heimischen Provider an, ist alles dicht. Wer mehr \u00fcber sichere Namensaufl\u00f6sung erfahren will, findet in unserem <a href=\"\/at\/security-hub\/\">Privacy-Bereich<\/a> weiterf\u00fchrende Artikel.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"schritt-12-server-haerten-und-absichern\">Schritt 12: Server h\u00e4rten und absichern<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Ein laufender Tunnel ist nicht automatisch ein sicherer Server. Mit ein paar Ma\u00dfnahmen reduzierst du die Angriffsfl\u00e4che deutlich. Diese Schritte geh\u00f6ren 2026 zum Pflichtprogramm f\u00fcr jeden \u00f6ffentlich erreichbaren Linux-Server, nicht nur f\u00fcr VPN-Gateways.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>SSH absichern:<\/strong> Deaktiviere die Passwort-Anmeldung und nutze ausschlie\u00dflich SSH-Schl\u00fcssel. Setze <code>PasswordAuthentication no<\/code> in <code>\/etc\/ssh\/sshd_config<\/code>.<\/li>\n<li><strong>Automatische Updates:<\/strong> Installiere <code>unattended-upgrades<\/code>, damit Sicherheitspatches ohne dein Zutun eingespielt werden.<\/li>\n<li><strong>Fail2ban einrichten:<\/strong> Dieses Werkzeug sperrt IP-Adressen, die wiederholt fehlerhafte Anmeldungen versuchen, und bremst Brute-Force-Angriffe aus.<\/li>\n<li><strong>Schl\u00fcssel-Rechte pr\u00fcfen:<\/strong> Stelle sicher, dass alle privaten Schl\u00fcssel mit <code>chmod 600<\/code> nur f\u00fcr root lesbar sind.<\/li>\n<li><strong>Nicht ben\u00f6tigte Dienste stoppen:<\/strong> Jeder offene Port ist ein potenzielles Einfallstor. Pr\u00fcfe mit <code>sudo ss -tulpn<\/code>, was lauscht.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">WireGuard selbst bietet eine besonders elegante Sicherheitseigenschaft: das stille Verhalten. Der Server antwortet nur auf Pakete, die mit einem g\u00fcltigen Schl\u00fcssel authentifiziert sind. F\u00fcr einen Angreifer, der den Port scannt, sieht der Dienst aus wie geschlossen. Diese Eigenschaft erschwert das automatisierte Aufsp\u00fcren des VPN-Endpunkts erheblich und ist ein konkreter Vorteil gegen\u00fcber Protokollen, die auf jede Anfrage reagieren.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Denke au\u00dferdem an ein Backup der Konfigurationsdateien und Schl\u00fcssel an einem sicheren Ort, zum Beispiel in einem Passwort-Manager oder einem verschl\u00fcsselten Container. Geht dein Server verloren, kannst du den Tunnel so schnell wiederherstellen. Wie wichtig ein durchdachter Umgang mit Geheimnissen ist, zeigt jeder gr\u00f6\u00dfere Vorfall in unserem \u00dcberblick zu <a href=\"\/at\/datenlecks\/\">Datenlecks<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"die-6-haeufigsten-fehler-beim-wireguard-einrichten\">Die 6 h\u00e4ufigsten Fehler beim WireGuard einrichten<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Beim ersten Aufbau eines WireGuard-Servers tappen Einsteiger immer wieder in dieselben Fallen. Wer diese sechs Punkte kennt, spart sich stundenlanges Suchen. Wir haben sie nach H\u00e4ufigkeit sortiert.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Privaten und \u00f6ffentlichen Schl\u00fcssel verwechseln:<\/strong> Der weitaus h\u00e4ufigste Fehler. In die [Interface]-Sektion geh\u00f6rt immer der eigene private Schl\u00fcssel, in die [Peer]-Sektion der \u00f6ffentliche Schl\u00fcssel der Gegenstelle. Vertauscht man das, schl\u00e4gt der Handshake fehl.<\/li>\n<li><strong>IP-Forwarding vergessen:<\/strong> Die Verbindung steht, aber es gibt keinen Internetzugang. Ursache ist fast immer ein nicht aktiviertes <code>net.ipv4.ip_forward<\/code> oder eine fehlende MASQUERADE-Regel.<\/li>\n<li><strong>Falscher Schnittstellenname in PostUp:<\/strong> Hei\u00dft deine \u00f6ffentliche Schnittstelle ens3 statt eth0, l\u00e4uft die NAT-Regel ins Leere. Pr\u00fcfe den Namen mit <code>ip route list default<\/code>.<\/li>\n<li><strong>Cloud-Firewall \u00fcbersehen:<\/strong> UFW erlaubt den Port, aber die vorgelagerte Cloud-Firewall des Anbieters blockiert ihn weiterhin. Beide Ebenen m\u00fcssen UDP 51820 durchlassen.<\/li>\n<li><strong>AllowedIPs falsch gesetzt:<\/strong> Auf dem Server geh\u00f6rt die Client-IP als \/32, auf dem Client geh\u00f6rt 0.0.0.0\/0 f\u00fcr den Full-Tunnel. Eine Verwechslung f\u00fchrt zu seltsamen Routing-Problemen.<\/li>\n<li><strong>Schl\u00fcssel mit zu offenen Rechten:<\/strong> Liegt der private Schl\u00fcssel weltlesbar im Dateisystem, ist die Sicherheit dahin. Immer <code>umask 077<\/code> vor dem Erzeugen setzen.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Ein zus\u00e4tzlicher, oft untersch\u00e4tzter Stolperstein ist die MTU. Bei manchen Mobilfunk- oder DSL-Verbindungen f\u00fchren zu gro\u00dfe Pakete zu h\u00e4ngenden Webseiten, obwohl der Tunnel grunds\u00e4tzlich steht. In diesem Fall hilft es, in der Client-Konfiguration unter [Interface] den Wert <code>MTU = 1380<\/code> oder niedriger zu setzen. Der typische WireGuard-MTU-Wert liegt bei 1420 Bytes, weil das Protokoll Platz f\u00fcr den UDP-Overhead lassen muss.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"troubleshooting-8-typische-probleme-loesen\">Troubleshooting: 8 typische Probleme l\u00f6sen<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Diese Tabelle fasst die acht h\u00e4ufigsten Fehlerbilder zusammen, ihre wahrscheinliche Ursache und die konkrete L\u00f6sung. Arbeite sie von oben nach unten durch, denn die h\u00e4ufigsten Probleme stehen zuerst.<\/p>\n\n\n\n<table class=\"wp-block-table\"><thead><tr><th>Symptom<\/th><th>Wahrscheinliche Ursache<\/th><th>L\u00f6sung<\/th><\/tr><\/thead><tbody>\n<tr><td>Kein Handshake (latest handshake fehlt)<\/td><td>Falscher Schl\u00fcssel oder Endpunkt<\/td><td>Server-Public-Key im Client und Client-Public-Key im Server pr\u00fcfen, Endpoint-IP und Port kontrollieren<\/td><\/tr>\n<tr><td>Verbunden, aber kein Internet<\/td><td>IP-Forwarding oder NAT fehlt<\/td><td><code>net.ipv4.ip_forward=1<\/code> setzen und MASQUERADE-Regel mit korrektem Interface pr\u00fcfen<\/td><\/tr>\n<tr><td>DNS-Leak im Test<\/td><td>DNS nicht im Client gesetzt<\/td><td><code>DNS = 1.1.1.1<\/code> in der Client-Config eintragen und Tunnel neu starten<\/td><\/tr>\n<tr><td>Webseiten h\u00e4ngen, Video bricht ab<\/td><td>MTU zu hoch<\/td><td><code>MTU = 1380<\/code> in der Client-Config testen und schrittweise senken<\/td><\/tr>\n<tr><td>Port nicht erreichbar<\/td><td>Firewall blockiert UDP 51820<\/td><td>UFW-Regel und vorgelagerte Cloud-Firewall des Anbieters pr\u00fcfen<\/td><\/tr>\n<tr><td>Routing-Fehler bei AllowedIPs<\/td><td>Falsche Subnetz-Maske<\/td><td>Server-Peer auf \/32, Client-Peer auf 0.0.0.0\/0, ::\/0 setzen<\/td><\/tr>\n<tr><td>wg-quick up bricht ab<\/td><td>Tippfehler in wg0.conf<\/td><td>Datei zeilenweise pr\u00fcfen, mit <code>journalctl -u wg-quick@wg0<\/code> Logs lesen<\/td><\/tr>\n<tr><td>Verbindung bricht hinter NAT ab<\/td><td>Keepalive fehlt<\/td><td><code>PersistentKeepalive = 25<\/code> in der Client-Config erg\u00e4nzen<\/td><\/tr>\n<\/tbody><\/table>\n\n\n\n<p class=\"wp-block-paragraph\">Das wichtigste Diagnosewerkzeug bleibt <code>sudo wg show<\/code>. Fehlt die Zeile latest handshake, erreicht kein g\u00fcltiges Paket den Server, das Problem liegt also bei Schl\u00fcsseln, Endpunkt oder Firewall. Steht der Handshake, aber es flie\u00dfen keine Daten, liegt das Problem beim Routing oder NAT. Diese einfache Unterscheidung grenzt fast jeden Fehler auf eine von zwei Ursachen ein.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">F\u00fcr tiefergehende Analysen liefert <code>journalctl -u wg-quick@wg0 -f<\/code> die Live-Logs des Dienstes. Mit <code>sudo tcpdump -i eth0 udp port 51820<\/code> siehst du, ob \u00fcberhaupt Pakete auf dem Server ankommen. Kommen keine an, blockiert eine Firewall auf dem Weg, und du musst eine Ebene weiter au\u00dfen suchen.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"profi-tipps-fuer-fortgeschrittene\">Profi-Tipps f\u00fcr Fortgeschrittene<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">L\u00e4uft die Grundinstallation, kannst du WireGuard f\u00fcr komplexere Szenarien ausbauen. Die folgenden Tipps richten sich an alle, die mehr als einen einzelnen Client betreiben oder spezielle Routing-W\u00fcnsche haben.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"mehrere-clients-und-split-tunneling\">Mehrere Clients und Split-Tunneling<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">F\u00fcr jeden weiteren Client erzeugst du ein eigenes Schl\u00fcsselpaar und f\u00fcgst einen zus\u00e4tzlichen [Peer]-Block in die wg0.conf ein. Vergib jedem Client eine eindeutige Tunnel-IP (10.8.0.3, 10.8.0.4 und so weiter) und trage sie als AllowedIPs mit \/32 ein. Wichtig: Niemals denselben privaten Schl\u00fcssel auf zwei Ger\u00e4ten verwenden, das f\u00fchrt zu unzuverl\u00e4ssigen Verbindungen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beim Split-Tunneling leitest du nur bestimmten Verkehr durch den Tunnel, etwa nur den Zugriff auf ein Firmennetz, w\u00e4hrend der restliche Datenverkehr direkt ins Internet geht. Dazu setzt du auf der Client-Seite statt 0.0.0.0\/0 nur das gew\u00fcnschte Subnetz, zum Beispiel <code>AllowedIPs = 10.8.0.0\/24, 192.168.10.0\/24<\/code>. Das spart Bandbreite und ist ideal f\u00fcr reine Fernwartungs-Szenarien.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"werbeblocker-und-eigener-dns-mit-pi-hole\">Werbeblocker und eigener DNS mit Pi-hole<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Ein besonders beliebtes Setup kombiniert WireGuard mit Pi-hole. Du installierst Pi-hole auf demselben Server, setzt in der Client-Config <code>DNS = 10.8.0.1<\/code> und filterst so Werbung und Tracker netzwerkweit, auch unterwegs auf dem Smartphone. Da der DNS-Verkehr durch den verschl\u00fcsselten Tunnel l\u00e4uft, sieht dein Mobilfunkanbieter deine Anfragen nicht. F\u00fcr mehr Privatsph\u00e4re auf dem Smartphone lohnt sich auch ein Blick auf unseren Vergleich der <a href=\"\/signal-vs-whatsapp-vs-telegram\/\">sicheren Messenger<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wer keinen eigenen Server betreiben will, findet in unserem <a href=\"\/nordvpn-vs-protonvpn-vs-mullvad\/\">Vergleich kommerzieller VPN-Dienste<\/a> getestete Alternativen mit No-Log-Audits. Ein selbst gehosteter WireGuard-Server gibt dir zwar die volle Kontrolle, sch\u00fctzt aber nur so gut wie der Hoster, dem du vertraust. F\u00fcr maximale Anonymit\u00e4t ist ein auditierter kommerzieller Anbieter manchmal die bessere Wahl.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"ipv6-und-performance-feintuning\">IPv6 und Performance-Feintuning<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Hat dein Server eine IPv6-Adresse, erg\u00e4nzt du im [Interface]-Block eine zweite Address-Zeile mit einem privaten IPv6-Subnetz (etwa fd86:ea04:1115::1\/64) und aktivierst das IPv6-Forwarding, wie in Schritt 7 gezeigt. So nutzt du den Tunnel auch in reinen IPv6-Netzen. F\u00fcr maximale Geschwindigkeit setzt du auf modernen Kernels den Stau-Kontroll-Algorithmus BBR ein, der den Durchsatz \u00fcber langsamere Strecken sp\u00fcrbar verbessert.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"haeufige-fragen-zum-wireguard-einrichten\">H\u00e4ufige Fragen zum WireGuard einrichten<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"ist-ein-selbst-gehosteter-wireguard-server-legal-in-oesterreich\">Ist ein selbst gehosteter WireGuard-Server legal in \u00d6sterreich?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Ja. Der Betrieb eines eigenen VPN-Servers ist in \u00d6sterreich und der gesamten EU v\u00f6llig legal. Du verschl\u00fcsselst lediglich deinen eigenen Datenverkehr. Solange du den Tunnel nicht f\u00fcr illegale Aktivit\u00e4ten nutzt, gibt es keine rechtlichen Bedenken. Viele Unternehmen und Privatpersonen nutzen WireGuard genau zu diesem Zweck.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"wie-viele-geraete-kann-ich-an-einen-wireguard-server-anschliessen\">Wie viele Ger\u00e4te kann ich an einen WireGuard-Server anschlie\u00dfen?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Technisch gibt es praktisch keine Obergrenze. Ein kleiner VPS mit 1 GB RAM bedient problemlos 10 bis 50 gleichzeitige Verbindungen, da WireGuard extrem ressourcenschonend arbeitet. Der limitierende Faktor ist meist die Bandbreite deines Servers, nicht die Anzahl der Peers. F\u00fcr jedes Ger\u00e4t legst du einen eigenen [Peer]-Block mit eindeutiger Tunnel-IP an.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"ist-wireguard-sicherer-als-openvpn\">Ist WireGuard sicherer als OpenVPN?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">WireGuard gilt als mindestens ebenso sicher und durch seine geringe Codegr\u00f6\u00dfe als leichter \u00fcberpr\u00fcfbar. Mit rund 4.000 Zeilen Code l\u00e4sst sich das Protokoll vollst\u00e4ndig auditieren, w\u00e4hrend OpenVPN mit \u00fcber 100.000 Zeilen deutlich mehr potenzielle Angriffsfl\u00e4che bietet. WireGuard nutzt zudem ausschlie\u00dflich moderne, fest verdrahtete Kryptografie und schlie\u00dft Fehlkonfigurationen bei den Algorithmen aus.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"brauche-ich-eine-statische-ip-adresse-fuer-den-server\">Brauche ich eine statische IP-Adresse f\u00fcr den Server?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Eine statische IPv4-Adresse ist die komfortabelste L\u00f6sung, weil der Endpunkt dann immer gleich bleibt. Fast alle VPS-Anbieter liefern standardm\u00e4\u00dfig eine feste IP mit. Betreibst du den Server zu Hause hinter einem wechselnden Anschluss, hilft ein dynamischer DNS-Dienst (DynDNS), der einen festen Hostnamen auf deine wechselnde IP zeigt. Diesen Hostnamen tr\u00e4gst du dann als Endpoint ein.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"schuetzt-wireguard-meine-privatsphaere-vollstaendig\">Sch\u00fctzt WireGuard meine Privatsph\u00e4re vollst\u00e4ndig?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">WireGuard verschl\u00fcsselt deinen Datenverkehr zwischen Ger\u00e4t und Server zuverl\u00e4ssig und verbirgt deine echte IP gegen\u00fcber besuchten Webseiten. Allerdings sieht der Betreiber des Servers, also du oder dein Hoster, weiterhin den entschl\u00fcsselten Verkehr. Ein selbst gehosteter Server sch\u00fctzt vor neugierigen Mobilfunkanbietern und \u00f6ffentlichem WLAN, ersetzt aber keinen auditierten No-Log-Dienst, wenn es um Anonymit\u00e4t gegen\u00fcber dem Server-Betreiber geht.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"was-kostet-der-betrieb-eines-eigenen-wireguard-servers\">Was kostet der Betrieb eines eigenen WireGuard-Servers?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Die laufenden Kosten beschr\u00e4nken sich auf den VPS. Kleine virtuelle Server gibt es ab etwa 4 bis 6 Euro pro Monat, oft inklusive gro\u00dfz\u00fcgigem Datenvolumen. Die WireGuard-Software selbst ist kostenlos und quelloffen. Damit ist der Eigenbetrieb meist g\u00fcnstiger als ein kommerzielles VPN-Abo, erfordert aber etwas Wartungsaufwand f\u00fcr Updates.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"funktioniert-wireguard-auch-hinter-einem-restriktiven-firmen-wlan\">Funktioniert WireGuard auch hinter einem restriktiven Firmen-WLAN?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Das h\u00e4ngt vom Netzwerk ab. Da WireGuard ausschlie\u00dflich \u00fcber UDP l\u00e4uft, blockieren manche restriktiven Firmen- oder Hotel-Netze den Verkehr. In solchen F\u00e4llen kannst du den ListenPort auf einen h\u00e4ufig erlaubten Port wie 53 (DNS) oder 443 \u00e4ndern, oder WireGuard \u00fcber ein Tool wie udp2raw tunneln. F\u00fcr die meisten privaten und mobilen Netze funktioniert der Standardport 51820 jedoch reibungslos.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"fazit-in-30-minuten-zum-eigenen-verschluesselten-tunnel\">Fazit: In 30 Minuten zum eigenen verschl\u00fcsselten Tunnel<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Du hast in zw\u00f6lf Schritten einen kompletten WireGuard-VPN-Server aufgebaut, Clients f\u00fcr Desktop und Smartphone eingerichtet und die Installation geh\u00e4rtet. Das Ergebnis ist ein schneller, schlanker und auditierbarer Tunnel, der dir die volle Kontrolle \u00fcber deinen verschl\u00fcsselten Datenverkehr gibt. WireGuard einrichten ist dank des minimalistischen Designs und der modernen Kryptografie auch f\u00fcr Einsteiger machbar, und der laufende Betrieb kostet nur wenige Euro im Monat.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Der n\u00e4chste sinnvolle Schritt ist die Automatisierung: Skripte wie wg-easy oder eine selbst gebaute L\u00f6sung erzeugen neue Client-Konfigurationen per Knopfdruck. Wer tiefer in die Kryptografie hinter modernen VPNs einsteigen will, findet in unserem <a href=\"\/at\/security-hub\/\">Privacy-Bereich<\/a> und in der Erkl\u00e4rung zu <a href=\"\/at\/https-und-tls\/\">HTTPS und TLS<\/a> die passenden Grundlagen. Halte deinen Server mit regelm\u00e4\u00dfigen Updates aktuell, dann begleitet dich dein WireGuard-Tunnel zuverl\u00e4ssig durch jedes \u00f6ffentliche WLAN.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"verwandte-beitraege\">Verwandte Beitr\u00e4ge<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"\/wireguard-vs-openvpn\/\">WireGuard vs. OpenVPN: 892 vs. 222 Mbit\/s im Benchmark<\/a><\/li>\n<li><a href=\"\/nordvpn-vs-protonvpn-vs-mullvad\/\">NordVPN vs. ProtonVPN vs. Mullvad: Der gro\u00dfe VPN-Vergleich<\/a><\/li>\n<li><a href=\"\/at\/https-und-tls\/\">HTTPS und TLS erkl\u00e4rt: Was das Schloss-Symbol wirklich bedeutet<\/a><\/li>\n<li><a href=\"\/post-quantum-cryptography-2026\/\">Post-Quanten-Kryptografie: 50 % des Webs sind jetzt gesch\u00fctzt<\/a><\/li>\n<li><a href=\"\/signal-vs-whatsapp-vs-telegram\/\">Signal vs. WhatsApp vs. Telegram: Welcher Messenger sch\u00fctzt am besten?<\/a><\/li>\n<li><a href=\"\/at\/datenlecks\/\">Datenlecks: Wie sie entstehen und wie du dich sch\u00fctzt<\/a><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"weiterfuehrende-quellen\">Weiterf\u00fchrende Quellen<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.wireguard.com\/\" target=\"_blank\" rel=\"noopener\">WireGuard: Offizielle Projektseite und Dokumentation<\/a><\/li>\n<li><a href=\"https:\/\/www.wireguard.com\/protocol\/\" target=\"_blank\" rel=\"noopener\">WireGuard: Technische Protokollbeschreibung<\/a><\/li>\n<li><a href=\"https:\/\/www.wireguard.com\/papers\/wireguard.pdf\" target=\"_blank\" rel=\"noopener\">WireGuard: Offizielles Whitepaper (PDF)<\/a><\/li>\n<li><a href=\"https:\/\/wiki.archlinux.org\/title\/WireGuard\" target=\"_blank\" rel=\"noopener\">Arch Linux Wiki: WireGuard-Konfiguration<\/a><\/li>\n<li><a href=\"https:\/\/blog.cloudflare.com\/boringtun-userspace-wireguard-rust\/\" target=\"_blank\" rel=\"noopener\">Cloudflare: BoringTun, WireGuard im User-Space<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Ein eigener VPN-Server kostet weniger als ein Kaffee pro Monat und gibt dir die volle Kontrolle \u00fcber deinen verschl\u00fcsselten Datenverkehr. WireGuard einrichten dauert mit dieser Anleitung rund 30 Minuten, selbst\u2026<\/p>\n","protected":false},"author":2,"featured_media":57,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-56","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-privacy"],"_links":{"self":[{"href":"https:\/\/shattered.io\/at\/wp-json\/wp\/v2\/posts\/56","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/shattered.io\/at\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/shattered.io\/at\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/shattered.io\/at\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/shattered.io\/at\/wp-json\/wp\/v2\/comments?post=56"}],"version-history":[{"count":0,"href":"https:\/\/shattered.io\/at\/wp-json\/wp\/v2\/posts\/56\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/shattered.io\/at\/wp-json\/wp\/v2\/media\/57"}],"wp:attachment":[{"href":"https:\/\/shattered.io\/at\/wp-json\/wp\/v2\/media?parent=56"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/shattered.io\/at\/wp-json\/wp\/v2\/categories?post=56"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/shattered.io\/at\/wp-json\/wp\/v2\/tags?post=56"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}