
Docker-basierter IPsec-VPN-Server mit Unterstützung für IPsec/L2TP, Cisco IPsec und IKEv2 sowie automatischer Generierung von Zugangsdaten und plattformübergreifender Client-Konfiguration.
[English](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/README.md) | [简体中文](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/README-zh.md) | [繁體中文](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/README-zh-Hant.md) | [Русский](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/README-ru.md)
# IPsec VPN Server auf Docker
[](https://github.com/hwdsl2/docker-ipsec-vpn-server/actions/workflows/main-alpine.yml) [](https://github.com/hwdsl2/docker-ipsec-vpn-server/stargazers) [](https://hub.docker.com/r/hwdsl2/ipsec-vpn-server/) [](https://hub.docker.com/r/hwdsl2/ipsec-vpn-server/)
Docker-Image zum Betrieb eines IPsec-VPN-Servers mit IPsec/L2TP, Cisco IPsec und IKEv2.
Basiert auf Alpine 3.23 oder Debian 12 mit [Libreswan](https://libreswan.org) (IPsec-VPN-Software) und [xl2tpd](https://github.com/xelerance/xl2tpd) (L2TP-Daemon).
Ein IPsec-VPN verschlüsselt Ihren Netzwerkverkehr, sodass niemand zwischen Ihnen und dem VPN-Server Ihre Daten abhören kann, während sie über das Internet übertragen werden. Dies ist besonders nützlich bei der Nutzung ungesicherter Netzwerke, z. B. in Cafés, Flughäfen oder Hotelzimmern.
**Funktionen:**
- Generiert beim ersten Start automatisch VPN-Zugangsdaten und IKEv2-Konfiguration
- Unterstützt IKEv2 mit starken und schnellen Cipher-Suites (z. B. AES-GCM)
- Generiert VPN-Profile zur automatischen Konfiguration von iOS-, macOS- und Android-Geräten
- Unterstützt Windows, macOS, iOS, Android, Chrome OS und Linux als VPN-Clients
- Enthält ein Hilfsskript zur Verwaltung von IKEv2-Benutzern und -Zertifikaten
- Wird automatisch über [GitHub Actions](https://github.com/hwdsl2/docker-ipsec-vpn-server/actions) gebaut und veröffentlicht
- Persistente Daten über ein Docker-Volume
- Multi-Arch: `linux/amd64`, `linux/arm64`, `linux/arm/v7`
**Ebenfalls verfügbar:**
- VPN: [IPsec ohne Docker](https://github.com/hwdsl2/setup-ipsec-vpn), [WireGuard](https://github.com/hwdsl2/docker-wireguard), [OpenVPN](https://github.com/hwdsl2/docker-openvpn), [Headscale](https://github.com/hwdsl2/docker-headscale)
- KI: [Self-Hosted AI Stack](https://github.com/hwdsl2/self-hosted-ai-stack) für lokale LLMs, Chat, RAG, Sprache und KI-Tools
> 📘 Interesse an selbst gehosteter KI? [The Self-Hosted AI Builder’s Guide](https://books2read.com/aiguide?store=amazon) ist ein praktischer Leitfaden zum Aufbau, zur Absicherung und zum Betrieb Ihres eigenen privaten KI-Stacks.
## Schnellstart
Verwenden Sie diesen Befehl, um einen IPsec-VPN-Server auf Docker einzurichten:
```bash
docker run \
--name ipsec-vpn-server \
--restart=always \
-v ikev2-vpn-data:/etc/ipsec.d \
-v /lib/modules:/lib/modules:ro \
-p 500:500/udp \
-p 4500:4500/udp \
-d --privileged \
hwdsl2/ipsec-vpn-server
```
Ihre VPN-Anmeldedaten werden zufällig generiert. Siehe [VPN-Anmeldedaten abrufen](#retrieve-vpn-login-details).
Alternativ können Sie [IPsec VPN ohne Docker einrichten](https://github.com/hwdsl2/setup-ipsec-vpn). Um mehr über die Verwendung dieses Images zu erfahren, lesen Sie die folgenden Abschnitte.
## Community
- 📬 [Erhalten Sie Projekt-Updates und kostenlose Deployment-Anleitungen](https://selfhostedstack.beehiiv.com/subscribe?utm_campaign=vpn) (1–2 E-Mails/Monat)
- 💬 Treten Sie der [r/selfhostedstack](https://www.reddit.com/r/selfhostedstack/)-Community für Diskussionen bei
- ⭐ Geben Sie dem Repository einen Stern, wenn Sie es nützlich finden — das hilft anderen, es zu entdecken
## Voraussetzungen
- Ein Linux-Server mit einer öffentlichen IP-Adresse oder einem DNS-Namen
- Docker installiert
- VPN-Ports in Ihrer Firewall geöffnet (UDP 500 und 4500)
- Sie können auch [Podman](https://docs.podman.io) verwenden, um dieses Image auszuführen, nachdem Sie einen Alias für `docker` erstellt haben
**Hinweis:** Fortgeschrittene Benutzer können dieses Image unter macOS mit [Docker for Mac](https://docs.docker.com/desktop/setup/install/mac-install/) verwenden. Bevor Sie den IPsec/L2TP-Modus verwenden, müssen Sie möglicherweise den Container einmal mit `docker restart ipsec-vpn-server` neu starten. Dieses Image unterstützt Docker for Windows nicht.
## Download
Holen Sie sich den vertrauenswürdigen Build aus der [Docker Hub Registry](https://hub.docker.com/r/hwdsl2/ipsec-vpn-server/):
```bash
docker pull hwdsl2/ipsec-vpn-server
```
Alternativ können Sie von [Quay.io](https://quay.io/repository/hwdsl2/ipsec-vpn-server) herunterladen:
```bash
docker pull quay.io/hwdsl2/ipsec-vpn-server
docker image tag quay.io/hwdsl2/ipsec-vpn-server hwdsl2/ipsec-vpn-server
```
Unterstützte Plattformen: `linux/amd64`, `linux/arm64` und `linux/arm/v7`.
Fortgeschrittene Benutzer können [aus dem Quellcode erstellen](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#build-from-source-code) auf GitHub.
### Image-Vergleich
Zwei vorgefertigte Images sind verfügbar. Das standardmäßige Alpine-basierte Image ist nur ~19 MB groß.
| | Alpine-basiert | Debian-basiert |
| ----------------- | ------------------------ | ------------------------------ |
| Image-Name | hwdsl2/ipsec-vpn-server | hwdsl2/ipsec-vpn-server:debian |
| Komprimierte Größe| ~ 19 MB | ~ 62 MB |
| Basis-Image | Alpine Linux 3.23 | Debian Linux 12 |
| Plattformen | amd64, arm64, arm/v7 | amd64, arm64, arm/v7 |
| Libreswan-Version | 5.4.1 | 5.4.1 |
| IPsec/L2TP | ✅ | ✅ |
| Cisco IPsec | ✅ | ✅ |
| IKEv2 | ✅ | ✅ |
**Hinweis:** Um das Debian-basierte Image zu verwenden, ersetzen Sie in dieser README jede Instanz von `hwdsl2/ipsec-vpn-server` durch `hwdsl2/ipsec-vpn-server:debian`. Diese Images sind derzeit nicht mit Synology NAS-Systemen kompatibel.
<details>
<summary>
Ich möchte die ältere Libreswan-Version 4 verwenden.
</summary>
Es wird allgemein empfohlen, die neueste [Libreswan](https://libreswan.org/)-Version 5 zu verwenden, die die Standardversion in diesem Projekt ist. Wenn Sie jedoch die ältere Libreswan-Version 4 verwenden möchten, können Sie das Docker-Image aus dem Quellcode erstellen:
```bash
git clone https://github.com/hwdsl2/docker-ipsec-vpn-server
cd docker-ipsec-vpn-server
# Specify Libreswan version 4
sed -i 's/SWAN_VER=5\..*/SWAN_VER=4.15/' Dockerfile Dockerfile.debian
# To build Alpine-based image
docker build -t hwdsl2/ipsec-vpn-server .
# To build Debian-based image
docker build -f Dockerfile.debian -t hwdsl2/ipsec-vpn-server:debian .
```
</details>
## Verwendung dieses Images
### Umgebungsvariablen
**Hinweis:** Alle Variablen für dieses Image sind optional, was bedeutet, dass Sie keine Variable eingeben müssen und Sie einen IPsec-VPN-Server direkt einsatzbereit haben! Erstellen Sie dazu eine leere `env`-Datei mit `touch vpn.env` und fahren Sie mit dem nächsten Abschnitt fort.
Dieses Docker-Image verwendet die folgenden Variablen, die in einer `env`-Datei deklariert werden können (siehe [Beispiel](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/vpn.env.example)):
```
VPN_IPSEC_PSK=your_ipsec_pre_shared_key
VPN_USER=your_vpn_username
VPN_PASSWORD=your_vpn_password
```
Dadurch wird ein Benutzerkonto für die VPN-Anmeldung erstellt, das von deinen mehreren Geräten verwendet werden kann[\*](#important-notes). Der IPsec-PSK (Pre-Shared Key) wird durch die Umgebungsvariable `VPN_IPSEC_PSK` festgelegt. Der VPN-Benutzername wird in `VPN_USER` definiert, und das VPN-Passwort wird durch `VPN_PASSWORD` festgelegt.
Zusätzliche VPN-Benutzer werden unterstützt und können optional in deiner `env`-Datei wie folgt deklariert werden. Benutzernamen und Passwörter müssen durch Leerzeichen getrennt werden, und Benutzernamen dürfen keine Duplikate enthalten. Alle VPN-Benutzer teilen sich denselben IPsec-PSK.
```
VPN_ADDL_USERS=additional_username_1 additional_username_2
VPN_ADDL_PASSWORDS=additional_password_1 additional_password_2
```
Die oben genannten Variablen gelten nur für die Modi IPsec/L2TP und IPsec/XAuth („Cisco IPsec"). Für IKEv2 siehe [Configure and use IKEv2 VPN](#configure-and-use-ikev2-vpn).
> [!IMPORTANT]
> Schreiben Sie in Ihre `env`-Datei Werte ohne umgebende Anführungszeichen oder Leerzeichen um `=`. Werte dürfen kein `\`, `"` oder `'` enthalten. Ein sicherer IPsec-PSK sollte aus mindestens 20 zufälligen Zeichen bestehen.
**Hinweis:** Wenn Sie die `env`-Datei ändern, nachdem der Docker-Container bereits erstellt wurde, müssen Sie den Container entfernen und neu erstellen, damit die Änderungen wirksam werden. Siehe [Update Docker image](#update-docker-image).
### Zusätzliche Umgebungsvariablen
Fortgeschrittene Benutzer können optional einen DNS-Namen, einen Client-Namen und/oder benutzerdefinierte DNS-Server angeben.
<details>
<summary>
Erfahren Sie, wie Sie einen DNS-Namen, einen Client-Namen und/oder benutzerdefinierte DNS-Server angeben.
</summary>
Fortgeschrittene Benutzer können optional einen DNS-Namen für die IKEv2-Serveradresse angeben. Der DNS-Name muss ein vollständig qualifizierter Domänenname (FQDN) sein. Beispiel:
```
VPN_DNS_NAME=vpn.example.com
```
Du kannst einen Namen für den ersten IKEv2-Client angeben. Verwende nur ein Wort, keine Sonderzeichen außer `-` und `_`. Der Standardwert ist `vpnclient`, wenn nicht angegeben.
```
VPN_CLIENT_NAME=your_client_name
```
Standardmäßig sind Clients so eingestellt, dass sie [Google Public DNS](https://developers.google.com/speed/public-dns/) verwenden, wenn das VPN aktiv ist. Sie können benutzerdefinierte DNS-Server für alle VPN-Modi angeben. Beispiel:
```
VPN_DNS_SRV1=1.1.1.1
VPN_DNS_SRV2=1.0.0.1
```
Weitere Details und eine Liste einiger beliebter öffentlicher DNS-Anbieter findest du unter [Alternative DNS-Server verwenden](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md).
Standardmäßig ist beim Importieren der IKEv2-Clientkonfiguration kein Passwort erforderlich. Du kannst wählen, ob du Client-Konfigurationsdateien mit einem zufälligen Passwort schützen möchtest.
```
VPN_PROTECT_CONFIG=yes
```
**Hinweis:** Die oben genannten Variablen haben keine Auswirkung auf den IKEv2-Modus, wenn IKEv2 bereits im Docker-Container eingerichtet ist. In diesem Fall können Sie IKEv2 entfernen und es erneut mit benutzerdefinierten Optionen einrichten. Siehe [Configure and use IKEv2 VPN](#configure-and-use-ikev2-vpn).
</details>
### Starten des IPsec VPN-Servers
Erstellen Sie einen neuen Docker-Container aus diesem Image (ersetzen Sie `./vpn.env` durch Ihre eigene `env`-Datei):
```bash
docker run \
--name ipsec-vpn-server \
--env-file ./vpn.env \
--restart=always \
-v ikev2-vpn-data:/etc/ipsec.d \
-v /lib/modules:/lib/modules:ro \
-p 500:500/udp \
-p 4500:4500/udp \
-d --privileged \
hwdsl2/ipsec-vpn-server
```
In diesem Befehl verwenden wir die Option `-v` von `docker run`, um ein neues [Docker-Volume](https://docs.docker.com/storage/volumes/) namens `ikev2-vpn-data` zu erstellen und es in `/etc/ipsec.d` im Container einzubinden. IKEv2-bezogene Daten wie Zertifikate und Schlüssel bleiben im Volume erhalten, und wenn Sie später den Docker-Container neu erstellen müssen, geben Sie einfach dasselbe Volume erneut an.
Es wird empfohlen, IKEv2 bei der Verwendung dieses Images zu aktivieren. Wenn Sie jedoch IKEv2 lieber nicht aktivieren und nur die Modi IPsec/L2TP und IPsec/XAuth („Cisco IPsec") verwenden möchten, um eine Verbindung zum VPN herzustellen, entfernen Sie die erste Option `-v` aus dem obigen Befehl `docker run`.
**Hinweis:** Fortgeschrittene Benutzer können auch [ohne privilegierten Modus ausführen](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#run-without-privileged-mode).
### VPN-Anmeldedaten abrufen
Wenn Sie im obigen Befehl `docker run` keine `env`-Datei angegeben haben, wird `VPN_USER` standardmäßig auf `vpnuser` gesetzt, und sowohl `VPN_IPSEC_PSK` als auch `VPN_PASSWORD` werden zufällig generiert. Um sie abzurufen, sehen Sie sich die Container-Logs an:
```bash
docker logs ipsec-vpn-server
```
Suchen Sie nach diesen Zeilen in der Ausgabe:
```
Connect to your new VPN with these details:
Server IP: your_vpn_server_ip
IPsec PSK: your_ipsec_pre_shared_key
Username: your_vpn_username
Password: your_vpn_password
```
Die Ausgabe enthält außerdem Details zum IKEv2-Modus, sofern aktiviert.
(Optional) Sichern Sie die generierten VPN-Anmeldedaten (falls vorhanden) im aktuellen Verzeichnis:
```bash
docker cp ipsec-vpn-server:/etc/ipsec.d/vpn-gen.env ./
```
## Verwendung von docker-compose
```bash
cp vpn.env.example vpn.env
# Edit vpn.env if needed, then:
docker compose up -d
docker logs ipsec-vpn-server
```
Beispiel `docker-compose.yml` (bereits enthalten):
```yaml
volumes:
ikev2-vpn-data:
services:
vpn:
image: hwdsl2/ipsec-vpn-server
restart: always
env_file:
- ./vpn.env
ports:
- "500:500/udp"
- "4500:4500/udp"
privileged: true
hostname: ipsec-vpn-server
container_name: ipsec-vpn-server
volumes:
- ikev2-vpn-data:/etc/ipsec.d
- /lib/modules:/lib/modules:ro
```
## Nächste Schritte
*Lies dies in anderen Sprachen: [English](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/README.md#next-steps), [简体中文](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/README-zh.md#下一步), [繁體中文](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/README-zh-Hant.md#下一步), [Русский](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/README-ru.md#следующие-шаги).*
Bringe deinen Computer oder dein Gerät dazu, das VPN zu verwenden. Bitte beachte:
**[IKEv2 VPN konfigurieren und verwenden (empfohlen)](#configure-and-use-ikev2-vpn)**
**[IPsec/L2TP VPN-Clients konfigurieren](https://github.com/hwdsl2/setup-ipsec-vpn/blob/master/docs/clients.md)**
**[IPsec/XAuth („Cisco IPsec") VPN-Clients konfigurieren](https://github.com/hwdsl2/setup-ipsec-vpn/blob/master/docs/clients-xauth.md)**
**Lies das [📘 VPN-Buch](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/vpn-book.md), um auf [zusätzliche Inhalte](https://ko-fi.com/post/Support-this-project-and-get-access-to-supporter-o-O5O7FVF8J) zuzugreifen.**
Genieße dein ganz eigenes VPN! :sparkles::tada::rocket::sparkles:
## Wichtige Hinweise
**Windows-Nutzer**: Für den IPsec/L2TP-Modus ist eine [einmalige Registrierungsänderung](https://github.com/hwdsl2/setup-ipsec-vpn/blob/master/docs/clients.md#windows-error-809) erforderlich, wenn sich der VPN-Server oder -Client hinter NAT befindet (z. B. Heimrouter).
Dasselbe VPN-Konto kann von mehreren Geräten verwendet werden. Aufgrund einer IPsec/L2TP-Einschränkung musst du jedoch, wenn du mehrere Geräte hinter demselben NAT (z. B. Heimrouter) verbinden möchtest, den [IKEv2](#configure-and-use-ikev2-vpn)- oder [IPsec/XAuth](https://github.com/hwdsl2/setup-ipsec-vpn/blob/master/docs/clients-xauth.md)-Modus verwenden.
Wenn du VPN-Benutzerkonten hinzufügen, bearbeiten oder entfernen möchtest, aktualisiere zuerst deine `env`-Datei und entferne dann den Docker-Container und erstelle ihn neu, indem du die Anweisungen aus dem [nächsten Abschnitt](#update-docker-image) befolgst. Fortgeschrittene Benutzer können die `env`-Datei [bind mounten](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#bind-mount-the-env-file).
Bei Servern mit einer externen Firewall (z. B. [EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-security-groups.html)/[GCE](https://cloud.google.com/vpc/docs/firewalls)) öffne die UDP-Ports 500 und 4500 für das VPN. Aliyun-Nutzer siehe [#433](https://github.com/hwdsl2/setup-ipsec-vpn/issues/433).
Clients sind so eingestellt, dass sie [Google Public DNS](https://developers.google.com/speed/public-dns/) verwenden, wenn das VPN aktiv ist. Wenn ein anderer DNS-Anbieter bevorzugt wird, lies [diesen Abschnitt](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#use-alternative-dns-servers).
## Docker-Image aktualisieren
Um das Docker-Image und den Container zu aktualisieren, [lade](#download) zuerst die neueste Version herunter:
```bash
docker pull hwdsl2/ipsec-vpn-server
```
Wenn das Docker-Image bereits aktuell ist, sollten Sie Folgendes sehen:
```
Status: Image is up to date for hwdsl2/ipsec-vpn-server:latest
```
Andernfalls wird die neueste Version heruntergeladen. Um deinen Docker-Container zu aktualisieren, notiere zunächst deine [VPN-Anmeldedaten](#retrieve-vpn-login-details). Entferne anschließend den Docker-Container mit `docker rm -f ipsec-vpn-server`. Erstelle ihn abschließend neu, indem du die Anweisungen unter [How to use this image](#how-to-use-this-image) befolgst.
## IKEv2 VPN konfigurieren und verwenden
Der IKEv2-Modus bietet Verbesserungen gegenüber IPsec/L2TP und IPsec/XAuth („Cisco IPsec") und erfordert weder einen IPsec-PSK noch einen Benutzernamen oder ein Passwort. Mehr dazu [hier](https://github.com/hwdsl2/setup-ipsec-vpn/blob/master/docs/ikev2-howto.md).
Prüfe zunächst die Container-Logs, um Details zu IKEv2 anzuzeigen:
```bash
docker logs ipsec-vpn-server
```
**Hinweis:** Wenn Sie keine IKEv2-Details finden können, ist IKEv2 im Container möglicherweise nicht aktiviert. Versuchen Sie, das Docker-Image und den Container mithilfe der Anweisungen im Abschnitt [Update Docker image](#update-docker-image) zu aktualisieren.
Während der IKEv2-Einrichtung wird ein IKEv2-Client (mit dem Standardnamen `vpnclient`) erstellt, dessen Konfiguration nach `/etc/ipsec.d` **innerhalb des Containers** exportiert wird. Um die Konfigurationsdatei(en) auf den Docker-Host zu kopieren:
```bash
# Check contents of /etc/ipsec.d in the container
docker exec -it ipsec-vpn-server ls -l /etc/ipsec.d
# Example: Copy a client config file from the container
# to the current directory on the Docker host
docker cp ipsec-vpn-server:/etc/ipsec.d/vpnclient.p12 ./
```
**Nächste Schritte:** [Konfigurieren Sie Ihre Geräte](https://github.com/hwdsl2/setup-ipsec-vpn/blob/master/docs/ikev2-howto.md) für die Nutzung des IKEv2 VPN.
<details>
<summary>
Erfahren Sie, wie Sie IKEv2-Clients verwalten.
</summary>
Sie können IKEv2-Clients mit dem Hilfsskript verwalten. Siehe Beispiele unten. Um Client-Optionen anzupassen, führen Sie das Skript ohne Argumente aus.
```bash
# Add a new client (using default options)
docker exec -it ipsec-vpn-server ikev2.sh --addclient [client name]
# Export configuration for an existing client
docker exec -it ipsec-vpn-server ikev2.sh --exportclient [client name]
# List existing clients
docker exec -it ipsec-vpn-server ikev2.sh --listclients
# Show usage
docker exec -it ipsec-vpn-server ikev2.sh -h
```
**Hinweis:** Wenn der Fehler „executable file not found“ auftritt, ersetzen Sie `ikev2.sh` oben durch `/opt/src/ikev2.sh`.
</details>
<details>
<summary>
Erfahren Sie, wie Sie die IKEv2-Serveradresse ändern.
</summary>
Unter bestimmten Umständen müssen Sie möglicherweise die IKEv2-Serveradresse ändern. Zum Beispiel, um einen DNS-Namen zu verwenden oder nachdem sich die Server-IP geändert hat. Um die IKEv2-Serveradresse zu ändern, [öffnen Sie zunächst eine Bash-Shell im Container](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#bash-shell-inside-container) und [befolgen Sie dann diese Anweisungen](https://github.com/hwdsl2/setup-ipsec-vpn/blob/master/docs/ikev2-howto.md#change-ikev2-server-address). Beachten Sie, dass die Container-Logs die neue IKEv2-Serveradresse erst anzeigen, nachdem Sie den Docker-Container neu gestartet haben.
</details>
<details>
<summary>
IKEv2 entfernen und mit benutzerdefinierten Optionen erneut einrichten.
</summary>
Unter bestimmten Umständen müssen Sie möglicherweise IKEv2 entfernen und mit benutzerdefinierten Optionen erneut einrichten.
**Warnung:** Die gesamte IKEv2-Konfiguration einschließlich Zertifikaten und Schlüsseln wird **dauerhaft gelöscht**. Dies **kann nicht rückgängig gemacht werden**!
**Option 1:** IKEv2 entfernen und mit dem Hilfsskript erneut einrichten.
Beachten Sie, dass dies Variablen überschreibt, die Sie in der `env`-Datei angegeben haben, wie `VPN_DNS_NAME` und `VPN_CLIENT_NAME`, und dass die Container-Logs keine aktuellen Informationen für IKEv2 mehr anzeigen.
```bash
# Remove IKEv2 and delete all IKEv2 configuration
docker exec -it ipsec-vpn-server ikev2.sh --removeikev2
# Set up IKEv2 again using custom options
docker exec -it ipsec-vpn-server ikev2.sh
```
**Option 2:** `ikev2-vpn-data` entfernen und den Container neu erstellen.
1. Notieren Sie sich alle Ihre [VPN-Anmeldedaten](#retrieve-vpn-login-details).
1. Entfernen Sie den Docker-Container: `docker rm -f ipsec-vpn-server`.
1. Entfernen Sie das Volume `ikev2-vpn-data`: `docker volume rm ikev2-vpn-data`.
1. Aktualisieren Sie Ihre `env`-Datei und fügen Sie benutzerdefinierte IKEv2-Optionen wie `VPN_DNS_NAME` und `VPN_CLIENT_NAME` hinzu, und erstellen Sie dann den Container neu. Siehe [How to use this image](#how-to-use-this-image).
</details>
## Erweiterte Nutzung
Siehe [Erweiterte Nutzung](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md).
- [Alternative DNS-Server verwenden](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#use-alternative-dns-servers)
- [Ohne privilegierten Modus ausführen](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#run-without-privileged-mode)
- [VPN-Modi auswählen](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#select-vpn-modes)
- [IKEv2 Perfect Forward Secrecy aktivieren](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#enable-ikev2-perfect-forward-secrecy)
- [Auf andere Container auf dem Docker-Host zugreifen](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#access-other-containers-on-the-docker-host)
- [Öffentliche IP des VPN-Servers angeben](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#specify-vpn-servers-public-ip)
- [Statische IPs an VPN-Clients zuweisen](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#assign-static-ips-to-vpn-clients)
- [VPN-Subnetze anpassen](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#customize-vpn-subnets)
- [IPv6-Unterstützung](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#ipv6-support)
- [Split-Tunneling](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#split-tunneling)
- [Über den Host-Netzwerkmodus](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#about-host-network-mode)
- [Libreswan-Protokolle aktivieren](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#enable-libreswan-logs)
- [Serverstatus prüfen](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#check-server-status)
- [Aus dem Quellcode erstellen](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#build-from-source-code)
- [Bash-Shell im Container](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#bash-shell-inside-container)
- [Die env-Datei per Bind-Mount einbinden](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#bind-mount-the-env-file)
- [Google BBR-Überlastungskontrolle bereitstellen](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#deploy-google-bbr-congestion-control)
## Technische Details
Es laufen zwei Dienste: `Libreswan (pluto)` für das IPsec-VPN und `xl2tpd` für die L2TP-Unterstützung.
Die Standard-IPsec-Konfiguration unterstützt:
* IPsec/L2TP mit PSK
* IKEv1 mit PSK und XAuth („Cisco IPsec")
* IKEv2
Erforderliche Ports: `500/udp` und `4500/udp` (IPsec)
## Lizenz
**Hinweis:** Die Softwarekomponenten im vorgefertigten Image (wie Libreswan und xl2tpd) unterliegen den jeweiligen Lizenzen, die von ihren jeweiligen Urheberrechtsinhabern gewählt wurden. Wie bei jeder Nutzung eines vorgefertigten Images liegt es in der Verantwortung des Image-Nutzers, sicherzustellen, dass jede Nutzung dieses Images mit allen relevanten Lizenzen für alle darin enthaltenen Softwarekomponenten übereinstimmt.
Copyright (C) 2016-2026 [Lin Song](https://github.com/hwdsl2) [](https://www.linkedin.com/in/linsongui)
Basierend auf [der Arbeit von Thomas Sarlandie](https://github.com/sarfata/voodooprivacy) (Copyright 2012)
[](http://creativecommons.org/licenses/by-sa/3.0/)
Dieses Werk ist unter der [Creative Commons Attribution-ShareAlike 3.0 Unported License](http://creativecommons.org/licenses/by-sa/3.0/) lizenziert.
Namensnennung erforderlich: Bitte nehmen Sie meinen Namen in alle abgeleiteten Werke auf und lassen Sie mich wissen, wie Sie es verbessert haben!