open-how2 – Entdecke. Verstehe. Nutze.
Veröffentlicht am
ChatGPT-Biografie

WireGuard-VPN mit mehreren Servern einrichten – Schritt-für-Schritt-Anleitung

Autor
WireGuard-VPN mit mehreren Servern einrichten – Schritt-für-Schritt-Anleitung

Mit WireGuard kannst du ein sicheres, performantes VPN zwischen mehreren Servern einrichten – ideal, um Dienste wie Qdrant, Ollama oder Web-APIs intern zu verbinden.

Ziel

Wir verbinden drei Server über ein internes VPN:

Servername Rolle VPN-IP Öffentliche IP/Domain
srv-web Web/Bots 10.10.0.1 web.example.com
srv-db Qdrant 10.10.0.2 db.example.com
srv-file Ollama 10.10.0.3 file.example.com

Verwendete Skripte

Skriptname Funktion
wireguard_base_setup.sh Installiert WireGuard, legt Verzeichnisse an
wireguard_generate_keys.sh Erstellt privates/öffentliches Schlüsselpaar
wireguard_generate_wg-config.sh Generiert wg0.conf inklusive aller Peers

Voraussetzungen

  • Debian- oder Ubuntu-Server mit Root-Zugriff (SSH)
  • Jeder Server hat eine öffentliche IP oder DNS
  • UDP-Port 51820 ist auf allen Servern erreichbar
  • Du planst die VPN-IP-Adressen (z. B. 10.10.0.1, 10.10.0.2, ...)

Vorbereitung: Auf jedem Server ausführen

1. Skripte übertragen

Erstelle auf jedem Server einen Ordner und kopiere alle drei Skripte dorthin:

mkdir ~/wireguard-setup
cd ~/wireguard-setup
# Lege dort alle drei Skripte ab

2. WireGuard installieren

sudo bash wireguard_base_setup.sh

Dieses Skript:

  • installiert WireGuard
  • legt /etc/wireguard/ und /etc/wireguard/keys/ an

3. Schlüssel erzeugen

sudo bash wireguard_generate_keys.sh

Das Skript erzeugt:

  • private.key und public.key unter /etc/wireguard/keys/
  • zeigt dir den Public Key → unbedingt notieren

Du brauchst diesen Public Key für die Konfiguration der anderen Server.

4. VPN-Konfiguration erstellen

sudo bash wireguard_generate_wg-config.sh

Du wirst gefragt nach:

  • Anzahl der Server im VPN (z. B. 3)
  • VPN-IP-Präfix (z. B. 10.10.0.)
  • Hostanteil dieses Servers (z. B. 1 → ergibt 10.10.0.1)
  • Öffentliche IP/DNS und Public Keys der anderen Server

Das Skript:

  • liest automatisch den eigenen Private Key ein
  • generiert eine vollständige wg0.conf mit allen Peers
  • aktiviert das VPN direkt mit wg-quick up wg0

Verbindung testen

Von srv-web:

ping 10.10.0.2   # ping srv-db
ping 10.10.0.3   # ping srv-file

Status anzeigen:

sudo wg show

Beispielausgabe:

peer: <public-key>
  endpoint: db.example.com:51820
  latest handshake: vor 5 Sekunden
  transfer: 10.2 KiB received, 12.5 KiB sent

Fehlerbehebung

Problem Mögliche Ursache
ping funktioniert nicht VPN nicht aktiv? Firewall blockiert? IP falsch?
Kein Handshake Falsche Public Keys? Port 51820 nicht offen?
Nur ein Peer verbunden Auf den anderen Servern fehlt Konfiguration
Kein Traffic Kein Dienst aktiv oder keine Datenübertragung

Optional: Konfiguration löschen

sudo wg-quick down wg0
sudo rm /etc/wireguard/wg0.conf
sudo rm -r /etc/wireguard/keys/

Oder automatisiert mit:

sudo bash wireguard_config_delete.sh

Ergebnis

Nach erfolgreichem Setup:

  • Alle Server sind über interne VPN-IP (10.10.0.x) verbunden
  • Dienste wie Qdrant, Ollama und Bots kommunizieren sicher intern
  • Dein System ist bereit für ein produktives internes Netzwerk

Weiterführende Links