Sicherheit

WireGuard-Server: Installations- und Konfigurationsanleitung für Linux und Windows

12. Mai 2026·7 min Lesezeit

Was ist WireGuard?

WireGuard ist ein Open-Source-VPN-Protokoll, das seit Linux-Kernel-Version 5.6 integriert ist (auch verfügbar für Windows, macOS, Android und iOS). Das Design ist minimalistisch: weniger als 4.000 Codezeilen, moderne Kryptographie (Curve25519, ChaCha20-Poly1305, BLAKE2s) und reproduzierbare Konfiguration basierend auf Schlüsselpaaren. Im Gegensatz zu OpenVPN oder IPsec ist keine Zertifikatsinfrastruktur erforderlich und der Handshake dauert Millisekunden.

Warum für IoT verwenden?

Im Feld eingesetzte IoT-Gateways verbinden sich über Betreibernetzwerke mit NAT oder CGNAT — sie haben keine feste öffentliche IP und sind nicht direkt erreichbar. Mit WireGuard baut jedes Gerät einen verschlüsselten Tunnel zu einem zentralen Server mit statischer IP auf. Das zentrale System sieht alle Gateways, als wären sie im selben lokalen Netz, ohne Ports nach außen zu öffnen.

WireGuard ermöglicht die Einrichtung verschlüsselter VPN-Tunnel mit minimalem Footprint und reproduzierbarer Konfiguration. Dieser Leitfaden behandelt die Installation und Konfiguration eines WireGuard-Servers unter Linux (Ubuntu/Debian) und Windows 10/11: Schlüsselgenerierung, wg0.conf-Datei, Dienstaktivierung und Handshake-Verifizierung mit dem Peer. Derselbe Server unterstützt mehrere gleichzeitige Peers ohne Leistungseinbußen.

Visualisierung · WireGuard-Handshake — Server ↔ Peer-Client

Tunnelarchitektur

Der WireGuard-Tunnel ist Punkt-zu-Punkt: Ein zentraler Server (Ihre Instanz auf AWS, GCP oder on-premise) fungiert als statischer Peer mit fester öffentlicher IP, und der Remote-Peer ist der dynamische Client, der die Verbindung initiiert. Dies schafft einen verschlüsselten Zugriffskanal für Fernkonfiguration, Diagnose oder jeden Dienst, der sichere Kommunikation zwischen beiden Endpunkten erfordert.

KomponenteWireGuard-RolleTunnel-IP (Beispiel)
VPN-Server (Linux / Windows)Statischer Peer (aktiver ListenPort)10.8.0.1/24
Peer / cliente remotoDynamischer Peer (initiiert Verbindung)10.8.0.2/32

Schritt 1 — WireGuard auf dem Server installieren

Linux (Ubuntu / Debian)

Auf einem Ubuntu 22.04- oder Debian 12-Server (empfohlen):

sudo apt update && sudo apt install -y wireguard
sudo modprobe wireguard   # lädt das Kernel-Modul

Überprüfen Sie, ob das Modul verfügbar ist:

lsmod | grep wireguard
# wireguard              90112  0

Windows 10 / 11

Laden Sie den offiziellen Installer von wireguard.com/install herunter oder verwenden Sie winget:

# Option A — winget (Windows 10 v1709+ / Windows 11)
winget install WireGuard.WireGuard

# Option B — grafischer Installer
# Laden Sie die .msi von wireguard.com/install herunter und führen Sie sie als Administrator aus

Prüfen Sie, ob wg.exe verfügbar ist, indem Sie PowerShell oder CMD öffnen:

wg --version
# wireguard-windows v0.5.3

Schritt 2 — Schlüsselpaar auf dem Server generieren

Linux (Ubuntu / Debian)

# Generiert den privaten Schlüssel des Servers
wg genkey | sudo tee /etc/wireguard/server_private.key
# Leitet den öffentlichen Schlüssel ab
sudo cat /etc/wireguard/server_private.key | wg pubkey | sudo tee /etc/wireguard/server_public.key
sudo chmod 600 /etc/wireguard/server_private.key

Speichern Sie den öffentlichen Schlüssel des Servers an einem sicheren Ort — Sie müssen ihn mit jedem Peer teilen, der sich verbindet.

Windows 10 / 11

wg.exe wird unter C:\Program Files\WireGuard\ installiert. Führen Sie PowerShell als Administrator aus:

cd "C:Program FilesWireGuard"

# Generiert den privaten Schlüssel des Servers
.wg.exe genkey | Set-Content server_private.key

# Leitet den öffentlichen Schlüssel ab
Get-Content .server_private.key | .wg.exe pubkey | Set-Content server_public.key

GUI-Alternative: Klicken Sie in der WireGuard-App auf 'Add Tunnel' → 'Add empty tunnel'. Die App generiert das Schlüsselpaar automatisch und zeigt den öffentlichen Schlüssel an. Fügen Sie einfach Address, ListenPort und die [Peer]-Blöcke hinzu.

Schritt 3 — Server-Konfigurationsdatei erstellen

Linux (Ubuntu / Debian)

Erstellen Sie /etc/wireguard/wg0.conf mit folgendem Inhalt (ersetzen Sie die Werte zwischen < >) : (/etc/wireguard/wg0.conf)

[Interface]
PrivateKey = <Inhalt von server_private.key>
Address = 10.8.0.1/24
ListenPort = 51820

# Aktiviert IP-Forwarding für Routing zwischen Peers
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

[Peer]
# gateway IoT / embedded device Index AMI — Einheit 001
PublicKey = <öffentlicher Schlüssel des Index AMI — generiert in Schritt 4>
AllowedIPs = 10.8.0.2/32

Hinweis: UDP-Port 51820 muss in der Server-Firewall geöffnet sein. Auf AWS: Eingehende Regel UDP 51820 in der Security Group. Auf GCP: VPC-Firewall-Regel mit UDP-Protokoll und Port 51820.

Windows 10 / 11

Das Format von wg0.conf ist identisch mit Linux. Windows benötigt keine PostUp/PostDown-Zeilen (manuelles Routing falls erforderlich):

[Interface]
PrivateKey = <contenido de server_private.key>
Address = 10.8.0.1/24
ListenPort = 51820

[Peer]
PublicKey = <clave pública del peer — generada en Paso 4>
AllowedIPs = 10.8.0.2/32

Importieren Sie die Datei als Windows-Dienst (PowerShell oder CMD als Administrator):

# Installiert den Tunnel als Windows-Dienst
wireguard /installtunnelservice "C:WireGuardwg0.conf"
# Der Dienst startet automatisch mit dem Namen: WireGuardTunnel$wg0

Öffnen Sie den UDP-Port 51820 in der Windows-Firewall (PowerShell als Administrator):

New-NetFirewallRule -DisplayName "WireGuard VPN" `
  -Direction Inbound -Protocol UDP `
  -LocalPort 51820 -Action Allow

Schritt 4 — Peer zum Server hinzufügen

Wenn der Peer Ihnen seinen öffentlichen Schlüssel sendet, fügen Sie am Ende der wg0.conf-Datei des Servers einen [Peer]-Block hinzu:

[Peer]
# Beschreibender Peer-Name (optionaler Kommentar)
PublicKey = <öffentlicher Schlüssel des Peers>
AllowedIPs = 10.8.0.2/32

Konfiguration ohne Dienstneustart neu laden:

Linux (Ubuntu / Debian)

sudo wg syncconf wg0 <(wg-quick strip wg0)

Windows 10 / 11

Öffnen Sie die WireGuard-Benutzeroberfläche → wählen Sie den wg0-Tunnel → bearbeiten Sie die Datei und fügen Sie den [Peer]-Block hinzu → Änderungen anwenden.

Schritt 5 — Interface hochfahren und Handshake überprüfen

Linux (Ubuntu / Debian)

Auf dem Server:

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

Überprüfen Sie den Interface-Status:

sudo wg show

# Erwartete Ausgabe:
interface: wg0
  public key: <öffentlicher Schlüssel des Servers>
  private key: (hidden)
  listening port: 51820

peer: <öffentlicher Schlüssel des Index AMI>
  endpoint: <4G-IP des Index AMI>:XXXXX
  allowed ips: 10.8.0.2/32
  latest handshake: 3 seconds ago
  transfer: 1.23 KiB received, 2.45 KiB sent

Das Feld latest handshake mit einem aktuellen Wert (weniger als 3 Minuten) bestätigt, dass der Tunnel aktiv ist. Wenn es nicht erscheint, prüfen Sie den Abschnitt zur Fehlerbehebung.

Windows 10 / 11

Wenn Sie den Dienst mit /installtunnelservice installiert haben, startet der Tunnel automatisch. Für manuelles Management von PowerShell aus:

sc start WireGuardTunnel$wg0
# o para detenerlo:
sc stop WireGuardTunnel$wg0

GUI-Alternative: Öffnen Sie WireGuard aus der Taskleiste oder dem Startmenü und schalten Sie den wg0-Tunnel-Schalter.

Überprüfen Sie den Tunnel-Status mit wg.exe (muss im PATH sein oder vollständigen Pfad verwenden):

wg show
# interface: wg0
#   public key: ...
#   listening port: 51820
# peer: ...
#   latest handshake: 3 seconds ago

Schritt 6 — Ende-zu-Ende-Konnektivität überprüfen

Pingen Sie vom Server aus die Tunnel-IP des Index AMI an:

ping 10.8.0.2
# PING 10.8.0.2 (10.8.0.2): 56 data bytes
# 64 bytes from 10.8.0.2: icmp_seq=0 ttl=64 time=8.3 ms

Eine Latenz unter 15 ms über LTE ist normal. Wenn Ihre Verwaltungsanwendung auf demselben Server läuft, kann sie den Peer bereits direkt über 10.8.0.2.

Fehlerbehebung

SymptomWahrscheinliche UrsacheLösung
Kein Handshake nach 2 MinUDP-Port 51820 blockiertÖffnen Sie UDP 51820 in der Server-Firewall / Security Group
Handshake OK, aber kein PingRouten oder AllowedIPs falsch konfiguriertÜberprüfen Sie, dass AllowedIPs des Peers die Ziel-IP enthält
Tunnel bricht nach 3–5 Min ohne Traffic ab4G-NAT lässt die UDP-Sitzung ablaufenStellen Sie sicher, dass PersistentKeepalive = 25 am Index AMI-Peer gesetzt ist
Ungültiger öffentlicher SchlüsselZeichen beim Kopieren abgeschnittenDer Schlüssel hat genau 44 Base64-Zeichen; kopieren Sie ihn vollständig

Mesh-Topologie (mehrere Gateways)

Für Deployments mit mehr als einem Index AMI fügen Sie einen zusätzlichen [Peer]-Block pro Einheit in die wg0.conf des Servers ein. Jedes Index AMI erhält eine eindeutige Tunnel-IP (10.8.0.2, 10.8.0.3, …). Der Server fungiert als zentraler Hub — die Index AMI benötigen keine gegenseitige Sichtbarkeit.

[Peer]
# gateway IoT / embedded device Index AMI — Einheit 002
PublicKey = <öffentlicher Schlüssel Einheit 002>
AllowedIPs = 10.8.0.3/32

[Peer]
# gateway IoT / embedded device Index AMI — Einheit 003
PublicKey = <öffentlicher Schlüssel Einheit 003>
AllowedIPs = 10.8.0.4/32

Linux (Ubuntu / Debian)

Änderungen ohne Neustart des Dienstes live anwenden:

sudo wg addconf wg0 /etc/wireguard/wg0.conf
# oder wenn der Peer direkt hinzugefügt wird:
sudo wg set wg0 peer <public key> allowed-ips 10.8.0.3/32

Windows 10 / 11

Unter Windows sind Hot-Änderungen mit wg addconf nicht direkt verfügbar. Um einen Peer hinzuzufügen, bearbeiten Sie wg0.conf, stoppen Sie den Dienst mit sc stop WireGuardTunnel$wg0 (oder über die GUI) und starten Sie ihn neu.

Nächste Schritte

Mit aktivem Server und verifiziertem Handshake ist der verschlüsselte Tunnel betriebsbereit. Der Remote-Peer ist sicher über seine Tunnel-IP von jedem Netzwerkpunkt aus erreichbar. Wenn der RS485-Bus des Peers Kommunikationsfehler aufweist, lesen Sie die Anleitung zur RS485-Felddiagnose.