
Serveur VPN IPsec basé sur Docker prenant en charge IPsec/L2TP, Cisco IPsec et IKEv2 avec génération automatique d'identifiants et configuration client multiplateforme.
[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)
# Serveur VPN IPsec sur 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/)
Image Docker pour exécuter un serveur VPN IPsec, avec IPsec/L2TP, Cisco IPsec et IKEv2.
Basé sur Alpine 3.23 ou Debian 12 avec [Libreswan](https://libreswan.org) (logiciel VPN IPsec) et [xl2tpd](https://github.com/xelerance/xl2tpd) (démon L2TP).
Un VPN IPsec chiffre votre trafic réseau, afin que personne entre vous et le serveur VPN ne puisse espionner vos données lors de leur transit sur Internet. Cela est particulièrement utile lorsque vous utilisez des réseaux non sécurisés, par exemple dans des cafés, des aéroports ou des chambres d'hôtel.
**Fonctionnalités :**
- Génère automatiquement les identifiants VPN et la configuration IKEv2 au premier démarrage
- Prend en charge IKEv2 avec des chiffrements forts et rapides (par ex. AES-GCM)
- Génère des profils VPN pour configurer automatiquement les appareils iOS, macOS et Android
- Prend en charge Windows, macOS, iOS, Android, Chrome OS et Linux comme clients VPN
- Inclut un script utilitaire pour gérer les utilisateurs et certificats IKEv2
- Construit et publié automatiquement via [GitHub Actions](https://github.com/hwdsl2/docker-ipsec-vpn-server/actions)
- Données persistantes via un volume Docker
- Multi-arch : `linux/amd64`, `linux/arm64`, `linux/arm/v7`
**Également disponible :**
- VPN : [IPsec sans 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)
- IA : [Self-Hosted AI Stack](https://github.com/hwdsl2/self-hosted-ai-stack) pour les LLM locaux, le chat, le RAG, la voix et les outils d'IA
> 📘 Intéressé par l'IA auto-hébergée ? [The Self-Hosted AI Builder’s Guide](https://books2read.com/aiguide?store=amazon) est un guide pratique pour construire, sécuriser et exploiter votre propre stack d'IA privée.
## Démarrage rapide
Utilisez cette commande pour configurer un serveur VPN IPsec sur Docker :
```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
```
Vos identifiants de connexion VPN seront générés aléatoirement. Voir [Récupérer les identifiants de connexion VPN](#retrieve-vpn-login-details).
Vous pouvez également [configurer un VPN IPsec sans Docker](https://github.com/hwdsl2/setup-ipsec-vpn). Pour en savoir plus sur l'utilisation de cette image, consultez les sections ci-dessous.
## Communauté
- 📬 [Recevez les mises à jour du projet et des guides de déploiement gratuits](https://selfhostedstack.beehiiv.com/subscribe?utm_campaign=vpn) (1 à 2 e-mails/mois)
- 💬 Rejoignez la communauté [r/selfhostedstack](https://www.reddit.com/r/selfhostedstack/) pour discuter
- ⭐ Ajoutez une étoile au dépôt si vous le trouvez utile — cela aide les autres à le découvrir
## Prérequis
- Un serveur Linux avec une adresse IP publique ou un nom DNS
- Docker installé
- Les ports VPN ouverts dans votre pare-feu (UDP 500 et 4500)
- Vous pouvez également utiliser [Podman](https://docs.podman.io) pour exécuter cette image, après avoir créé un alias pour `docker`
**Remarque :** Les utilisateurs avancés peuvent utiliser cette image sur macOS avec [Docker for Mac](https://docs.docker.com/desktop/setup/install/mac-install/). Avant d'utiliser le mode IPsec/L2TP, vous devrez peut-être redémarrer le conteneur une fois avec `docker restart ipsec-vpn-server`. Cette image ne prend pas en charge Docker for Windows.
## Téléchargement
Obtenez la version de confiance depuis le [registre Docker Hub](https://hub.docker.com/r/hwdsl2/ipsec-vpn-server/) :
```bash
docker pull hwdsl2/ipsec-vpn-server
```
Vous pouvez également télécharger depuis [Quay.io](https://quay.io/repository/hwdsl2/ipsec-vpn-server) :
```bash
docker pull quay.io/hwdsl2/ipsec-vpn-server
docker image tag quay.io/hwdsl2/ipsec-vpn-server hwdsl2/ipsec-vpn-server
```
Plateformes prises en charge : `linux/amd64`, `linux/arm64` et `linux/arm/v7`.
Les utilisateurs avancés peuvent [compiler à partir du code source](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#build-from-source-code) sur GitHub.
### Comparaison des images
Deux images précompilées sont disponibles. L'image par défaut basée sur Alpine ne pèse que ~19 Mo.
| | Basée sur Alpine | Basée sur Debian |
| ----------------- | ------------------------ | ------------------------------ |
| Nom de l'image | hwdsl2/ipsec-vpn-server | hwdsl2/ipsec-vpn-server:debian |
| Taille compressée | ~ 19 Mo | ~ 62 Mo |
| Image de base | Alpine Linux 3.23 | Debian Linux 12 |
| Plateformes | amd64, arm64, arm/v7 | amd64, arm64, arm/v7 |
| Version de Libreswan | 5.4.1 | 5.4.1 |
| IPsec/L2TP | ✅ | ✅ |
| Cisco IPsec | ✅ | ✅ |
| IKEv2 | ✅ | ✅ |
**Remarque :** Pour utiliser l'image basée sur Debian, remplacez chaque `hwdsl2/ipsec-vpn-server` par `hwdsl2/ipsec-vpn-server:debian` dans ce README. Ces images ne sont actuellement pas compatibles avec les systèmes Synology NAS.
<details>
<summary>
Je souhaite utiliser l'ancienne version 4 de Libreswan.
</summary>
Il est généralement recommandé d'utiliser la dernière version 5 de [Libreswan](https://libreswan.org/), qui est la version par défaut de ce projet. Toutefois, si vous souhaitez utiliser l'ancienne version 4 de Libreswan, vous pouvez compiler l'image Docker à partir du code source :
```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>
## Comment utiliser cette image
### Variables d'environnement
**Remarque :** Toutes les variables de cette image sont facultatives, ce qui signifie que vous n'avez pas besoin de saisir de variable et que vous pouvez disposer d'un serveur VPN IPsec prêt à l'emploi ! Pour ce faire, créez un fichier `env` vide à l'aide de `touch vpn.env`, puis passez à la section suivante.
Cette image Docker utilise les variables suivantes, qui peuvent être déclarées dans un fichier `env` (voir [exemple](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
```
Cela créera un compte utilisateur pour la connexion VPN, qui peut être utilisé par vos multiples appareils[\*](#important-notes). Le PSK IPsec (clé pré-partagée) est spécifié par la variable d'environnement `VPN_IPSEC_PSK`. Le nom d'utilisateur VPN est défini dans `VPN_USER`, et le mot de passe VPN est spécifié par `VPN_PASSWORD`.
Des utilisateurs VPN supplémentaires sont pris en charge, et peuvent être éventuellement déclarés dans votre fichier `env` comme ceci. Les noms d'utilisateur et les mots de passe doivent être séparés par des espaces, et les noms d'utilisateur ne peuvent pas contenir de doublons. Tous les utilisateurs VPN partageront le même PSK IPsec.
```
VPN_ADDL_USERS=additional_username_1 additional_username_2
VPN_ADDL_PASSWORDS=additional_password_1 additional_password_2
```
Les variables ci-dessus concernent uniquement les modes IPsec/L2TP et IPsec/XAuth (« Cisco IPsec »). Pour IKEv2, voir [Configurer et utiliser le VPN IKEv2](#configure-and-use-ikev2-vpn).
> [!IMPORTANT]
> Dans votre fichier `env`, écrivez les valeurs sans guillemets ni espaces autour du `=`. Les valeurs ne doivent pas contenir `\`, `"` ou `'`. Un PSK IPsec sécurisé doit comporter au moins 20 caractères aléatoires.
**Remarque :** Si vous modifiez le fichier `env` après la création du conteneur Docker, vous devez supprimer et recréer le conteneur pour que les modifications prennent effet. Reportez-vous à [Mettre à jour l'image Docker](#update-docker-image).
### Variables d'environnement supplémentaires
Les utilisateurs avancés peuvent éventuellement spécifier un nom DNS, un nom de client et/ou des serveurs DNS personnalisés.
<details>
<summary>
Apprenez à spécifier un nom DNS, un nom de client et/ou des serveurs DNS personnalisés.
</summary>
Les utilisateurs avancés peuvent éventuellement spécifier un nom DNS pour l'adresse du serveur IKEv2. Le nom DNS doit être un nom de domaine pleinement qualifié (FQDN). Exemple :
```
VPN_DNS_NAME=vpn.example.com
```
Vous pouvez spécifier un nom pour le premier client IKEv2. Utilisez un seul mot, sans caractères spéciaux à l'exception de `-` et `_`. La valeur par défaut est `vpnclient` si elle n'est pas spécifiée.
```
VPN_CLIENT_NAME=your_client_name
```
Par défaut, les clients sont configurés pour utiliser [Google Public DNS](https://developers.google.com/speed/public-dns/) lorsque le VPN est actif. Vous pouvez spécifier un ou plusieurs serveurs DNS personnalisés pour tous les modes VPN. Exemple :
```
VPN_DNS_SRV1=1.1.1.1
VPN_DNS_SRV2=1.0.0.1
```
Pour plus de détails et une liste de certains fournisseurs DNS publics populaires, voir [Utiliser des serveurs DNS alternatifs](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md).
Par défaut, aucun mot de passe n'est requis lors de l'importation de la configuration client IKEv2. Vous pouvez choisir de protéger les fichiers de configuration client à l'aide d'un mot de passe aléatoire.
```
VPN_PROTECT_CONFIG=yes
```
**Remarque :** Les variables ci-dessus n'ont aucun effet pour le mode IKEv2, si IKEv2 est déjà configuré dans le conteneur Docker. Dans ce cas, vous pouvez supprimer IKEv2 et le reconfigurer à l'aide d'options personnalisées. Reportez-vous à [Configurer et utiliser le VPN IKEv2](#configure-and-use-ikev2-vpn).
</details>
### Démarrer le serveur VPN IPsec
Créez un nouveau conteneur Docker à partir de cette image (remplacez `./vpn.env` par votre propre fichier `env`) :
```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
```
Dans cette commande, nous utilisons l'option `-v` de `docker run` pour créer un nouveau [volume Docker](https://docs.docker.com/storage/volumes/) nommé `ikev2-vpn-data`, et le monter dans `/etc/ipsec.d` dans le conteneur. Les données liées à IKEv2 telles que les certificats et les clés persisteront dans le volume, et plus tard, lorsque vous devrez recréer le conteneur Docker, spécifiez simplement le même volume à nouveau.
Il est recommandé d'activer IKEv2 lors de l'utilisation de cette image. Cependant, si vous préférez ne pas activer IKEv2 et utiliser uniquement les modes IPsec/L2TP et IPsec/XAuth (« Cisco IPsec ») pour vous connecter au VPN, supprimez la première option `-v` de la commande `docker run` ci-dessus.
**Remarque :** Les utilisateurs avancés peuvent également [exécuter sans mode privilégié](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#run-without-privileged-mode).
### Récupérer les détails de connexion VPN
Si vous n'avez pas spécifié de fichier `env` dans la commande `docker run` ci-dessus, `VPN_USER` sera par défaut `vpnuser` et `VPN_IPSEC_PSK` ainsi que `VPN_PASSWORD` seront générés aléatoirement. Pour les récupérer, consultez les journaux du conteneur :
```bash
docker logs ipsec-vpn-server
```
Recherchez ces lignes dans la sortie :
```
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
```
La sortie inclura également les détails du mode IKEv2, s'il est activé.
(Facultatif) Sauvegardez les identifiants de connexion VPN générés (le cas échéant) dans le répertoire courant :
```bash
docker cp ipsec-vpn-server:/etc/ipsec.d/vpn-gen.env ./
```
## Utilisation de docker-compose
```bash
cp vpn.env.example vpn.env
# Edit vpn.env if needed, then:
docker compose up -d
docker logs ipsec-vpn-server
```
Exemple `docker-compose.yml` (déjà inclus) :
```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
```
## Étapes suivantes
*Lisez ceci dans d'autres langues : [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#следующие-шаги).*
Configurez votre ordinateur ou appareil pour utiliser le VPN. Veuillez consulter :
**[Configurer et utiliser le VPN IKEv2 (recommandé)](#configure-and-use-ikev2-vpn)**
**[Configurer les clients VPN IPsec/L2TP](https://github.com/hwdsl2/setup-ipsec-vpn/blob/master/docs/clients.md)**
**[Configurer les clients VPN IPsec/XAuth (« Cisco IPsec »)](https://github.com/hwdsl2/setup-ipsec-vpn/blob/master/docs/clients-xauth.md)**
**Lisez le [📘 livre VPN](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/vpn-book.md) pour accéder au [contenu supplémentaire](https://ko-fi.com/post/Support-this-project-and-get-access-to-supporter-o-O5O7FVF8J).**
Profitez de votre propre VPN ! :sparkles::tada::rocket::sparkles:
## Remarques importantes
**Utilisateurs Windows** : Pour le mode IPsec/L2TP, une [modification unique du registre](https://github.com/hwdsl2/setup-ipsec-vpn/blob/master/docs/clients.md#windows-error-809) est requise si le serveur ou le client VPN se trouve derrière un NAT (par exemple, un routeur domestique).
Le même compte VPN peut être utilisé par plusieurs de vos appareils. Cependant, en raison d'une limitation d'IPsec/L2TP, si vous souhaitez connecter plusieurs appareils derrière le même NAT (par exemple, un routeur domestique), vous devez utiliser le mode [IKEv2](#configure-and-use-ikev2-vpn) ou [IPsec/XAuth](https://github.com/hwdsl2/setup-ipsec-vpn/blob/master/docs/clients-xauth.md).
Si vous souhaitez ajouter, modifier ou supprimer des comptes utilisateurs VPN, mettez d'abord à jour votre fichier `env`, puis vous devez supprimer et recréer le conteneur Docker en suivant les instructions de la [section suivante](#update-docker-image). Les utilisateurs avancés peuvent [monter par liaison](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#bind-mount-the-env-file) le fichier `env`.
Pour les serveurs avec un pare-feu externe (par exemple [EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-security-groups.html)/[GCE](https://cloud.google.com/vpc/docs/firewalls)), ouvrez les ports UDP 500 et 4500 pour le VPN. Utilisateurs d'Aliyun, voir [#433](https://github.com/hwdsl2/setup-ipsec-vpn/issues/433).
Les clients sont configurés pour utiliser [Google Public DNS](https://developers.google.com/speed/public-dns/) lorsque le VPN est actif. Si un autre fournisseur DNS est préféré, lisez [cette section](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#use-alternative-dns-servers).
## Mettre à jour l'image Docker
Pour mettre à jour l'image et le conteneur Docker, [téléchargez](#download) d'abord la dernière version :
```bash
docker pull hwdsl2/ipsec-vpn-server
```
Si l'image Docker est déjà à jour, vous devriez voir :
```
Status: Image is up to date for hwdsl2/ipsec-vpn-server:latest
```
Sinon, il téléchargera la dernière version. Pour mettre à jour votre conteneur Docker, notez d'abord vos [identifiants de connexion VPN](#retrieve-vpn-login-details). Ensuite, supprimez le conteneur Docker avec `docker rm -f ipsec-vpn-server`. Enfin, recréez-le en suivant les instructions de [Comment utiliser cette image](#how-to-use-this-image).
## Configurer et utiliser le VPN IKEv2
Le mode IKEv2 présente des améliorations par rapport à IPsec/L2TP et IPsec/XAuth (« Cisco IPsec »), et ne nécessite ni PSK IPsec, ni nom d'utilisateur, ni mot de passe. En savoir plus [ici](https://github.com/hwdsl2/setup-ipsec-vpn/blob/master/docs/ikev2-howto.md).
Tout d'abord, consultez les journaux du conteneur pour afficher les détails d'IKEv2 :
```bash
docker logs ipsec-vpn-server
```
**Remarque :** Si vous ne trouvez pas les détails IKEv2, il est possible qu'IKEv2 ne soit pas activé dans le conteneur. Essayez de mettre à jour l'image Docker et le conteneur en suivant les instructions de la section [Update Docker image](#update-docker-image).
Lors de la configuration d'IKEv2, un client IKEv2 (avec le nom par défaut `vpnclient`) est créé, et sa configuration est exportée vers `/etc/ipsec.d` **à l'intérieur du conteneur**. Pour copier le(s) fichier(s) de configuration vers l'hôte Docker :
```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 ./
```
**Étapes suivantes :** [Configurez vos appareils](https://github.com/hwdsl2/setup-ipsec-vpn/blob/master/docs/ikev2-howto.md) pour utiliser le VPN IKEv2.
<details>
<summary>
Apprenez à gérer les clients IKEv2.
</summary>
Vous pouvez gérer les clients IKEv2 à l'aide du script d'assistance. Voir les exemples ci-dessous. Pour personnaliser les options du client, exécutez le script sans arguments.
```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
```
**Remarque :** Si vous rencontrez l'erreur « executable file not found », remplacez `ikev2.sh` ci-dessus par `/opt/src/ikev2.sh`.
</details>
<details>
<summary>
Apprenez comment modifier l'adresse du serveur IKEv2.
</summary>
Dans certaines circonstances, vous pouvez avoir besoin de modifier l'adresse du serveur IKEv2. Par exemple, pour passer à l'utilisation d'un nom DNS, ou après un changement d'IP du serveur. Pour modifier l'adresse du serveur IKEv2, [ouvrez d'abord un shell bash dans le conteneur](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#bash-shell-inside-container), puis [suivez ces instructions](https://github.com/hwdsl2/setup-ipsec-vpn/blob/master/docs/ikev2-howto.md#change-ikev2-server-address). Notez que les journaux du conteneur n'afficheront pas la nouvelle adresse du serveur IKEv2 tant que vous n'aurez pas redémarré le conteneur Docker.
</details>
<details>
<summary>
Supprimez IKEv2 et reconfigurez-le à l'aide d'options personnalisées.
</summary>
Dans certaines circonstances, vous pouvez avoir besoin de supprimer IKEv2 et de le reconfigurer à l'aide d'options personnalisées.
**Avertissement :** Toute la configuration IKEv2, y compris les certificats et les clés, sera **définitivement supprimée**. Cette action **est irréversible** !
**Option 1 :** Supprimez IKEv2 et reconfigurez-le à l'aide du script d'assistance.
Notez que cela remplacera les variables que vous avez spécifiées dans le fichier `env`, telles que `VPN_DNS_NAME` et `VPN_CLIENT_NAME`, et les journaux du conteneur n'afficheront plus d'informations à jour pour IKEv2.
```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 :** Supprimez `ikev2-vpn-data` et recréez le conteneur.
1. Notez tous vos [identifiants de connexion VPN](#retrieve-vpn-login-details).
1. Supprimez le conteneur Docker : `docker rm -f ipsec-vpn-server`.
1. Supprimez le volume `ikev2-vpn-data` : `docker volume rm ikev2-vpn-data`.
1. Mettez à jour votre fichier `env` et ajoutez des options IKEv2 personnalisées telles que `VPN_DNS_NAME` et `VPN_CLIENT_NAME`, puis recréez le conteneur. Reportez-vous à [Comment utiliser cette image](#how-to-use-this-image).
</details>
## Utilisation avancée
Voir [Utilisation avancée](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md).
- [Utiliser des serveurs DNS alternatifs](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#use-alternative-dns-servers)
- [Exécuter sans mode privilégié](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#run-without-privileged-mode)
- [Sélectionner les modes VPN](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#select-vpn-modes)
- [Activer la confidentialité persistante IKEv2](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#enable-ikev2-perfect-forward-secrecy)
- [Accéder aux autres conteneurs sur l'hôte Docker](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#access-other-containers-on-the-docker-host)
- [Spécifier l'IP publique du serveur VPN](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#specify-vpn-servers-public-ip)
- [Attribuer des IP statiques aux clients VPN](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#assign-static-ips-to-vpn-clients)
- [Personnaliser les sous-réseaux VPN](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#customize-vpn-subnets)
- [Prise en charge d'IPv6](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#ipv6-support)
- [Tunnel divisé](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#split-tunneling)
- [À propos du mode réseau hôte](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#about-host-network-mode)
- [Activer les journaux Libreswan](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#enable-libreswan-logs)
- [Vérifier l'état du serveur](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#check-server-status)
- [Compiler à partir du code source](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#build-from-source-code)
- [Shell Bash dans le conteneur](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#bash-shell-inside-container)
- [Monter le fichier env par liaison](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#bind-mount-the-env-file)
- [Déployer le contrôle de congestion Google BBR](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#deploy-google-bbr-congestion-control)
## Détails techniques
Deux services sont en cours d'exécution : `Libreswan (pluto)` pour le VPN IPsec, et `xl2tpd` pour la prise en charge de L2TP.
La configuration IPsec par défaut prend en charge :
* IPsec/L2TP avec PSK
* IKEv1 avec PSK et XAuth (« Cisco IPsec »)
* IKEv2
Ports requis : `500/udp` et `4500/udp` (IPsec)
## Licence
**Remarque :** Les composants logiciels contenus dans l'image précompilée (tels que Libreswan et xl2tpd) sont soumis aux licences respectives choisies par leurs détenteurs de droits d'auteur respectifs. Comme pour toute utilisation d'une image précompilée, il incombe à l'utilisateur de l'image de s'assurer que toute utilisation de cette image est conforme aux licences applicables pour tous les logiciels qu'elle contient.
Copyright (C) 2016-2026 [Lin Song](https://github.com/hwdsl2) [](https://www.linkedin.com/in/linsongui)
Basé sur [le travail de Thomas Sarlandie](https://github.com/sarfata/voodooprivacy) (Copyright 2012)
[](http://creativecommons.org/licenses/by-sa/3.0/)
Ce travail est sous licence [Creative Commons Attribution-ShareAlike 3.0 Unported License](http://creativecommons.org/licenses/by-sa/3.0/)
Attribution requise : veuillez inclure mon nom dans toute œuvre dérivée et me faire savoir comment vous l'avez améliorée !