Was du brauchst, bevor du loslegst
Das ist die komplette Einkaufsliste. Nichts Exotisches dabei, und die Gesamtkosten liegen bei ein paar Dollar im Monat:
- Ein guenstiger VPS (virtueller Server). Die kleinste Stufe - 1 vCPU und 1 GB RAM - reicht fuer den privaten Gebrauch mehr als aus. Waehle bei der Erstellung Ubuntu 22.04 oder 24.04.
- Die oeffentliche IP-Adresse des Servers und root-Zugang (oder sudo) per SSH. Dein Anbieter schickt dir das per E-Mail direkt nach der Bezahlung.
- Ein SSH-Client. Unter Windows nutzt du das eingebaute
sshin PowerShell oder PuTTY, unter macOS und Linux oeffnest du einfach ein Terminal. - Ein KVM-basierter VPS. Fast alle Tarife sind das, aber meide die allerguenstigsten OpenVZ-Angebote - sie teilen sich den Kernel des Hosts und koennen WireGuard nicht laden, sodass diese Einrichtung dort nicht funktioniert. Im Zweifel frag den Anbieter oder waehle einen Tarif, bei dem "KVM" steht.
- Etwa 15 Minuten.
Schritt 1: Mit dem Server verbinden und ihn aktualisieren
Oeffne dein Terminal und melde dich an, indem du die Adresse durch die IP deines Servers ersetzt:
ssh root@YOUR_SERVER_IP
Das Erste auf jedem frischen Server ist die Installation der neuesten Sicherheitsupdates:
apt update && apt upgrade -y
Schritt 2: WireGuard installieren
Ein Befehl installiert WireGuard und qrencode, ein kleines Werkzeug, mit dem wir spaeter die Konfiguration als QR-Code auf dein Handy uebertragen:
apt install wireguard qrencode -y
Schritt 3: Die Server-Schluessel erzeugen
WireGuard verwendet auf jeder Seite einen privaten und einen oeffentlichen Schluessel. Erstelle das Server-Paar in seinem Konfigurationsverzeichnis. Das umask 077 stellt sicher, dass der private Schluessel fuer andere Benutzer nicht lesbar ist:
cd /etc/wireguard
umask 077
wg genkey | tee server_private.key | wg pubkey > server_public.key
Gib beide Schluessel aus und halte sie fuer die naechsten Schritte bereit:
cat server_private.key
cat server_public.key
Schritt 4: Deine Netzwerkschnittstelle finden
Um deinen Datenverkehr ins Internet zu leiten, muss der Server den Namen seiner oeffentlichen Netzwerkkarte kennen. Fuehre aus:
ip route list default
Schau dir das Wort direkt nach dev in der Ausgabe an - es ist meist eth0 oder ens3. Notiere es dir; wir brauchen es im naechsten Schritt.
Schritt 5: Die Server-Konfiguration erstellen
Erstelle die Datei /etc/wireguard/wg0.conf (zum Beispiel mit nano /etc/wireguard/wg0.conf) und fuege den Block unten ein. Ersetze SERVER_PRIVATE_KEY durch den privaten Schluessel aus Schritt 3 und ersetze eth0 durch den Schnittstellennamen aus Schritt 4:
[Interface]
Address = 10.8.0.1/24
ListenPort = 51820
PrivateKey = SERVER_PRIVATE_KEY
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
In einfachen Worten: Der Server nimmt die Adresse 10.8.0.1 innerhalb eines privaten VPN-Netzwerks, lauscht auf UDP-Port 51820, und die beiden iptables-Zeilen schalten das Masquerading ein, das deinen Geraeten den Weg ins weite Internet ueber ihn ermoeglicht.
Schritt 6: IP-Weiterleitung einschalten
Standardmaessig leitet Linux keinen Datenverkehr von einer Schnittstelle zur anderen weiter. Schalte es mit einer eigenen kleinen Konfigurationsdatei ein - ein sauberer, wiederholbarer Weg, der nicht mit anderen Einstellungen kollidiert und sich nicht anhaeuft, wenn du ihn zweimal ausfuehrst:
echo "net.ipv4.ip_forward = 1" > /etc/sysctl.d/99-wireguard.conf
sysctl --system
Schritt 7: Einen Client erstellen und als Peer hinzufuegen
Erzeuge jetzt ein Schluesselpaar fuer dein erstes Geraet (deinen Laptop oder dein Handy):
wg genkey | tee client_private.key | wg pubkey > client_public.key
cat client_private.key
cat client_public.key
Teile dem Server diesen Client mit, indem du einen [Peer]-Block ans Ende von /etc/wireguard/wg0.conf haengst. Verwende hier den oeffentlichen Schluessel des Clients:
[Peer]
PublicKey = CLIENT_PUBLIC_KEY
AllowedIPs = 10.8.0.2/32
Schritt 8: Die Firewall oeffnen und WireGuard starten
Erlaube SSH (damit du dich nicht selbst aussperrst) und den WireGuard-Port, aktiviere dann die Firewall:
ufw allow 22/tcp
ufw allow 51820/udp
ufw enable
22), erlaube stattdessen diesen Port - zum Beispiel ufw allow 2222/tcp - bevor du ufw enable ausfuehrst, sonst sperrt dich die Firewall aus deinem eigenen Server aus.Starte den Tunnel und stelle ihn so ein, dass er bei jedem Neustart automatisch startet:
systemctl enable --now wg-quick@wg0
Pruefe, dass er laeuft - du solltest die Schnittstelle und deinen Lausch-Port sehen:
wg show
Schritt 9: Die Client-Konfiguration erstellen
Jedes Geraet, das sich verbindet, braucht eine kleine Konfigurationsdatei. Erstelle auf dem Server eine Datei namens client.conf und trage CLIENT_PRIVATE_KEY (aus Schritt 7), SERVER_PUBLIC_KEY (aus Schritt 3) und die oeffentliche IP deines Servers ein:
[Interface]
PrivateKey = CLIENT_PRIVATE_KEY
Address = 10.8.0.2/32
DNS = 1.1.1.1
[Peer]
PublicKey = SERVER_PUBLIC_KEY
Endpoint = YOUR_SERVER_IP:51820
AllowedIPs = 0.0.0.0/0, ::/0
PersistentKeepalive = 25
Die Zeile AllowedIPs = 0.0.0.0/0, ::/0 ist das, was deinen gesamten Datenverkehr durch den Tunnel schickt. Mit DNS = 1.1.1.1 verhinderst du, dass deine Anfragen an deinen lokalen Anbieter durchsickern. Genau diese client.conf laedst du unten auf jedes Geraet.
Schritt 10: Die WireGuard-App installieren und verbinden
WireGuard hat eine kostenlose offizielle App fuer jede Plattform. Es gibt zwei Wege, deine client.conf zu laden: einen QR-Code scannen (am einfachsten auf Handys) oder die Datei importieren (am einfachsten auf Computern). Um einen QR-Code zu erzeugen, fuehre dies auf dem Server aus und halte das Terminalfenster breit, damit der Code nicht verzerrt wird:
qrencode -t ansiutf8 < client.conf
Android: Installiere die WireGuard-App aus Google Play. Oeffne die App, tippe auf den +-Button, waehle Aus QR-Code scannen, richte die Kamera auf den Code in deinem Terminal, gib dem Tunnel einen Namen und lege dann den Schalter um, um dich zu verbinden.
iPhone und iPad: Installiere die WireGuard-App aus dem App Store. Tippe auf +, waehle Aus QR-Code erstellen, scanne den Code, benenne den Tunnel und schalte ihn ein. Erlaube die VPN-Konfiguration, wenn iOS danach fragt.
Windows: Lade die App von wireguard.com/install herunter. Kopiere deine client.conf auf den PC, oeffne die App, klicke auf Import tunnel(s) from file, waehle client.conf und klicke dann auf Activate.
macOS: Installiere die WireGuard-App aus dem Mac App Store. Klicke auf Import tunnel(s) from file, waehle deine client.conf, erlaube die VPN-Konfiguration und klicke dann auf Activate.
Linux-Desktop: Installiere das Paket mit apt install wireguard (oder dem Aequivalent deiner Distribution; siehe wireguard.com/install), kopiere client.conf nach /etc/wireguard/ und starte es mit wg-quick up client. Trenne die Verbindung mit wg-quick down client.
Ein weiteres Geraet hinzufuegen? Wiederhole Schritt 7 fuer jedes neue Handy oder Notebook: Erzeuge ein frisches Schluesselpaar, gib dem Geraet die naechste freie Adresse (10.8.0.3/32, dann 10.8.0.4/32 und so weiter), fuege seinen eigenen [Peer]-Block zur wg0.conf hinzu und wende die Aenderung mit systemctl restart wg-quick@wg0 an. Gib jedem Geraet seinen eigenen Schluessel - lade niemals eine Konfiguration gleichzeitig auf zwei Geraete.
Schritt 11: Pruefen, dass der Tunnel wirklich funktioniert
Schalten Sie die Verbindung ein und pruefen Sie zwei Dinge auf unserer Seite Netzwerk-Tools. Erstens: Das Internet soll die IP Ihres Servers sehen, nicht Ihre heimische - die Seite zeigt Ihre aktuelle IP und das Land ganz oben. Zweitens: Oeffnen Sie den Tab DNS Leak Test und starten Sie die Pruefung - jeder aufgelistete Resolver sollte zu Ihrem DNS-Anbieter gehoeren, niemals zu Ihrem heimischen ISP. Wenn beides stimmt, haben Sie ein funktionierendes privates VPN.
Haeufige Fehler
- Falscher Schnittstellenname. Wenn
eth0in der Konfiguration nicht mit dem uebereinstimmt, was Schritt 4 gezeigt hat, verbindet sich der Datenverkehr zwar, erreicht aber nie das Internet. Das ist die Ursache Nummer eins fuer einen "verbunden, aber kein Internet"-Tunnel. - IP-Weiterleitung vergessen. Das Ueberspringen von Schritt 6 fuehrt zum gleichen Sackgassen-Symptom. Fuehre
sysctl --systemerneut aus und pruefe, dasscat /proc/sys/net/ipv4/ip_forwardeine1zurueckgibt. - Anbieter-Firewall. Manche Hoster haben ihre eigene Firewall in einem Control Panel zusaetzlich zu
ufw. Stelle sicher, dass UDP51820auch dort geoeffnet ist. - Schluessel verwechselt. Die Server-Konfiguration enthaelt den oeffentlichen Schluessel des Clients; die Client-Konfiguration enthaelt den oeffentlichen Schluessel des Servers. Private Schluessel verlassen niemals das Geraet, auf dem sie erzeugt wurden.
- IPv6 rutscht durch. Diese Anleitung schickt IPv6 in den Tunnel (
::/0), richtet den Server aber nur fuer IPv4 ein, sodass manche reinen IPv6-Seiten langsam oder gar nicht laden. Wenn das passiert, ist die einfachste Loesung, IPv6 auf dem Client-Geraet abzuschalten oder spaeter IPv6-Unterstuetzung auf dem Server hinzuzufuegen. - Uhrzeit-Abweichung. WireGuard selbst ist unkritisch, aber wenn die Serveruhr stark falsch geht, bricht TLS zu Webseiten zusammen. Fuehre
timedatectlaus und aktiviere bei Bedarf NTP.
Wenn reines WireGuard nicht ausreicht
Ein selbst gehosteter WireGuard-Tunnel ist hervorragend fuer die Privatsphaere - dein Datenverkehr ist verschluesselt und an einen Server gebunden, den nur du nutzt. Aber in Laendern mit aggressiver Zensur hat er eine Schwaeche: Deep-Packet-Inspection-Systeme (DPI) koennen WireGuard-Datenverkehr an seinem Fingerabdruck erkennen und ihn drosseln oder verwerfen, auch wenn sie nicht lesen koennen, was darin steckt. Russlands Betreiber zum Beispiel sind dazu uebergegangen, VPNs an den in jedem Netz installierten TSPU-Boxen zu blockieren, und die dortigen Regulierer haben offen auf eine totale Blockierung des VPN-Datenverkehrs hingedraengt. Wenn dein Ziel eher das Umgehen solcher DPI als der alltaegliche Datenschutz ist, ist ein Protokoll, das sich als gewoehnliches HTTPS tarnt - etwa VLESS mit Reality - das bessere Werkzeug. Diese Einrichtung behandeln wir in einer separaten Anleitung in diesem Bereich.
Ist der Betrieb eines eigenen VPN legal?
In den meisten Teilen der Welt ist das Mieten eines Servers und der Betrieb eines eigenen VPN darauf voellig legal - es ist dieselbe Technologie, die Unternehmen fuer die Fernarbeit nutzen. Du bist allerdings dafuer verantwortlich, was du damit tust: Ein VPN aendert, woher dein Datenverkehr scheinbar kommt, es stellt dich nicht ueber das Gesetz. Eine Handvoll Laender beschraenken oder lizenzieren die VPN-Nutzung, pruefe also die Regeln dort, wo du tatsaechlich lebst. Und denk an die ehrlichen Grenzen des Selbst-Hostens: Dein Datenverkehr ist gegenueber deinem lokalen Netzwerk und deinem ISP privat, aber die Firma, die dir den VPS vermietet, kann trotzdem sehen, dass ein Server unter dieser IP existiert und wie viele Daten er bewegt. Fuer die meisten Menschen ist dieser Kompromiss den Aufwand wert - du bekommst einen Tunnel, den sonst niemand teilt, zu deinen Bedingungen.
/etc/wireguard/ an einem sicheren Ort, teile niemals einen privaten Schluessel und erstelle fuer jedes neue Geraet einen eigenen [Peer]-Block mit eigenem Schluesselpaar, statt eines wiederzuverwenden. Geht ein Geraet verloren, kannst du dann genau diesen Peer widerrufen. Sobald ein Geraet eingerichtet ist, loesche die uebrig gebliebenen Client-Dateien vom Server, damit sein privater Schluessel nicht herumliegt: rm client.conf client_private.key.