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
51820ist 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:
```bash mkdir ~/wireguard-setup cd ~/wireguard-setup
Lege dort alle drei Skripte ab
```
2. WireGuard installieren
``bash sudo bash wireguard_base_setup.sh ``
Dieses Skript:
- installiert WireGuard
- legt
/etc/wireguard/und/etc/wireguard/keys/an
3. Schlüssel erzeugen
``bash sudo bash wireguard_generate_keys.sh ``
Das Skript erzeugt:
private.keyundpublic.keyunter/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
``bash 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→ ergibt10.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.confmit allen Peers - aktiviert das VPN direkt mit
wg-quick up wg0
Verbindung testen
Von srv-web:
``bash ping 10.10.0.2 # ping srv-db ping 10.10.0.3 # ping srv-file ``
Status anzeigen:
``bash sudo wg show ``
Beispielausgabe:
`` peer: ``
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
``bash sudo wg-quick down wg0 sudo rm /etc/wireguard/wg0.conf sudo rm -r /etc/wireguard/keys/ ``
Oder automatisiert mit:
``bash 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
- https://www.wireguard.com/
man wgman wg-quick