WireGuard bringt seine Verwaltung als kleine Werkzeugsammlung mit: wg für den Tunnel selbst und wg-quick als Startskript. Weil das Protokoll im Kernel läuft, gibt es keine Konfigurationsdatei mit Hunderten Optionen — ein Interface, beliebig viele Peers, fertig. Diese Referenz zeigt die Befehle; die Funktionsweise des Protokolls erklärt der Artikel WireGuard.
Schlüssel erzeugen
WireGuard kennt keine Zertifikate, nur Schlüsselpaare aus je einem privaten und einem öffentlichen Schlüssel. Die Dateirechte sind entscheidend — der private Schlüssel darf nie für andere lesbar sein:
umask 077
wg genkey | tee privatekey | wg pubkey > publickey
wg genpsk > preshared.key
wg genkey erzeugt den privaten Schlüssel, wg pubkey rechnet den öffentlichen daraus, wg genpsk liefert einen zusätzlichen gemeinsamen Schlüssel für eine zweite Verschlüsselungsschicht (Post-Quantum-Vorstufe, zusätzliche Absicherung gegen spätere Entschlüsselung).
Interface einrichten
ip link add dev wg0 type wireguard
ip address add 10.0.0.1/24 dev wg0
ip link set wg0 up
wg set wg0 private-key ./privatekey listen-port 51820
Peers setzen mit wg
Jeder Gegenstelle wird ein öffentlicher Schlüssel, ein erlaubter Adressbereich und ihr Endpunkt zugeordnet:
wg set wg0 peer <PUBKEY> allowed-ips 10.0.0.2/32
wg set wg0 peer <PUBKEY> endpoint vpn.example.org:51820
wg set wg0 peer <PUBKEY> persistent-keepalive 25
wg set wg0 peer <PUBKEY> preshared-key ./preshared.key
wg set wg0 peer <PUBKEY> remove
Die Option allowed-ips ist mehr als ein Routing-Eintrag: WireGuard prüft damit in beide Richtungen — nur Pakete, deren Quelladresse im Bereich liegt, werden von diesem Peer angenommen, und nur dorthin werden Pakete geschickt (Cryptokey Routing). persistent-keepalive 25 hält die Verbindung durch NAT-Geräte offen, weil alle 25 Sekunden ein leeres Paket gesendet wird.
Konfiguration laden und speichern
wg showconf wg0 > wg0.conf # laufende Konfiguration als Datei
wg setconf wg0 wg0.conf # Datei setzen (ersetzt Peers vollständig)
wg addconf wg0 wg0.conf # Datei ergänzen
wg syncconf wg0 wg0.conf # abgleichen, bestehende Peers bleiben
Für Änderungen im laufenden Betrieb ist wg syncconf die richtige Wahl: Anders als setconf entfernt es keine Peers, die in der Datei fehlen, und lässt bestehende Handshakes bestehen.
wg-quick: Tunnel aus einer Datei starten
Das Skript wg-quick liest /etc/wireguard/wg0.conf, legt das Interface an, setzt Adressen und Routen und kümmert sich um die Namensauflösung:
wg-quick up wg0
wg-quick down wg0
wg-quick save wg0 # aktuelle Peer-Endpunkte zurückschreiben
wg-quick strip wg0 # Konfiguration ohne wg-quick-Zeilen ausgeben
systemctl enable --now wg-quick@wg0
Der Aufbau der Datei folgt zwei Abschnitten:
[Interface]
Address = 10.0.0.1/24
ListenPort = 51820
PrivateKey = <PRIVKEY>
PostUp = sysctl -w net.ipv4.ip_forward=1
[Peer]
PublicKey = <PUBKEY>
AllowedIPs = 10.0.0.2/32, 192.168.1.0/24
Endpoint = vpn.example.org:51820
PersistentKeepalive = 25
AllowedIPs = 0.0.0.0/0, ::/0 leitet den gesamten Verkehr über den Tunnel (Full Tunnel), ein einzelnes /32 nur einen Host (Split Tunnel). Die Datei gehört nach /etc/wireguard/ und muss chmod 600 haben.
Zustand prüfen
wg show # Interface, Peers, Handshake, Transfer
wg show wg0 dump # maschinenlesbare Ausgabe für Skripte
wg show wg0 latest-handshakes
wg show wg0 transfer
wg show all # alle Interfaces auf einmal
- Handshake 0: Es kam noch nie eine Antwort — Endpunkt, Port oder Schlüssel passen nicht.
- Handshake alt, Transfer klein: Der Tunnel steht, aber es fließt kaum Verkehr — meist eine Routing- oder Firewall-Frage auf der Gegenseite.
- Operation not supported: Das Kernelmodul fehlt (
modprobe wireguard) oder der Kernel ist zu alt (WireGuard ist ab Linux 5.6 enthalten). - Kein Verkehr nach Regeländerung:
AllowedIPsund die eigene Adresse prüfen — der Bereich muss die Gegenstelle einschließen.
Verwandte Artikel
Die Protokollebene erklärt WireGuard; die klassische Schicht-3-Variante mit Schlüsselaustausch steht in den IPsec-Befehle, der TLS-basierte Tunnel in den OpenVPN-Befehle. Adressierung und Weiterleitung behandeln NAT und IP-Tunnel; der Überblick über Zweck und Einsatz steht in VPN und VPN-Grundlagen.