
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.
Basada en Alpine 3.23 o Debian 12 con Libreswan (software de 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 cuando se utilizan redes no seguras, por ejemplo, en cafeterías, aeropuertos o habitaciones de hotel.
Características:
- Genera automáticamente las credenciales VPN y la configuración de IKEv2 en el primer inicio
- Admite IKEv2 con cifrados fuertes y rápidos (por ejemplo, AES-GCM)
- Genera perfiles VPN para autoconfigurar dispositivos iOS, macOS y Android
- Admite Windows, macOS, iOS, Android, Chrome OS y Linux como clientes VPN
- Incluye un script auxiliar para gestionar usuarios y certificados de IKEv2
- Compilada y publicada automáticamente mediante GitHub Actions
- Datos persistentes mediante un volumen de Docker
- Multiarquitectura:
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
📘 ¿Te interesa la IA autoalojada? The Self-Hosted AI Builder’s Guide es una guía práctica para construir, proteger y operar tu propia pila de IA privada.
Inicio rápido
Usa este comando para configurar un servidor VPN IPsec en Docker:
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 inicio de sesión de VPN se generarán aleatoriamente. Consulta Recuperar los datos de inicio de sesión de VPN.
Como alternativa, puedes configurar una VPN IPsec sin Docker. Para obtener más información sobre cómo usar esta imagen, lee las secciones a continuación.
Comunidad
- 📬 Recibe actualizaciones del proyecto y guías de despliegue gratuitas (1–2 correos al mes)
- 💬 Únete a la comunidad de r/selfhostedstack para participar en las discusiones
- ⭐ Dale una estrella al repositorio 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 firewall (UDP 500 y 4500)
- También puedes usar Podman para ejecutar esta imagen, después de crear un alias para
docker
Nota: Los usuarios avanzados pueden usar esta imagen en macOS con Docker for Mac. Antes de usar el modo IPsec/L2TP, es posible que necesites reiniciar el contenedor una vez con docker restart ipsec-vpn-server. Esta imagen no es compatible con Docker for Windows.
Descarga
Obtén la compilación de confianza desde el registro de Docker Hub:
docker pull hwdsl2/ipsec-vpn-server
Alternativamente, puedes descargar desde Quay.io:
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 en GitHub.
Comparación de imágenes
Hay dos imágenes precompiladas disponibles. La imagen predeterminada basada en Alpine ocupa 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.1 | 5.4.1 |
| 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.
Quiero usar la versión anterior de Libreswan 4.
Por lo general, se recomienda usar la última versión de Libreswan 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:
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 es necesario introducir ninguna variable, ¡y puedes tener un servidor VPN IPsec listo para usar! Para ello, crea un archivo env vacío con touch vpn.env y pasa a la siguiente sección.
Esta imagen de Docker utiliza las siguientes variables, que se pueden declarar en un archivo env (ver ejemplo):
VPN_IPSEC_PSK=your_ipsec_pre_shared_key
VPN_USER=your_vpn_username
VPN_PASSWORD=your_vpn_password