
Docker IPsec VPN Server — Mis à jour !
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 | 简体中文 | 繁體中文 | Русский
Serveur VPN IPsec sur Docker
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 (logiciel VPN IPsec) et 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 lorsqu'elles transitent par Internet. Cela est particulièrement utile lors de l'utilisation de réseaux non sécurisés, par exemple dans les cafés, les aéroports ou les 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 puissants et rapides (par exemple 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 d'assistance pour gérer les utilisateurs et certificats IKEv2
- Construit et publié automatiquement via GitHub Actions
- Données persistantes via un volume Docker
- Multi-architectures :
linux/amd64,linux/arm64,linux/arm/v7
Également disponible :
- VPN : IPsec sans Docker, WireGuard, OpenVPN, Headscale
- IA : Self-Hosted AI Stack pour LLM locaux, chat, RAG, voix et outils IA
- 📚 Livres : The Self-Hosted AI Builder’s Guide, Privacy Tools in the Age of AI
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, lisez les sections ci-dessous.
## Communauté
- 📬 [Abonnez-vous aux mises à jour du projet](https://selfhostedstack.beehiiv.com/subscribe?utm_campaign=vpn) (1 à 2 e-mails/mois) — obtenez des guides gratuits de déploiement VPN et IA (PDF)
- 💬 Rejoignez la communauté [r/selfhostedstack](https://www.reddit.com/r/selfhostedstack/) pour des discussions
- ⭐ Mettez une étoile au dépôt si vous le trouvez utile — cela aide d’autres à le découvrir
## Prérequis
- Un serveur Linux avec une adresse IP publique ou un nom DNS
- Docker installé
- 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 fiable depuis le [registre Docker Hub](https://hub.docker.com/r/hwdsl2/ipsec-vpn-server/) :```bash
docker pull hwdsl2/ipsec-vpn-server
Alternativement, vous pouvez télécharger depuis Quay.io :```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é-construites sont disponibles. L'image par défaut basée sur Alpine ne fait qu'environ 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 Libreswan | 5.4 | 5.4 |
| 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 [Libreswan](https://libreswan.org/) version 5, qui est la version par défaut de ce projet. Cependant, 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 .
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.