Spawnpunkt
Netzwerk-Patchpanel — WireGuard baut ein eigenes, verschlüsseltes Netzwerk über solche Verbindungen auf
Netzwerk & VPN

WireGuard VPN Server einrichten

von Spawnpunkt System·09/04/2026
Linux Tutorial

WireGuard VPN Server einrichten

WireGuard ist ein modernes, schlankes VPN — deutlich einfacher zu konfigurieren als OpenVPN und seit Linux 5.6 direkt im Kernel enthalten.

Schlanker, moderner VPN-KernServer- + Client-KonfigurationAls systemd-Dienst dauerhaft aktiv
Betriebssystem
Ubuntu / Debian
Schwierigkeit
Fortgeschritten
Dauer
~20 Minuten

Was ist WireGuard?

WireGuard verbindet Geräte über ein verschlüsseltes, virtuelles Netzwerk — praktisch, um z. B. von unterwegs sicher auf interne Dienste zuzugreifen oder den gesamten Internetverkehr über den eigenen Server zu leiten. Im Vergleich zu OpenVPN ist die Konfiguration deutlich kürzer und die Performance höher.

Voraussetzungen

  • Ubuntu 20.04+ oder Debian 11+ (WireGuard-Unterstützung im Kernel)
  • sudo-/Root-Zugriff auf den Server
  • Ein freier UDP-Port (Standard: 51820)

WireGuard installieren

bash
sudo apt update
sudo apt install -y wireguard

Schlüsselpaar generieren

Auf dem Server ein Schlüsselpaar erzeugen (privater Schlüssel bleibt geheim):

bash
wg genkey | sudo tee /etc/wireguard/server_private.key | wg pubkey | sudo tee /etc/wireguard/server_public.key
sudo chmod 600 /etc/wireguard/server_private.key

Private Schlüssel niemals weitergeben oder in ein Repository committen — wer den privaten Schlüssel hat, kann sich als dieses Gerät ausgeben.

Server-Konfiguration

Datei /etc/wireguard/wg0.conf anlegen (Platzhalter <server_private_key> durch den Inhalt von server_private.key ersetzen, <client_public_key> kommt aus dem nächsten Abschnitt):

ini
[Interface]
Address = 10.8.0.1/24
ListenPort = 51820
PrivateKey = <server_private_key>
SaveConfig = true

[Peer]
PublicKey = <client_public_key>
AllowedIPs = 10.8.0.2/32

IP-Forwarding aktivieren

Damit der Server Datenverkehr zwischen VPN und Internet weiterleiten kann:

bash
echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

Firewall-Port freigeben

bash
sudo ufw allow 51820/udp

VPN starten

bash
sudo systemctl enable --now wg-quick@wg0

Status und verbundene Peers anzeigen:

bash
sudo wg show

Client-Konfiguration

Auf dem Client (z. B. Laptop) ebenfalls ein Schlüsselpaar erzeugen, dann eine Konfigurationsdatei anlegen:

bash
wg genkey | tee client_private.key | wg pubkey > client_public.key
ini
[Interface]
Address = 10.8.0.2/24
PrivateKey = <client_private_key>
DNS = 1.1.1.1

[Peer]
PublicKey = <server_public_key>
Endpoint = server-ip:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25

Den öffentlichen Schlüssel des Clients (client_public.key) anschließend in die Server-Konfiguration (wg0.conf) als PublicKey unter [Peer] eintragen und den Dienst neu laden:

bash
sudo wg-quick down wg0
sudo wg-quick up wg0

Nützliche Befehle

WireGuard-Referenz

Verbundene Peers + Datenverkehr anzeigen
sudo wg show
Dienst-Status anzeigen
sudo systemctl status wg-quick@wg0
VPN-Interface stoppen
sudo wg-quick down wg0
VPN-Interface starten
sudo wg-quick up wg0

VPN aktiv

Server und Client sind verbunden — testen mit einem Ping auf 10.8.0.1 vom Client aus. Für mehrere Clients einfach weitere [Peer]-Blöcke mit je eigenem Schlüsselpaar und fortlaufender AllowedIPs-Adresse (10.8.0.3/32, .4/32, …) ergänzen.

Schlüssel generiertIP-Forwarding aktivClient verbunden