WireGuard VPN-Server aufsetzen

René Wittenberg
René Wittenberg · Chief Technology Officer
Updated on 7. März 2025

WireGuard ist ein modernes, schnelles und sicheres VPN-Protokoll, das einfacher zu konfigurieren ist als OpenVPN oder IPsec. In diesem Tutorial zeigen wir, wie man einen WireGuard-Server unter Linux installiert und konfiguriert.


Voraussetzungen


  • Ein Server mit einer öffentlichen IP-Adresse (z. B. Rootserver - Small)
  • Ein Linux-basiertes Betriebssystem (Debian, Ubuntu, CentOS)
  • Root-Zugriff oder ein Benutzer mit sudo-Rechten
  • Ein Client (PC oder Smartphone), der sich mit dem VPN verbinden soll


WireGuard Installation


Debian/Ubuntu

sudo apt update && sudo apt install wireguard

CentOS/RHEL


sudo yum install epel-release elrepo-release -y
sudo yum install kmod-wireguard wireguard-tools -y

Nach der Installation können wir mit der Einrichtung des Servers beginnen.


Schlüsselpaare generieren


WireGuard verwendet Public/Private-Key-Paare für die Authentifizierung.


mkdir -p /etc/wireguard && cd /etc/wireguard
umask 077
wg genkey | tee privatekey | wg pubkey > publickey

  • privatekey: Wird später für die Server-Konfiguration benötigt.
  • publickey: Wird von den Clients zur Authentifizierung des Servers benötigt


Konfiguration des WireGuard-Servers


Erstelle die Konfigurationsdatei für das Interface:

nano /etc/wireguard/wg0.conf

Füge die folgende Konfiguration hinzu (ersetze <SERVER_PRIVATE_KEY> und <SERVER_PUBLIC_IP> entsprechend):

[Interface]
Address = 10.0.0.1/24
ListenPort = 51820
PrivateKey = <SERVER_PRIVATE_KEY>
SaveConfig = true
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


  • Address: Die interne VPN-IP-Adresse des Servers.
  • ListenPort: Der Port, auf dem WireGuard lauscht.
  • PrivateKey: Der zuvor generierte private Schlüssel.
  • PostUp & PostDown: Regeln für NAT, damit Clients über den Server ins Internet können.


Aktiviere die IP-Weiterleitung:

echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
sysctl -p


WireGuard-Dienst starten


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


Überprüfe den Status:

systemctl status wg-quick@wg0


Falls Fehler auftreten, können die Logs eingesehen werden:

journalctl -xe -u wg-quick@wg0


Client-Konfiguration


Jeder Client benötigt ein eigenes Schlüssel-Paar.


Schlüssel generieren

Auf dem Client:

wg genkey | tee privatekey | wg pubkey > publickey


Füge den Client zum Server hinzu:

wg set wg0 peer <CLIENT_PUBLIC_KEY> allowed-ips 10.0.0.2/32


Speichere die Änderungen:

wg show


Client-Konfigurationsdatei erstellen


Auf dem Client erstelle die Datei wg-client.conf:

[Interface]
PrivateKey = <CLIENT_PRIVATE_KEY>
Address = 10.0.0.2/24
DNS = 8.8.8.8

[Peer]
PublicKey = <SERVER_PUBLIC_KEY>
Endpoint = <SERVER_PUBLIC_IP>:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25


Lade die Konfiguration mit:

wg-quick up wg-client.conf

Überprüfe die Verbindung:

ping 10.0.0.1


Firewall-Regeln für WireGuardFirewall-Regeln für WireGuard


Falls ufw verwendet wird:

ufw allow 51820/udp

Für iptables:

iptables -A INPUT -p udp --dport 51820 -j ACCEPT
iptables -A FORWARD -i wg0 -j ACCEPT


Um diese dauerhaft zu speichern:

iptables-save > /etc/iptables/rules.v4


Automatischer Start bei Boot


Damit WireGuard beim Neustart automatisch startet:

systemctl enable wg-quick@wg0


Fazit


Dein WireGuard-Server ist nun eingerichtet und einsatzbereit. Clients können sich verbinden und sicher über den VPN-Tunnel kommunizieren. Falls Probleme auftreten, hilft ein Blick in die Logs (wg show oder journalctl -xe -u wg-quick@wg0).


From René Wittenberg | 7. März 2025 | Tags: VPNOpenVPN

Have you found a solution? Perfect!

If you are looking for more: We offer powerful root servers, game servers, web hosting, TeamSpeak servers and reseller options.

Find out more about our products