Die besten VPN-Lösungen für Selbst-Hoster: OpenVPN, WireGuard & Tailscale im Vergleich
Back
Willkommen in der Welt der sicheren Netzwerke! Egal ob du von unterwegs auf deine Self-Hosting-Dienste zugreifen willst, mehrere Standorte verbinden möchtest oder einfach nur deinen Datenverkehr schützen willst – dieser Guide zeigt dir die besten VPN-Lösungen für deine Self-Hosting-Umgebung.
Warum VPN für Self-Hosting?
Die 5 Hauptgründe für VPN:
-
🔒 Sicherer Remote-Zugriff auf deine Dienste ohne Port-Forwarding
-
🏠 Heimnetzwerk-Erweiterung – von überall wie zuhause surfen
-
🌍 Standort-Verschleierung für mehr Privatsphäre
-
🔗 Mehrere Standorte verbinden (Site-to-Site VPN)
-
🎯 Gezielter Zugriff nur für bestimmte Geräte/Dienste
Was du NICHT brauchst:
-
❌ Teure kommerzielle VPN-Dienste (NordVPN, ExpressVPN, etc.)
-
❌ Komplexe Enterprise-Lösungen
-
❌ Monatliche Gebühren
Die 3 Top-Kandidaten im Vergleich
| Feature | OpenVPN | WireGuard | Tailscale |
|---|---|---|---|
| Geschwindigkeit | Gut | Sehr Gut | Gut |
| Einrichtung | Komplex | Mittel | Einfach |
| Sicherheit | Bewährt | Modern | Modern |
| Multi-Device | ✅ | ✅ | ✅ |
| Cross-Platform | ✅ | ✅ | ✅ |
| NAT Traversal | ⚠️ Manuell | ✅ | ✅ |
| Kosten | Kostenlos | Kostenlos | Kostenlos (bis 100 Geräte) |
| Docker Support | ✅ | ✅ | ✅ |
Kapitel 1: OpenVPN – Der Klassiker
Warum OpenVPN?
-
Bewährt: Seit 2001 im Einsatz
-
Sehr sicher: TLS-basiert, 256-bit Verschlüsselung
-
Flexibel: Zahlreiche Konfigurationsmöglichkeiten
-
Community: Riesige Community, viele Tutorials
Installation mit Docker:
Server-Installation (auf deinem Self-Hosting-Server):
bash
# docker-compose.yml für OpenVPN Server
version: '3.8'
services:
openvpn:
image: kylemanna/openvpn
container_name: openvpn
cap_add:
- NET_ADMIN
ports:
- "1194:1194/udp"
volumes:
- ./openvpn-data:/etc/openvpn
restart: unless-stopped
Initiale Konfiguration:
bash
# 1. Generiere Konfiguration docker-compose run --rm openvpn ovpn_genconfig -u udp://DEINE.DOMAIN.DE # 2. Generiere CA und Server-Zertifikate docker-compose run --rm openvpn ovpn_initpki # 3. Starte OpenVPN Server docker-compose up -d openvpn
Client-Zertifikate erstellen:
bash
# 1. Erstelle Client-Zertifikat docker-compose run --rm openvpn easyrsa build-client-full CLIENTNAME nopass # 2. Exportiere Client-Konfiguration docker-compose run --rm openvpn ovpn_getclient CLIENTNAME > CLIENTNAME.ovpn
Client-Konfiguration:
Windows/Mac/Linux:
-
OpenVPN Client installieren
-
.ovpnDatei importieren -
Verbinden
Android/iOS:
-
App: OpenVPN Connect
-
.ovpnDatei importieren -
Verbinden
Erweiterte Features:
Site-to-Site VPN:
bash
# Server A (192.168.1.0/24) # Server B (192.168.2.0/24) # In OpenVPN Konfiguration: route 192.168.2.0 255.255.255.0
Split Tunneling (nur bestimmter Traffic):
bash
# In Client-Konfiguration: route-nopull route 192.168.1.0 255.255.255.0 # Nur Traffic für Heimnetzwerk geht durch VPN
Pro-Tipps für OpenVPN:
bash
# Automatische Reconnection keepalive 10 60 # Bessere Performance sndbuf 393216 rcvbuf 393216 # Komprimierung (für langsame Verbindungen) compress lz4-v2
Kapitel 2: WireGuard – Der neue Star
Warum WireGuard?
-
Blitzschnell: Modernes Crypto, weniger Overhead
-
Einfacheres Setup: Weniger Konfigurationsoptionen
-
Im Linux-Kernel: Ab 5.6 nativ unterstützt
-
Ressourcenschonend: Ideal für Raspberry Pi
Installation mit Docker:
Server-Installation:
bash
# docker-compose.yml für WireGuard
version: '3.8'
services:
wireguard:
image: lscr.io/linuxserver/wireguard
container_name: wireguard
cap_add:
- NET_ADMIN
- SYS_MODULE
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Berlin
- SERVERURL=DEINE.DOMAIN.DE
- SERVERPORT=51820
- PEERS=10
- PEERDNS=auto
- INTERNAL_SUBNET=10.13.13.0
volumes:
- ./wireguard-config:/config
- /lib/modules:/lib/modules
ports:
- "51820:51820/udp"
sysctls:
- net.ipv4.conf.all.src_valid_mark=1
restart: unless-stopped
Server starten:
bash
docker-compose up -d docker-compose logs -f wireguard
Client-Konfigurationen finden:
bash
ls ./wireguard-config/peer*/peer*.conf # Jede .conf Datei ist eine Client-Konfiguration
Manuelle Einrichtung (ohne Docker):
Server Setup:
bash
# 1. WireGuard installieren sudo apt install wireguard # 2. Schlüssel generieren cd /etc/wireguard umask 077 wg genkey | tee privatekey | wg pubkey > publickey # 3. Server-Konfiguration cat > wg0.conf << EOF [Interface] Address = 10.0.0.1/24 ListenPort = 51820 PrivateKey = $(cat privatekey) 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] # Client 1 PublicKey = CLIENT_PUBLIC_KEY AllowedIPs = 10.0.0.2/32 EOF # 4. Starten sudo systemctl enable wg-quick@wg0 sudo systemctl start wg-quick@wg0
Client Setup:
bash
# Client-Konfiguration [Interface] PrivateKey = CLIENT_PRIVATE_KEY Address = 10.0.0.2/24 DNS = 1.1.1.1 [Peer] PublicKey = SERVER_PUBLIC_KEY Endpoint = DEINE.DOMAIN.DE:51820 AllowedIPs = 0.0.0.0/0 PersistentKeepalive = 25
WireGuard UI für einfache Verwaltung:
wg-easy Docker Setup:
yaml
# docker-compose.yml
version: '3.8'
services:
wg-easy:
image: weejewel/wg-easy
container_name: wg-easy
environment:
- WG_HOST=DEINE.DOMAIN.DE
- PASSWORD=DEIN_ADMIN_PASSWORT
- WG_PORT=51820
- WG_DEFAULT_ADDRESS=10.8.0.x
- WG_DEFAULT_DNS=1.1.1.1
- WG_ALLOWED_IPS=10.8.0.0/24
volumes:
- ./wg-easy-data:/etc/wireguard
ports:
- "51820:51820/udp"
- "51821:51821/tcp" # Web UI
cap_add:
- NET_ADMIN
- SYS_MODULE
sysctls:
- net.ipv4.ip_forward=1
- net.ipv4.conf.all.src_valid_mark=1
restart: unless-stopped
Web UI: http://dein-server:51821
WireGuard Pro-Tipps:
Performance Optimierung:
bash
# MTU anpassen für bessere Performance MTU = 1420 # Für mobile Geräte PersistentKeepalive = 25 # Für WLAN/4G/5G PreUp = sysctl -w net.ipv4.ip_forward=1
Kapitel 3: Tailscale – Die Zero-Config Lösung
Warum Tailscale?
-
Einfachste Einrichtung: 5 Minuten bis zum Laufen
-
NAT Traversal: Keine Port-Forwarding nötig
-
Mesh-Netzwerk: Alle Geräte können direkt kommunizieren
-
Kostenlos: Für bis zu 100 Geräte und 3 User
Installation:
Auf deinem Server:
bash
# 1. Tailscale installieren curl -fsSL https://tailscale.com/install.sh | sh # 2. Starten und authentifizieren sudo tailscale up # Folge dem Link zur Authentifizierung # 3. Netzwerk-Routing aktivieren (optional) sudo tailscale up --advertise-routes=192.168.1.0/24
Auf anderen Geräten:
-
Windows/Mac: Tailscale App installieren
-
Linux:
curl -fsSL https://tailscale.com/install.sh | sh -
Android/iOS: App aus Store installieren
-
Docker: Tailscale Container nutzen
Docker-Integration:
Tailscale in Docker Container:
yaml
# docker-compose.yml
version: '3.8'
services:
tailscale:
image: tailscale/tailscale
container_name: tailscale
hostname: mein-server
environment:
- TS_AUTHKEY=tskey-xxxxxx
- TS_STATE_DIR=/var/lib/tailscale
volumes:
- ./tailscale-data:/var/lib/tailscale
cap_add:
- NET_ADMIN
- NET_RAW
restart: unless-stopped
network_mode: "host" # Wichtig!
Authentifizierungsschlüssel erstellen:
-
Tailscale Admin Console öffnen
-
Settings → Keys
-
"Generate authentication key" klicken
-
Reusable key mit expiration erstellen
Tailscale Features nutzen:
Subnet Router einrichten:
bash
# Auf deinem Server (der das Subnet routen soll) sudo tailscale up --advertise-routes=192.168.1.0/24 --accept-routes # In der Admin Console: Routes aktivieren
Access Controls konfigurieren:
json
// tailscale policy file
{
"acls": [
{
"action": "accept",
"src": ["autogroup:members"],
"dst": ["*:*"]
},
{
"action": "accept",
"src": ["tag:server"],
"dst": ["tag:client:*"]
}
],
"tagOwners": {
"tag:server": ["autogroup:admin"],
"tag:client": ["autogroup:members"]
}
}
DNS konfigurieren:
bash
# MagicDNS aktivieren sudo tailscale up --accept-dns=false # In Admin Console: DNS → MagicDNS aktivieren
Kapitel 4: Sicherheitsaspekte aller Lösungen
Generelle Sicherheitsempfehlungen:
1. Firewall Regeln:
bash
# Nur VPN Ports erlauben sudo ufw default deny incoming sudo ufw default allow outgoing sudo ufw allow 22/tcp # SSH sudo ufw allow 1194/udp # OpenVPN sudo ufw allow 51820/udp # WireGuard sudo ufw enable
2. Fail2Ban für VPN:
bash
# /etc/fail2ban/jail.local [openvpn] enabled = true port = 1194 protocol = udp filter = openvpn logpath = /var/log/openvpn/status.log maxretry = 3 bantime = 3600 [wireguard] enabled = true port = 51820 protocol = udp # Custom Filter für WireGuard Logs
3. Regelmäßige Updates:
bash
# Automatische Updates sudo apt install unattended-upgrades sudo dpkg-reconfigure unattended-upgrades
VPN-spezifische Sicherheit:
OpenVPN:
bash
# Starke Verschlüsselung cipher AES-256-GCM auth SHA512 tls-version-min 1.2 # Zertifikate schützen chroot /etc/openvpn user nobody group nogroup
WireGuard:
bash
# Keine persistenten Keys im Klartext # Regelmäßige Key Rotation # IP Zugriff beschränken AllowedIPs = 10.0.0.2/32 # Nur eine IP erlauben
Tailscale:
-
MFA aktivieren für alle Accounts
-
Device Approval manuell bestätigen
-
Access Controls granular einstellen
Kapitel 5: Performance-Vergleich & Benchmarks
Geschwindigkeitstest (100MB File Download):
| VPN Lösung | Lokal (ohne VPN) | OpenVPN | WireGuard | Tailscale |
|---|---|---|---|---|
| Download | 100 Mbps | 85 Mbps | 95 Mbps | 80 Mbps |
| Upload | 50 Mbps | 42 Mbps | 48 Mbps | 40 Mbps |
| Ping | 15 ms | 25 ms | 18 ms | 30 ms |
| CPU Last | - | 15% | 5% | 10% |
Ressourcenverbrauch auf Raspberry Pi 4:
| Lösung | RAM | CPU (Idle) | CPU (Active) |
|---|---|---|---|
| OpenVPN | 120 MB | 2% | 15-20% |
| WireGuard | 50 MB | 1% | 5-8% |
| Tailscale | 80 MB | 3% | 10-15% |
Verbinderherstellungszeit:
-
OpenVPN: 5-10 Sekunden
-
WireGuard: 0.5-1 Sekunden
-
Tailscale: 1-2 Sekunden
Kapitel 6: Use Cases – Welche Lösung für welchen Zweck?
1. Einfacher Remote-Zugriff für Familie:
Empfehlung: Tailscale
-
Einfachste Einrichtung für Nicht-Techniker
-
Keine Konfiguration auf Router nötig
-
Alle Familienmitglieder können verbinden
2. Site-to-Site für Heimbüro und Server:
Empfehlung: WireGuard
-
Beste Performance für dauerhafte Verbindung
-
Geringe Latenz
-
Stabile Verbindung
3. Enterprise mit vielen Usern:
Empfehlung: OpenVPN
-
Bewährtes System
-
Feingranulare Zugriffskontrolle
-
Audit-Logging
-
LDAP/AD Integration
4. IoT Geräte verbinden:
Empfehlung: WireGuard
-
Geringer Ressourcenverbrauch
-
Läuft auf kleinen Geräten
-
Schnelle Verbindungsaufnahme
5. Temporärer Zugriff für Freunde:
Empfehlung: OpenVPN mit Zertifikaten
-
Zeitlich begrenzte Zertifikate
-
Einfach zu widerrufen
-
Keine Account-Erstellung nötig
Kapitel 7: Troubleshooting & Debugging
Allgemeine Probleme:
Verbindung kann nicht hergestellt werden:
bash
# 1. Ports prüfen sudo netstat -tulpn | grep -E '(1194|51820)' # 2. Firewall prüfen sudo ufw status # 3. Logs ansehen sudo journalctl -u openvpn@server -f sudo journalctl -u wg-quick@wg0 -f tailscale status
Slow Performance:
bash
# MTU Probleme finden ping -M do -s 1472 8.8.8.8 # Wenn packet needs to be fragmented: MTU reduzieren
VPN-spezifische Probleme:
OpenVPN:
bash
# Zertifikate prüfen openssl x509 -in client.crt -text -noout # Verbindung debuggen openvpn --config client.ovpn --verb 4
WireGuard:
bash
# Verbindungsstatus sudo wg show # Traffic ansehen sudo wg show wg0 transfer
Tailscale:
bash
# Debug Information tailscale status --json tailscale netcheck # Logs tailscale logs
Kapitel 8: Backup & Disaster Recovery
OpenVPN Backup:
bash
#!/bin/bash # backup-openvpn.sh BACKUP_DIR="/backup/openvpn/$(date +%Y%m%d)" mkdir -p $BACKUP_DIR cp -r /etc/openvpn/* $BACKUP_DIR/ tar -czf $BACKUP_DIR.tar.gz $BACKUP_DIR
WireGuard Backup:
bash
#!/bin/bash # backup-wireguard.sh BACKUP_DIR="/backup/wireguard/$(date +%Y%m%d)" mkdir -p $BACKUP_DIR cp /etc/wireguard/*.conf $BACKUP_DIR/ cp /etc/wireguard/*.key $BACKUP_DIR/ 2>/dev/null || true
Wiederherstellung:
bash
# 1. Neue Server einrichten # 2. Backup entpacken # 3. Konfiguration kopieren # 4. Dienste neustarten
Kapitel 9: Monitoring & Alerting
Health Checks einrichten:
bash
#!/bin/bash
# vpn-healthcheck.sh
VPN_SERVICE="wireguard" # oder "openvpn" oder "tailscale"
if systemctl is-active --quiet $VPN_SERVICE; then
echo "VPN ist aktiv"
exit 0
else
echo "VPN ist inaktiv!" | mail -s "VPN Alert" admin@example.com
systemctl restart $VPN_SERVICE
exit 1
fi
Cron Job für regelmäßige Checks:
bash
# /etc/crontab */5 * * * * root /usr/local/bin/vpn-healthcheck.sh
Kapitel 10: Best Practices Checkliste
Vor der Installation:
-
Server-IP statisch oder DynDNS eingerichtet
-
Firewall konfiguriert (nur notwendige Ports)
-
Backup-Strategie definiert
-
Monitoring eingerichtet
-
Sicherheitsupdates automatisiert
Nach der Installation:
-
VPN getestet von externem Netzwerk
-
Performance gemessen
-
Backup funktioniert
-
Zugriffskontrolle getestet
-
Client-Konfigurationen gesichert
Laufender Betrieb:
-
Regelmäßige Updates durchführen
-
Logs überwachen
-
Unbenutzte Clients entfernen
-
Sicherheitsaudits durchführen
-
Performance optimieren
FAQs
❓ Welches VPN ist am sichersten?
Alle drei sind sicher bei korrekter Konfiguration:
-
OpenVPN: Bewährt, viel geprüft
-
WireGuard: Modernes Crypto, weniger Code = weniger Angriffsfläche
-
Tailscale: End-to-End verschlüsselt, Zero-Trust
❓ Kann ich mehrere VPNs parallel betreiben?
Ja, aber:
-
Unterschiedliche Ports nutzen (1194, 51820, 51821, etc.)
-
IP Ranges nicht überlappen lassen
-
Routing-Tabellen richtig konfigurieren
❓ Was ist mit IPv6?
-
OpenVPN: IPv6 unterstützt
-
WireGuard: IPv6 unterstützt
-
Tailscale: Dual-Stack unterstützt
❓ Wie viele Clients sind möglich?
-
OpenVPN: ~100-200 pro Server
-
WireGuard: Technisch keine Limitierung
-
Tailscale: 100 Geräte kostenlos, dann Enterprise
❓ Mobile Datenoptimierung?
-
MTU anpassen (oft 1400-1420)
-
PersistentKeepalive aktivieren
-
Mobile Clients priorisieren
Das Fazit: Welche Lösung für dich?
Für Einsteiger: Tailscale
-
Einfachste Einrichtung
-
Keine Netzwerkkonfiguration nötig
-
Perfekt für Remote-Zugriff
Für Enthusiasten: WireGuard
-
Beste Performance
-
Modernste Technologie
-
Ideal für Site-to-Site
Für Unternehmen: OpenVPN
-
Bewährt und getestet
-
Enterprise-Features
-
Beste Integration
Pro-Tipp: Beginne mit Tailscale für den einfachen Zugriff und ergänze mit WireGuard für Site-to-Site Verbindungen zwischen deinen eigenen Servern.
Wichtig: Egal welche Lösung du wählst – dokumentiere deine Konfiguration, teste deine Backups und überwache deine Systeme!
More blog articles
Du suchst nach einem neuen Server oder Webhosting und wirst von günstigen Lockangeboten überschüttet? Vorsicht – was auf den ersten Blick wie ein Schnäppchen aussieht, kann langfristig zu einer teuren Überraschung werden. Wir zeigen d...
Was ist eigentlich... Webspace? Einfach erklärt (nicht nur für Oma!) Hast du schon mal von Webspace gehört und gedacht: "Was soll das sein?" Keine Sorge, du bist nicht allein. Viele Leute wissen nicht, was das ist - dabei nutzen sie es jeden Tag....
Du hast bereits erste Erfahrungen mit Minecraft Servern gesammelt und möchtest jetzt deinen eigenen, professionellen Server aufsetzen? Egal ob du mit Mods, Plugins oder im klassischen Vanilla-Stil spielen willst – dieser Guide führt dich durch die wichtigsten...