Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Herramientas/GitLabGitLab/hwdsl2/docker-ipsec-vpn-server
Herramientas de Cifrado/DescifradoSeguridad de Redes
GitLabhwdsl2/docker-ipsec-vpn-server

Docker IPsec VPN Server

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.

Ver Repositorio

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
89hace 4 díasAún no revisado
[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)

# Servidor VPN IPsec en Docker

[![Build Status](https://github.com/hwdsl2/docker-ipsec-vpn-server/actions/workflows/main-alpine.yml/badge.svg)](https://github.com/hwdsl2/docker-ipsec-vpn-server/actions/workflows/main-alpine.yml) [![GitHub Stars](https://raw.githubusercontent.com/hwdsl2/badges/main/img/github-stars-docker-ipsec-vpn-server.svg)](https://github.com/hwdsl2/docker-ipsec-vpn-server/stargazers) [![Docker Stars](https://raw.githubusercontent.com/hwdsl2/badges/main/img/docker-stars-ipsec-vpn-server.svg)](https://hub.docker.com/r/hwdsl2/ipsec-vpn-server/) [![Docker Pulls](https://raw.githubusercontent.com/hwdsl2/badges/main/img/docker-pulls-ipsec-vpn-server.svg)](https://hub.docker.com/r/hwdsl2/ipsec-vpn-server/)

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](https://libreswan.org) (software de VPN IPsec) y [xl2tpd](https://github.com/xelerance/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](https://github.com/hwdsl2/docker-ipsec-vpn-server/actions)
- Datos persistentes mediante un volumen de Docker
- Multiarquitectura: `linux/amd64`, `linux/arm64`, `linux/arm/v7`

**También disponible:**

- VPN: [IPsec sin 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) para LLM locales, chat, RAG, voz y herramientas de IA

> 📘 ¿Te interesa la IA autoalojada? [The Self-Hosted AI Builder’s Guide](https://books2read.com/aiguide?store=amazon) 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:

```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 inicio de sesión de VPN se generarán aleatoriamente. Consulta [Recuperar los datos de inicio de sesión de VPN](#retrieve-vpn-login-details).

Como alternativa, puedes [configurar una VPN IPsec 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

- 📬 [Recibe actualizaciones del proyecto y guías de despliegue gratuitas](https://selfhostedstack.beehiiv.com/subscribe?utm_campaign=vpn) (1–2 correos al mes)
- 💬 Únete a la comunidad de [r/selfhostedstack](https://www.reddit.com/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](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 for Mac](https://docs.docker.com/desktop/setup/install/mac-install/). 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](https://hub.docker.com/r/hwdsl2/ipsec-vpn-server/):

```bash
docker pull hwdsl2/ipsec-vpn-server
```

Alternativamente, puedes descargar desde [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
```

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 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.

<details>
<summary>
Quiero usar la versión anterior de Libreswan 4.
</summary>

Por lo general, 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 .
```
</details>

## 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](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
```

Esto creará una cuenta de usuario para el inicio de sesión VPN, que puede ser utilizada por tus múltiples dispositivos[\*](#important-notes). La PSK de IPsec (clave precompartida) se especifica mediante la variable de entorno `VPN_IPSEC_PSK`. El nombre de usuario de VPN se define en `VPN_USER`, y la contraseña de VPN se especifica mediante `VPN_PASSWORD`.

Se admiten usuarios de VPN adicionales, y pueden declararse opcionalmente en tu archivo `env` de esta manera. Los nombres de usuario y las contraseñas deben estar separados por espacios, y los nombres de usuario no pueden contener duplicados. Todos los usuarios de VPN compartirán la misma PSK de IPsec.

```
VPN_ADDL_USERS=additional_username_1 additional_username_2
VPN_ADDL_PASSWORDS=additional_password_1 additional_password_2
```

Las variables anteriores son solo para los modos IPsec/L2TP e IPsec/XAuth ("Cisco IPsec"). Para IKEv2, consulte [Configurar y usar IKEv2 VPN](#configure-and-use-ikev2-vpn).

> [!IMPORTANT]
> En su archivo `env`, escriba los valores sin comillas ni espacios alrededor de `=`. Los valores no deben contener `\`, `"` o `'`. Una PSK de IPsec segura debe constar de al menos 20 caracteres aleatorios.

**Nota:** Si modifica el archivo `env` después de que el contenedor Docker ya se haya creado, debe eliminar y volver a crear el contenedor para que los cambios surtan efecto. Consulte [Actualizar imagen Docker](#update-docker-image).

### Variables de entorno adicionales

Los usuarios avanzados pueden especificar opcionalmente un nombre DNS, un nombre de cliente y/o servidores DNS personalizados.

<details>
<summary>
Aprenda a especificar un nombre DNS, un nombre de cliente y/o servidores DNS personalizados.
</summary>

Los usuarios avanzados pueden especificar opcionalmente un nombre DNS para la dirección del servidor IKEv2. El nombre DNS debe ser un nombre de dominio completamente cualificado (FQDN). Ejemplo:

```
VPN_DNS_NAME=vpn.example.com
```

Puedes especificar un nombre para el primer cliente IKEv2. Usa solo una palabra, sin caracteres especiales excepto `-` y `_`. El valor predeterminado es `vpnclient` si no se especifica.

```
VPN_CLIENT_NAME=your_client_name
```

Por defecto, los clientes están configurados para usar [Google Public DNS](https://developers.google.com/speed/public-dns/) cuando la VPN está activa. Puedes especificar servidores DNS personalizados para todos los modos de VPN. Ejemplo:

```
VPN_DNS_SRV1=1.1.1.1
VPN_DNS_SRV2=1.0.0.1
```

Para obtener más detalles y una lista de algunos proveedores de DNS públicos populares, consulte [Usar servidores DNS alternativos](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md).

De forma predeterminada, no se requiere contraseña al importar la configuración del cliente IKEv2. Puede optar por proteger los archivos de configuración del cliente mediante una contraseña aleatoria.

```
VPN_PROTECT_CONFIG=yes
```

**Nota:** Las variables anteriores no tienen efecto para el modo IKEv2, si IKEv2 ya está configurado en el contenedor Docker. En este caso, puede eliminar IKEv2 y configurarlo de nuevo utilizando opciones personalizadas. Consulte [Configurar y usar IKEv2 VPN](#configure-and-use-ikev2-vpn).
</details>

### Iniciar el servidor VPN IPsec

Cree un nuevo contenedor Docker a partir de esta imagen (reemplace `./vpn.env` con su propio archivo `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
```

En este comando, usamos la opción `-v` de `docker run` para crear un nuevo [volumen de Docker](https://docs.docker.com/storage/volumes/) llamado `ikev2-vpn-data`, y montarlo en `/etc/ipsec.d` dentro del contenedor. Los datos relacionados con IKEv2, como certificados y claves, persistirán en el volumen, y más adelante, cuando necesites volver a crear el contenedor de Docker, solo especifica el mismo volumen de nuevo.

Se recomienda habilitar IKEv2 al usar esta imagen. Sin embargo, si prefieres no habilitar IKEv2 y usar solo los modos IPsec/L2TP e IPsec/XAuth ("Cisco IPsec") para conectarte a la VPN, elimina la primera opción `-v` del comando `docker run` anterior.

**Nota:** Los usuarios avanzados también pueden [ejecutar sin modo privilegiado](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#run-without-privileged-mode).

### Recuperar los detalles de inicio de sesión de la VPN

Si no especificaste un archivo `env` en el comando `docker run` anterior, `VPN_USER` tomará el valor predeterminado `vpnuser` y tanto `VPN_IPSEC_PSK` como `VPN_PASSWORD` se generarán aleatoriamente. Para recuperarlos, consulta los registros del contenedor:

```bash
docker logs ipsec-vpn-server
```

Busca estas líneas en la salida:

```
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 salida también incluirá detalles para el modo IKEv2, si está habilitado.

(Opcional) Realizar una copia de seguridad de los detalles de inicio de sesión de VPN generados (si los hay) en el directorio actual:

```bash
docker cp ipsec-vpn-server:/etc/ipsec.d/vpn-gen.env ./
```

## Uso 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
```

Ejemplo de `docker-compose.yml` (ya incluido):

```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
```

## Próximos pasos

*Lee esto en otros idiomas: [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#следующие-шаги).*

Configura tu computadora o dispositivo para usar la VPN. Consulta:

**[Configurar y usar IKEv2 VPN (recomendado)](#configure-and-use-ikev2-vpn)**

**[Configurar clientes VPN IPsec/L2TP](https://github.com/hwdsl2/setup-ipsec-vpn/blob/master/docs/clients.md)**

**[Configurar clientes VPN IPsec/XAuth ("Cisco IPsec")](https://github.com/hwdsl2/setup-ipsec-vpn/blob/master/docs/clients-xauth.md)**

**Lee el [📘 libro de VPN](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/vpn-book.md) para acceder a [contenido extra](https://ko-fi.com/post/Support-this-project-and-get-access-to-supporter-o-O5O7FVF8J).**

¡Disfruta de tu propia VPN! :sparkles::tada::rocket::sparkles:

## Notas importantes

**Usuarios de Windows**: Para el modo IPsec/L2TP, se requiere un [cambio único en el registro](https://github.com/hwdsl2/setup-ipsec-vpn/blob/master/docs/clients.md#windows-error-809) si el servidor o el cliente VPN está detrás de NAT (por ejemplo, un router doméstico).

La misma cuenta VPN puede ser utilizada por varios dispositivos. Sin embargo, debido a una limitación de IPsec/L2TP, si deseas conectar varios dispositivos desde detrás del mismo NAT (por ejemplo, un router doméstico), debes usar el modo [IKEv2](#configure-and-use-ikev2-vpn) o [IPsec/XAuth](https://github.com/hwdsl2/setup-ipsec-vpn/blob/master/docs/clients-xauth.md).

Si deseas agregar, editar o eliminar cuentas de usuario VPN, primero actualiza tu archivo `env`, luego debes eliminar y volver a crear el contenedor Docker usando las instrucciones de la [siguiente sección](#update-docker-image). Los usuarios avanzados pueden [montar mediante bind](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#bind-mount-the-env-file) el archivo `env`.

Para servidores con un firewall externo (por ejemplo, [EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-security-groups.html)/[GCE](https://cloud.google.com/vpc/docs/firewalls)), abre los puertos UDP 500 y 4500 para la VPN. Usuarios de Aliyun, consulten [#433](https://github.com/hwdsl2/setup-ipsec-vpn/issues/433).

Los clientes están configurados para usar [Google Public DNS](https://developers.google.com/speed/public-dns/) cuando la VPN está activa. Si se prefiere otro proveedor de DNS, lee [esta sección](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#use-alternative-dns-servers).

## Actualizar la imagen Docker

Para actualizar la imagen y el contenedor Docker, primero [descarga](#download) la última versión:

```bash
docker pull hwdsl2/ipsec-vpn-server
```

Si la imagen de Docker ya está actualizada, deberías ver:

```
Status: Image is up to date for hwdsl2/ipsec-vpn-server:latest
```

De lo contrario, descargará la última versión. Para actualizar tu contenedor Docker, primero anota tus [detalles de inicio de sesión de VPN](#retrieve-vpn-login-details). Luego elimina el contenedor Docker con `docker rm -f ipsec-vpn-server`. Finalmente, vuelve a crearlo usando las instrucciones de [Cómo usar esta imagen](#how-to-use-this-image).

## Configurar y usar IKEv2 VPN

El modo IKEv2 tiene mejoras sobre IPsec/L2TP e IPsec/XAuth ("Cisco IPsec"), y no requiere una PSK de IPsec, nombre de usuario ni contraseña. Lee más [aquí](https://github.com/hwdsl2/setup-ipsec-vpn/blob/master/docs/ikev2-howto.md).

Primero, revisa los registros del contenedor para ver los detalles de IKEv2:

```bash
docker logs ipsec-vpn-server
```

**Nota:** Si no puedes encontrar los detalles de IKEv2, es posible que IKEv2 no esté habilitado en el contenedor. Intenta actualizar la imagen de Docker y el contenedor siguiendo las instrucciones de la sección [Actualizar imagen de Docker](#update-docker-image).

Durante la configuración de IKEv2, se crea un cliente IKEv2 (con el nombre predeterminado `vpnclient`), y su configuración se exporta a `/etc/ipsec.d` **dentro del contenedor**. Para copiar el/los archivo(s) de configuración al host de 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 ./
```

**Próximos pasos:** [Configura tus dispositivos](https://github.com/hwdsl2/setup-ipsec-vpn/blob/master/docs/ikev2-howto.md) para usar la VPN IKEv2.

<details>
<summary>
Aprende a gestionar clientes IKEv2.
</summary>

Puedes gestionar clientes IKEv2 usando el script auxiliar. Consulta los ejemplos a continuación. Para personalizar las opciones del cliente, ejecuta el script sin argumentos.

```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
```

**Nota:** Si encuentras el error "executable file not found", reemplaza `ikev2.sh` arriba con `/opt/src/ikev2.sh`.
</details>
<details>
<summary>
Aprende cómo cambiar la dirección del servidor IKEv2.
</summary>

En ciertas circunstancias, es posible que necesites cambiar la dirección del servidor IKEv2. Por ejemplo, para cambiar a usar un nombre DNS, o después de que cambie la IP del servidor. Para cambiar la dirección del servidor IKEv2, primero [abre una shell de bash dentro del contenedor](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#bash-shell-inside-container), luego [sigue estas instrucciones](https://github.com/hwdsl2/setup-ipsec-vpn/blob/master/docs/ikev2-howto.md#change-ikev2-server-address). Ten en cuenta que los registros del contenedor no mostrarán la nueva dirección del servidor IKEv2 hasta que reinicies el contenedor Docker.
</details>
<details>
<summary>
Eliminar IKEv2 y configurarlo de nuevo usando opciones personalizadas.
</summary>

En ciertas circunstancias, es posible que necesites eliminar IKEv2 y configurarlo de nuevo usando opciones personalizadas.

**Advertencia:** Toda la configuración de IKEv2, incluidos los certificados y las claves, se **eliminará permanentemente**. ¡Esto **no se puede deshacer**!

**Opción 1:** Eliminar IKEv2 y configurarlo de nuevo usando el script de ayuda.

Ten en cuenta que esto anulará las variables que especificaste en el archivo `env`, como `VPN_DNS_NAME` y `VPN_CLIENT_NAME`, y los registros del contenedor ya no mostrarán información actualizada para 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
```

**Opción 2:** Eliminar `ikev2-vpn-data` y volver a crear el contenedor.

1. Anota todos tus [detalles de inicio de sesión de VPN](#retrieve-vpn-login-details).
1. Elimina el contenedor Docker: `docker rm -f ipsec-vpn-server`.
1. Elimina el volumen `ikev2-vpn-data`: `docker volume rm ikev2-vpn-data`.
1. Actualiza tu archivo `env` y añade opciones personalizadas de IKEv2 como `VPN_DNS_NAME` y `VPN_CLIENT_NAME`, luego vuelve a crear el contenedor. Consulta [Cómo usar esta imagen](#how-to-use-this-image).
</details>

## Uso avanzado

Consulta [Uso avanzado](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md).

- [Usar servidores DNS alternativos](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#use-alternative-dns-servers)
- [Ejecutar sin modo privilegiado](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#run-without-privileged-mode)
- [Seleccionar modos de VPN](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#select-vpn-modes)
- [Habilitar el secreto perfecto hacia adelante (PFS) de IKEv2](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#enable-ikev2-perfect-forward-secrecy)
- [Acceder a otros contenedores en el host Docker](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#access-other-containers-on-the-docker-host)
- [Especificar la IP pública del servidor VPN](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#specify-vpn-servers-public-ip)
- [Asignar IPs estáticas a los clientes VPN](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#assign-static-ips-to-vpn-clients)
- [Personalizar las subredes de la VPN](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#customize-vpn-subnets)
- [Compatibilidad con IPv6](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#ipv6-support)
- [Túnel dividido](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#split-tunneling)
- [Acerca del modo de red del host](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#about-host-network-mode)
- [Habilitar los registros de Libreswan](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#enable-libreswan-logs)
- [Comprobar el estado del servidor](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#check-server-status)
- [Compilar desde el código fuente](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#build-from-source-code)
- [Shell de Bash dentro del contenedor](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#bash-shell-inside-container)
- [Montar el archivo env mediante bind mount](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#bind-mount-the-env-file)
- [Desplegar el control de congestión Google BBR](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#deploy-google-bbr-congestion-control)

## Detalles técnicos

Hay dos servicios en ejecución: `Libreswan (pluto)` para la VPN IPsec, y `xl2tpd` para el soporte de L2TP.

La configuración predeterminada de IPsec admite:

* IPsec/L2TP con PSK
* IKEv1 con PSK y XAuth ("Cisco IPsec")
* IKEv2

Puertos requeridos: `500/udp` y `4500/udp` (IPsec)

## Licencia

**Nota:** Los componentes de software dentro de la imagen precompilada (como Libreswan y xl2tpd) están bajo las licencias respectivas elegidas por sus respectivos titulares de derechos de autor. En cuanto a cualquier uso de una imagen precompilada, es responsabilidad del usuario de la imagen asegurarse de que cualquier uso de esta imagen cumpla con las licencias relevantes de todo el software contenido en ella.

Copyright (C) 2016-2026 [Lin Song](https://github.com/hwdsl2) [![View my profile on LinkedIn](https://assets.kitploit.com/production/public/readmes/648/0dc41eea05dcee104e4963528568884b531a1377d69460315bc16f61eebd4bdf.png)](https://www.linkedin.com/in/linsongui)   
Basado en [el trabajo de Thomas Sarlandie](https://github.com/sarfata/voodooprivacy) (Copyright 2012)

[![Creative Commons License](https://assets.kitploit.com/production/public/readmes/648/acde67df4b37d9df101d6555c669c258cea69750bc84ae2051ebec0970f706c8.png)](http://creativecommons.org/licenses/by-sa/3.0/)   
Esta obra está licenciada bajo la [Licencia Creative Commons Atribución-CompartirIgual 3.0 Unported](http://creativecommons.org/licenses/by-sa/3.0/)   
Atribución requerida: por favor incluye mi nombre en cualquier obra derivada y ¡házmelo saber cómo la has mejorado!
Descargar herramienta