
Docker IPsec VPN Server — Actualizado!
Servidor VPN IPsec basado en Docker compatible con IPsec/L2TP, Cisco IPsec e IKEv2 con generación automática de credenciales y configuración de clientes multiplataforma.
English | 简体中文 | 繁體中文 | Русский
Servidor VPN IPsec en Docker
Imagen de Docker para ejecutar un servidor VPN IPsec, con IPsec/L2TP, Cisco IPsec e IKEv2.
Basado en Alpine 3.23 o Debian 12 con Libreswan (software VPN IPsec) y xl2tpd (demonio L2TP).
Una VPN IPsec cifra tu tráfico de red, de modo que nadie entre tú y el servidor VPN pueda espiar tus datos mientras viajan por Internet. Esto es especialmente útil al usar redes no seguras, p. ej. en cafeterías, aeropuertos u hoteles.
Características:
- Genera automáticamente credenciales VPN y configuración IKEv2 en el primer inicio
- Compatible con IKEv2 con cifrados fuertes y rápidos (p. ej. AES-GCM)
- Genera perfiles VPN para configurar automáticamente dispositivos iOS, macOS y Android
- Compatible con Windows, macOS, iOS, Android, Chrome OS y Linux como clientes VPN
- Incluye un script auxiliar para gestionar usuarios y certificados IKEv2
- Compilado y publicado automáticamente mediante GitHub Actions
- Datos persistentes mediante un volumen de Docker
- Multi-arquitectura:
linux/amd64,linux/arm64,linux/arm/v7
También disponible:
- VPN: IPsec sin Docker, WireGuard, OpenVPN, Headscale
- IA: Self-Hosted AI Stack para LLM locales, chat, RAG, voz y herramientas de IA
- 📚 Libros: The Self-Hosted AI Builder’s Guide, Privacy Tools in the Age of AI
Inicio rápido
Usa este comando para configurar un servidor VPN IPsec en 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
Tus datos de acceso a la VPN se generarán aleatoriamente. Consulta [Recuperar datos de acceso a la VPN](#retrieve-vpn-login-details).
Alternativamente, puedes [configurar IPsec VPN sin Docker](https://github.com/hwdsl2/setup-ipsec-vpn). Para obtener más información sobre cómo usar esta imagen, lee las secciones a continuación.
## Comunidad
- 📬 [Suscríbete para recibir actualizaciones del proyecto](https://selfhostedstack.beehiiv.com/subscribe?utm_campaign=vpn) (1–2 correos al mes) — obtén guías gratuitas de despliegue de VPN e IA (PDF)
- 💬 Únete a la comunidad [r/selfhostedstack](https://www.reddit.com/r/selfhostedstack/) para debates
- ⭐ Marca el repositorio con una estrella si te resulta útil — ayuda a que otros lo descubran
## Requisitos
- Un servidor Linux con una dirección IP pública o un nombre DNS
- Docker instalado
- Puertos de VPN abiertos en tu cortafuegos (UDP 500 y 4500)
- También puedes usar [Podman](https://docs.podman.io) para ejecutar esta imagen, después de crear un alias para `docker`
**Nota:** Los usuarios avanzados pueden usar esta imagen en macOS con [Docker para Mac](https://docs.docker.com/desktop/setup/install/mac-install/). Antes de usar el modo IPsec/L2TP, es posible que debas reiniciar el contenedor una vez con `docker restart ipsec-vpn-server`. Esta imagen no es compatible con Docker para Windows.
## Descarga
Obtén la compilación confiable desde el [registro de Docker Hub](https://hub.docker.com/r/hwdsl2/ipsec-vpn-server/):```bash
docker pull hwdsl2/ipsec-vpn-server
Alternativamente, puedes descargar desde Quay.io:```bash docker pull quay.io/hwdsl2/ipsec-vpn-server docker image tag quay.io/hwdsl2/ipsec-vpn-server hwdsl2/ipsec-vpn-server
Plataformas compatibles: `linux/amd64`, `linux/arm64` y `linux/arm/v7`.
Los usuarios avanzados pueden [compilar desde el código fuente](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#build-from-source-code) en GitHub.
### Comparación de imágenes
Hay dos imágenes precompiladas disponibles. La imagen predeterminada basada en Alpine tiene solo ~19 MB.
| | Basada en Alpine | Basada en Debian |
| ----------------- | ------------------------ | ------------------------------ |
| Nombre de la imagen | hwdsl2/ipsec-vpn-server | hwdsl2/ipsec-vpn-server:debian |
| Tamaño comprimido | ~ 19 MB | ~ 62 MB |
| Imagen base | Alpine Linux 3.23 | Debian Linux 12 |
| Plataformas | amd64, arm64, arm/v7 | amd64, arm64, arm/v7 |
| Versión de Libreswan | 5.4 | 5.4 |
| IPsec/L2TP | ✅ | ✅ |
| Cisco IPsec | ✅ | ✅ |
| IKEv2 | ✅ | ✅ |
**Nota:** Para usar la imagen basada en Debian, reemplace cada `hwdsl2/ipsec-vpn-server` por `hwdsl2/ipsec-vpn-server:debian` en este README. Estas imágenes no son actualmente compatibles con los sistemas Synology NAS.
<details>
<summary>
Quiero usar la versión anterior de Libreswan 4.
</summary>
Generalmente se recomienda usar la última versión de [Libreswan](https://libreswan.org/) 5, que es la versión predeterminada en este proyecto. Sin embargo, si desea usar la versión anterior de Libreswan 4, puede compilar la imagen de Docker desde el código fuente:```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 .
Cómo usar esta imagen
Variables de entorno
Nota: Todas las variables de esta imagen son opcionales, lo que significa que no tienes que escribir ninguna variable y puedes tener un servidor VPN IPsec listo para usar. Para ello, crea un archivo env vacío usando touch vpn.env y pasa a la siguiente sección.