
Richten Sie Ihren eigenen OpenVPN-Server auf Debian, Ubuntu, Fedora, CentOS, Arch Linux und mehr ein.
OpenVPN-Installer für Debian, Ubuntu, Fedora, openSUSE, CentOS, Amazon Linux, Arch Linux, Oracle Linux, Rocky Linux und AlmaLinux.
Dieses Skript ermöglicht es Ihnen, in wenigen Sekunden einen eigenen sicheren VPN-Server einzurichten und zu verwalten.
Dieses Skript ist dafür gedacht, auf Ihrem eigenen Server ausgeführt zu werden – sei es ein VPS, ein dedizierter Server oder sogar ein Computer zu Hause.
Nach der Einrichtung können Sie Client-Konfigurationsdateien für jedes Gerät erstellen, das Sie verbinden möchten.
Jeder Client kann seinen Internetverkehr über den Server leiten, vollständig verschlüsselt.```mermaid graph LR A[Phone] -->|Encrypted| VPN B[Laptop] -->|Encrypted| VPN C[Computer] -->|Encrypted| VPN
VPN[OpenVPN Server]
VPN --> I[Internet]
## Warum OpenVPN?
OpenVPN war der De-facto-Standard für Open-Source-VPNs, als dieses Skript erstellt wurde. WireGuard kam später und ist für die meisten Anwendungsfälle einfacher und schneller. Schauen Sie sich [wireguard-install](https://github.com/angristan/wireguard-install) an.
Allerdings ist OpenVPN nach wie vor sinnvoll, wenn Sie Folgendes benötigen:
- **TCP-Unterstützung**: funktioniert in restriktiven Umgebungen, in denen UDP blockiert ist (Unternehmensnetzwerke, Flughäfen, Hotels usw.)
- **Passwortgeschützte private Schlüssel**: WireGuard-Konfigurationen speichern den privaten Schlüssel im Klartext
- **Legacy-Kompatibilität**: Clients sind für so ziemlich jede Plattform verfügbar, einschließlich älterer Systeme
## Funktionen
- Installiert und konfiguriert einen sofort einsatzbereiten OpenVPN-Server
- CLI-Schnittstelle für Automatisierung und Skripting (nicht-interaktiver Modus mit JSON-Ausgabe)
- Zertifikatsverlängerung für sowohl Client- als auch Serverzertifikate
- Auflistung und Überwachung verbundener Clients
- Sofortige Client-Trennung bei Zertifikatswiderruf (über Management-Schnittstelle)
- Verwendet nach Möglichkeit [offizielle OpenVPN-Repositorien](https://community.openvpn.net/openvpn/wiki/OpenvpnSoftwareRepos) für die neuesten stabilen Versionen
- Firewall-Regeln und Weiterleitung werden nahtlos verwaltet (native firewalld- und nftables-Unterstützung, iptables-Fallback)
- Konfigurierbare VPN-Subnetze (IPv4: Standard `10.8.0.0/24`, IPv6: Standard `fd42:42:42:42::/112`)
- Konfigurierbare Tunnel-MTU (Standard: `1500`)
- Bei Bedarf kann das Skript OpenVPN sauber entfernen, einschließlich Konfiguration und Firewall-Regeln
- Anpassbare Verschlüsselungseinstellungen, verbesserte Standardeinstellungen (siehe [Sicherheit und Verschlüsselung](#security-and-encryption) unten)
- Nutzung der neuesten OpenVPN-Funktionen, wenn verfügbar (siehe [Sicherheit und Verschlüsselung](#security-and-encryption) unten)
- Verschiedene DNS-Resolver, die an die Clients übertragen werden können
- Möglichkeit, einen selbst gehosteten Resolver mit Unbound zu verwenden (unterstützt bereits vorhandene Unbound-Installationen)
- Wahl zwischen TCP und UDP
- Flexible IPv4/IPv6-Unterstützung:
- IPv4- oder IPv6-Server-Endpunkt (wie Clients sich verbinden)
- Nur-IPv4, Nur-IPv6 oder Dual-Stack-Clients (VPN-Adressierung und Internetzugriff)
- Alle Kombinationen werden unterstützt: 4→4, 4→4/6, 4→6, 6→4, 6→6, 6→4/6
- Automatische Leckverhinderung: blockiert unerwünschte Protokolle in Einzel-Stack-Modi
- Unprivilegierter Modus: Ausführung als `nobody`/`nogroup`
- Blockieren von DNS-Lecks unter Windows 10
- Zufälliger Server-Zertifikatsname
- Möglichkeit, Clients mit einem Passwort zu schützen (private Schlüsselverschlüsselung)
- Option, mehreren Geräten die gleichzeitige Nutzung desselben Client-Profils zu erlauben (deaktiviert permanente IP-Adressen)
- **Peer-Fingerabdruck-Authentifizierung** (OpenVPN 2.6+): Vereinfachte WireGuard-ähnliche Authentifizierung ohne CA
- Viele weitere Kleinigkeiten!
## Kompatibilität
Das Skript unterstützt die folgenden Linux-Distributionen:
| | Unterstützung |
| ------------------- | ------- |
| AlmaLinux >= 8 | ✅ 🤖 |
| Amazon Linux 2023 | ✅ 🤖 |
| Arch Linux | ✅ 🤖 |
| CentOS Stream >= 8 | ✅ 🤖 |
| Debian >= 11 | ✅ 🤖 |
| Fedora >= 40 | ✅ 🤖 |
| openSUSE Leap >= 16 | ✅ 🤖 |
| openSUSE Tumbleweed | ✅ 🤖 |
| Oracle Linux >= 8 | ✅ 🤖 |
| Rocky Linux >= 8 | ✅ 🤖 |
| Ubuntu >= 18.04 | ✅ 🤖 |
Zu beachten:
- Das Skript wird nur regelmäßig gegen die mit 🤖 markierten Distributionen getestet.
- Es wird nur auf der `amd64`-Architektur getestet.
- Das Skript erfordert `systemd`.
### Empfohlene Anbieter
- [Vultr](https://umami.stanislas.cloud/q/1HH9Thp8i): Weltweite Standorte, IPv6-Unterstützung, ab \$2,5/Monat
- [Hetzner](https://umami.stanislas.cloud/q/HdzaOJWq7): Weltweite Standorte, IPv6, 20 TB Traffic, ab €3,59/Monat
- [Digital Ocean](https://umami.stanislas.cloud/q/sEVh1l79B): Weltweite Standorte, IPv6-Unterstützung, ab \$4/Monat
## Verwendung
Laden Sie zuerst das Skript auf Ihren Server herunter und machen Sie es ausführbar:```bash
curl -O https://raw.githubusercontent.com/angristan/openvpn-install/master/openvpn-install.sh
chmod +x openvpn-install.sh
Sie müssen das Skript als root ausführen und das TUN-Modul aktiviert haben.
Der einfachste Weg, um loszulegen, ist das interaktive Menü:```bash ./openvpn-install.sh interactive
Dies führt Sie durch die Installation und das Client-Management.
In Ihrem Home-Verzeichnis finden Sie `.ovpn`-Dateien. Dies sind die Client-Konfigurationsdateien. Laden Sie sie von Ihrem Server herunter (z. B. mit `scp`) und verbinden Sie sich mit Ihrem bevorzugten OpenVPN-Client.
Wenn Sie Fragen haben, schauen Sie zuerst in die [FAQ](#faq). Und wenn Sie Hilfe benötigen, können Sie eine [Diskussion](https://github.com/angristan/openvpn-install/discussions) eröffnen. Bitte durchsuchen Sie zuerst vorhandene Issues und Diskussionen.
### CLI-Modus
> [!WARNING]
> API-Kompatibilität ist nicht garantiert. Es können Breaking Changes zwischen Versionen auftreten. Wenn Sie dieses Skript programmatisch verwenden (z. B. in der Automatisierung oder CI/CD), verweisen Sie auf einen bestimmten Commit anstatt auf den Master-Branch.
Für Automatisierung und Skripterstellung verwenden Sie die CLI-Schnittstelle:```bash
# Install with defaults
./openvpn-install.sh install
# Add a client
./openvpn-install.sh client add alice
# List clients
./openvpn-install.sh client list
# Revoke a client (immediately disconnects if connected)
./openvpn-install.sh client revoke alice
openvpn-install [options]
Commands: install Install and configure OpenVPN server uninstall Remove OpenVPN server client Manage client certificates server Server management interactive Launch interactive menu
Global Options: --verbose Show detailed output --log Log file path (default: openvpn-install.log) --no-log Disable file logging --no-color Disable colored output -h, --help Show help
Führen Sie `./openvpn-install.sh <command> --help` für befehlsspezifische Optionen aus.
#### Client-Verwaltung```bash
# Add a new client
./openvpn-install.sh client add alice
# Add a password-protected client
./openvpn-install.sh client add bob --password
# Revoke a client
./openvpn-install.sh client revoke alice
# Renew a client certificate
./openvpn-install.sh client renew bob --cert-days 365
Liste aller Clients:```text $ ./openvpn-install.sh client list ══ Client Certificates ══ [INFO] Found 3 client certificate(s)