
Configuración automatizada de servidor VPN IPsec con soporte para IPsec/L2TP, Cisco IPsec e IKEv2. Incluye scripts auxiliares para la gestión de usuarios y certificados, y genera perfiles para clientes iOS, macOS, Android y Windows.
[English](https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/blob/master/README.md) | [简体中文](https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/blob/master/README-zh.md) | [繁體中文](https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/blob/master/README-zh-Hant.md) | [日本語](https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/blob/master/README-ja.md) | [Русский](https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/blob/master/README-ru.md)
# Scripts de configuración automática del servidor VPN IPsec
[](https://github.com/hwdsl2/setup-ipsec-vpn/actions/workflows/main.yml) [](https://github.com/hwdsl2/setup-ipsec-vpn/stargazers) [](https://github.com/hwdsl2/docker-ipsec-vpn-server) [](https://github.com/hwdsl2/docker-ipsec-vpn-server)
Configura tu propio servidor VPN IPsec en solo unos minutos, con IPsec/L2TP, Cisco IPsec e IKEv2.
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.
Usaremos [Libreswan](https://libreswan.org/) como servidor IPsec, y [xl2tpd](https://github.com/xelerance/xl2tpd) como proveedor L2TP.
**Características:**
- Configuración del servidor VPN IPsec totalmente automatizada, sin necesidad de intervención del usuario
- Compatible con IKEv2 con cifrados fuertes y rápidos (p. ej. AES-GCM)
- Genera perfiles VPN para autoconfigurar dispositivos iOS, macOS y Android
- Compatible con Windows, macOS, iOS, Android, Chrome OS y Linux como clientes VPN
- Incluye scripts auxiliares para gestionar usuarios VPN y certificados
**También disponible:**
- Docker VPN: [IPsec VPN](https://github.com/hwdsl2/docker-ipsec-vpn-server), [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 LLMs 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 propio stack de IA privado.
## Inicio rápido
Comienza con un servidor Linux\* que ejecute un [sistema operativo compatible](#requirements).
Usa este one-liner para configurar un servidor VPN IPsec:
```bash
wget https://get.vpnsetup.net -O vpn.sh && sudo sh vpn.sh
```
Tus datos de inicio de sesión de VPN se generarán aleatoriamente y se mostrarán al finalizar.
**Consejo:** Opcionalmente, instala [WireGuard](https://github.com/hwdsl2/wireguard-install), [OpenVPN](https://github.com/hwdsl2/openvpn-install) y/o [Headscale](https://github.com/hwdsl2/headscale-install) en el mismo servidor.
<details>
<summary>
Ver el script en acción (grabación de terminal).
</summary>
**Nota:** Esta grabación es solo para fines de demostración. Las credenciales de VPN en esta grabación **NO** son válidas.
<p align="center"><img src="https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/raw/master/docs/images/script-demo.svg"></p>
</details>
<details>
<summary>
Haz clic aquí si no puedes descargar.
</summary>
También puedes usar `curl` para descargar:
```bash
curl -fsSL https://get.vpnsetup.net -o vpn.sh && sudo sh vpn.sh
```
URLs de configuración alternativas:
```bash
https://github.com/hwdsl2/setup-ipsec-vpn/raw/master/vpnsetup.sh
https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/raw/master/vpnsetup.sh
```
Si no puedes descargarlo, abre [vpnsetup.sh](https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/blob/master/vpnsetup.sh) y haz clic en el botón `Raw` de la derecha. Pulsa `Ctrl/Cmd+A` para seleccionar todo, `Ctrl/Cmd+C` para copiar y luego pega en tu editor favorito.
</details>
También está disponible una [imagen de Docker](https://github.com/hwdsl2/docker-ipsec-vpn-server) precompilada. Para otras opciones y la configuración del cliente, lee las secciones siguientes.
\* Un servidor en la nube, un servidor privado virtual (VPS) o un servidor dedicado.
## 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 los debates
- ⭐ Marca el repositorio con una estrella si te resulta útil — ayuda a que otros lo descubran
## Requisitos
Un servidor en la nube, un servidor privado virtual (VPS) o un servidor dedicado, con una instalación de:
- Ubuntu 26.04, 24.04 o 22.04
- Debian 13 o 12
- CentOS Stream 10 o 9
- Rocky Linux o AlmaLinux
- Oracle Linux
<details>
<summary>
Otras distribuciones de Linux compatibles.
</summary>
- Raspberry Pi OS (Raspbian)
- Kali Linux
- Alpine Linux
- Red Hat Enterprise Linux (RHEL)
</details>
Esto también incluye máquinas virtuales Linux en nubes públicas, como [DigitalOcean](https://blog.ls20.com/digitalocean), [Vultr](https://blog.ls20.com/vultr), [Linode](https://blog.ls20.com/linode), [OVH](https://www.ovhcloud.com/en/vps/) y [Microsoft Azure](https://azure.microsoft.com). Los usuarios de nubes públicas también pueden desplegar usando [user data](https://blog.ls20.com/ipsec-l2tp-vpn-auto-setup-for-ubuntu-12-04-on-amazon-ec2/#vpnsetup).
Despliegue rápido en:
[](https://cloud.linode.com/stackscripts/37239) [](azure/README.md)
[**» Quiero ejecutar mi propia VPN pero no tengo un servidor para ello**](https://blog.ls20.com/ipsec-l2tp-vpn-auto-setup-for-ubuntu-12-04-on-amazon-ec2/#gettingavps)
Para servidores con un firewall externo (p. ej. [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.
También está disponible una [imagen de Docker](https://github.com/hwdsl2/docker-ipsec-vpn-server) precompilada. Los usuarios avanzados pueden instalarlo en una [Raspberry Pi](https://www.raspberrypi.com). [[1]](https://elasticbyte.net/posts/setting-up-a-native-cisco-ipsec-vpn-server-using-a-raspberry-pi/) [[2]](https://www.stewright.me/2018/07/create-a-raspberry-pi-vpn-server-using-l2tpipsec/)
> [!WARNING]
> Ejecuta estos scripts en el servidor Linux que alojará tu VPN. No los ejecutes en tu PC o Mac personal.
## Instalación
Primero, actualiza tu servidor con `sudo apt-get update && sudo apt-get dist-upgrade` (Ubuntu/Debian) o `sudo yum update` y reinicia. Esto es opcional, pero recomendable.
Para instalar la VPN, elige una de las siguientes opciones:
**Opción 1:** Haz que el script genere credenciales VPN aleatorias para ti (se mostrarán al finalizar).
```bash
wget https://get.vpnsetup.net -O vpn.sh && sudo sh vpn.sh
```
**Opción 2:** Edita el script y proporciona tus propias credenciales de VPN.
```bash
wget https://get.vpnsetup.net -O vpn.sh
nano -w vpn.sh
[Replace with your own values: YOUR_IPSEC_PSK, YOUR_USERNAME and YOUR_PASSWORD]
sudo sh vpn.sh
```
> [!NOTE]
> Una PSK de IPsec segura debe constar de al menos 20 caracteres aleatorios.
**Opción 3:** Defina sus credenciales de VPN como variables de entorno.
```bash
# All values MUST be placed inside 'single quotes'
# DO NOT use these special characters within values: \ " '
wget https://get.vpnsetup.net -O vpn.sh
sudo VPN_IPSEC_PSK='your_ipsec_pre_shared_key' \
VPN_USER='your_vpn_username' \
VPN_PASSWORD='your_vpn_password' \
sh vpn.sh
```
**Consejo:** Opcionalmente, instala [WireGuard](https://github.com/hwdsl2/wireguard-install), [OpenVPN](https://github.com/hwdsl2/openvpn-install) y/o [Headscale](https://github.com/hwdsl2/headscale-install) en el mismo servidor. Si tu servidor ejecuta CentOS Stream, Rocky Linux o AlmaLinux, primero instala OpenVPN/WireGuard, luego instala la VPN IPsec.
<details>
<summary>
Haz clic aquí si no puedes descargar.
</summary>
También puedes usar `curl` para descargar. Por ejemplo:
```bash
curl -fL https://get.vpnsetup.net -o vpn.sh
sudo sh vpn.sh
```
URLs de configuración alternativas:
```bash
https://github.com/hwdsl2/setup-ipsec-vpn/raw/master/vpnsetup.sh
https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/raw/master/vpnsetup.sh
```
Si no puedes descargarlo, abre [vpnsetup.sh](https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/blob/master/vpnsetup.sh) y haz clic en el botón `Raw` de la derecha. Pulsa `Ctrl/Cmd+A` para seleccionar todo, `Ctrl/Cmd+C` para copiar y luego pega en tu editor favorito.
</details>
<details>
<summary>
Quiero instalar la versión anterior de Libreswan 4.
</summary>
En 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 quieres instalar la versión anterior de Libreswan 4:
```bash
wget https://get.vpnsetup.net -O vpn.sh
sudo VPN_SWAN_VER=4.15 sh vpn.sh
```
**Nota:** Si la versión 5 de Libreswan ya está instalada, es posible que primero debas [Desinstalar la VPN](https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/blob/master/docs/uninstall.md) antes de instalar la versión 4 de Libreswan. Alternativamente, descarga el [script de actualización](#upgrade-libreswan), edítalo para especificar `SWAN_VER=4.15`, y luego ejecuta el script.
</details>
## Personalizar las opciones de la VPN
### Usar servidores DNS alternativos
Por defecto, los clientes están configurados para usar [Google Public DNS](https://developers.google.com/speed/public-dns/) cuando la VPN está activa. Al instalar la VPN, opcionalmente puedes especificar servidor(es) DNS personalizados para todos los modos de VPN. Ejemplo:
```bash
sudo VPN_DNS_SRV1=1.1.1.1 VPN_DNS_SRV2=1.0.0.1 sh vpn.sh
```
Use `VPN_DNS_SRV1` para especificar el servidor DNS primario, y `VPN_DNS_SRV2` para especificar el servidor DNS secundario (opcional).
A continuación se muestra una lista de algunos proveedores de DNS públicos populares para su referencia.
| Proveedor | DNS primario | DNS secundario | Notas |
| -------- | ----------- | ------------- | ----- |
| [Google Public DNS](https://developers.google.com/speed/public-dns) | 8.8.8.8 | 8.8.4.4 | Predeterminado en este proyecto |
| [Cloudflare](https://1.1.1.1/dns/) | 1.1.1.1 | 1.0.0.1 | Véase también: [Cloudflare for families](https://1.1.1.1/family/) |
| [Quad9](https://www.quad9.net) | 9.9.9.9 | 149.112.112.112 | Bloquea dominios maliciosos |
| [OpenDNS](https://www.opendns.com/home-internet-security/) | 208.67.222.222 | 208.67.220.220 | Bloquea dominios de phishing, configurable. |
| [CleanBrowsing](https://cleanbrowsing.org/filters/) | 185.228.168.9 | 185.228.169.9 | [Filtros de dominio](https://cleanbrowsing.org/filters/) disponibles |
| [NextDNS](https://nextdns.io/?from=bg25bwmp) | Varía | Varía | Bloqueo de anuncios, plan gratuito disponible. [Más información](https://nextdns.io/?from=bg25bwmp). |
| [Control D](https://controld.com/free-dns) | Varía | Varía | Bloqueo de anuncios, configurable. [Más información](https://controld.com/free-dns). |
Si necesita cambiar los servidores DNS después de configurar la VPN, consulte [Uso avanzado](https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/blob/master/docs/advanced-usage.md).
> [!NOTE]
> Si IKEv2 ya está configurado en el servidor, las variables anteriores no tienen efecto para el modo IKEv2. En ese caso, para personalizar las opciones de IKEv2, como los servidores DNS, primero puede [eliminar IKEv2](https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/blob/master/docs/ikev2-howto.md#remove-ikev2) y luego configurarlo de nuevo usando `sudo ikev2.sh`.
### Personalizar las opciones de IKEv2
Al instalar la VPN, los usuarios avanzados pueden personalizar opcionalmente las opciones de IKEv2.
<details open>
<summary>
Opción 1: Omitir IKEv2 durante la configuración de la VPN y luego configurar IKEv2 usando opciones personalizadas.
</summary>
Al instalar la VPN, puede omitir IKEv2 e instalar solo los modos IPsec/L2TP e IPsec/XAuth ("Cisco IPsec"):
```bash
sudo VPN_SKIP_IKEV2=yes sh vpn.sh
```
(Opcional) Si deseas especificar servidores DNS personalizados para los clientes VPN, define `VPN_DNS_SRV1` y, opcionalmente, `VPN_DNS_SRV2`. Consulta [Usar servidores DNS alternativos](#use-alternative-dns-servers) para más detalles.
Después de eso, ejecuta el script auxiliar de IKEv2 para configurar IKEv2 de forma interactiva usando opciones personalizadas:
```bash
sudo ikev2.sh
```
Puedes personalizar las siguientes opciones: el nombre DNS del servidor VPN, el nombre y el período de validez del primer cliente, el servidor DNS para los clientes VPN y si se deben proteger con contraseña los archivos de configuración del cliente.
**Nota:** La variable `VPN_SKIP_IKEV2` no tiene efecto si IKEv2 ya está configurado en el servidor. En ese caso, para personalizar las opciones de IKEv2, primero puedes [eliminar IKEv2](https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/blob/master/docs/ikev2-howto.md#remove-ikev2) y luego configurarlo de nuevo usando `sudo ikev2.sh`.
</details>
<details>
<summary>
Opción 2: Personalizar las opciones de IKEv2 usando variables de entorno.
</summary>
Al instalar la VPN, opcionalmente puedes especificar un nombre DNS para la dirección del servidor IKEv2. El nombre DNS debe ser un nombre de dominio completamente cualificado (FQDN). Ejemplo:
```bash
sudo VPN_DNS_NAME='vpn.example.com' sh vpn.sh
```
Del mismo modo, puede especificar un nombre para el primer cliente IKEv2. El valor predeterminado es `vpnclient` si no se especifica.
```bash
sudo VPN_CLIENT_NAME='your_client_name' sh vpn.sh
```
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:
```bash
sudo VPN_DNS_SRV1=1.1.1.1 VPN_DNS_SRV2=1.0.0.1 sh vpn.sh
```
Por defecto, no se requiere contraseña al importar la configuración del cliente IKEv2. Puedes optar por proteger los archivos de configuración del cliente usando una contraseña aleatoria.
```bash
sudo VPN_PROTECT_CONFIG=yes sh vpn.sh
```
</details>
<details>
<summary>
Como referencia: Lista de parámetros de IKEv1 e IKEv2.
</summary>
| Parámetro de IKEv1\* | Valor predeterminado | Personalizar (variable de entorno)\*\* |
| --------------------------- | --------------------- | ---------------------------------------- |
| Dirección del servidor (nombre DNS) | - | No, pero puede conectarse usando un nombre DNS |
| Dirección del servidor (IP pública) | Detección automática | VPN_PUBLIC_IP |
| Clave precompartida de IPsec | Generación automática | VPN_IPSEC_PSK |
| Nombre de usuario de VPN | vpnuser | VPN_USER |
| Contraseña de VPN | Generación automática | VPN_PASSWORD |
| Servidores DNS para clientes | Google Public DNS | VPN_DNS_SRV1, VPN_DNS_SRV2 |
| Omitir la configuración de IKEv2 | no | VPN_SKIP_IKEV2=yes |
\* Estos parámetros de IKEv1 son para los modos IPsec/L2TP e IPsec/XAuth ("Cisco IPsec").
\*\* Defínalos como variables de entorno al ejecutar vpn(setup).sh.
| Parámetro de IKEv2\* | Valor predeterminado | Personalizar (variable de entorno)\*\* | Personalizar (interactivo)\*\*\* |
| --------------------------- | --------------------- | ---------------------------- | ----------------------------- |
| Dirección del servidor (nombre DNS) | - | VPN_DNS_NAME | ✅ |
| Dirección del servidor (IP pública) | Detección automática | VPN_PUBLIC_IP | ✅ |
| Nombre del primer cliente | vpnclient | VPN_CLIENT_NAME | ✅ |
| Servidores DNS para clientes | Google Public DNS | VPN_DNS_SRV1, VPN_DNS_SRV2 | ✅ |
| Proteger los archivos de configuración del cliente | no | VPN_PROTECT_CONFIG=yes | ✅ |
| Habilitar/Deshabilitar MOBIKE | Habilitar si es compatible | ❌ | ✅ |
| Validez del certificado del cliente | 10 años (120 meses) | VPN_CLIENT_VALIDITY\*\*\*\* | ✅ |
| Validez del certificado de CA y del servidor | 10 años (120 meses) | ❌ | ❌ |
| Nombre del certificado de CA | IKEv2 VPN CA | ❌ | ❌ |
| Tamaño de la clave del certificado | 3072 bits | ❌ | ❌ |
\* Estos parámetros de IKEv2 son para el modo IKEv2.
\*\* Defínalos como variables de entorno al ejecutar vpn(setup).sh, o al configurar IKEv2 en modo automático (`sudo ikev2.sh --auto`).
\*\*\* Se pueden personalizar durante la configuración interactiva de IKEv2 (`sudo ikev2.sh`). Consulte la opción 1 anterior.
\*\*\*\* Use `VPN_CLIENT_VALIDITY` para especificar el período de validez del certificado del cliente en meses. Debe ser un número entero entre 1 y 120.
Además de estos parámetros, los usuarios avanzados también pueden [personalizar las subredes de VPN](https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/blob/master/docs/advanced-usage.md#customize-vpn-subnets) durante la configuración de la VPN.
</details>
## Próximos pasos
*Lea esto en otros idiomas: [English](https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/blob/master/README.md#next-steps), [简体中文](https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/blob/master/README-zh.md#下一步), [繁體中文](https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/blob/master/README-zh-Hant.md#下一步), [日本語](https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/blob/master/README-ja.md#次のステップ), [Русский](https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/blob/master/README-ru.md#следующие-шаги).*
Configure su computadora o dispositivo para usar la VPN. Consulte:
**[Configurar clientes VPN IKEv2 (recomendado)](https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/blob/master/docs/ikev2-howto.md)**
**[Configurar clientes VPN IPsec/L2TP](https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/blob/master/docs/clients.md)**
**[Configurar clientes VPN IPsec/XAuth ("Cisco IPsec")](https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/blob/master/docs/clients-xauth.md)**
**Lea el [📘 libro de VPN](https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/blob/master/docs/vpn-book.md) para acceder a [contenido adicional](https://ko-fi.com/post/Support-this-project-and-get-access-to-supporter-o-O5O7FVF8J).**
¡Disfrute de su 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://gitlab.com/hwdsl2/setup-ipsec-vpn/-/blob/master/docs/clients.md#windows-error-809) si el servidor o el cliente VPN están detrás de NAT (por ejemplo, un router doméstico).
La misma cuenta de VPN puede ser utilizada por varios dispositivos. Sin embargo, debido a una limitación de IPsec/L2TP, si desea conectar varios dispositivos desde detrás del mismo NAT (por ejemplo, un router doméstico), debe usar el modo [IKEv2](https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/blob/master/docs/ikev2-howto.md) o [IPsec/XAuth](https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/blob/master/docs/clients-xauth.md). Para ver o actualizar las cuentas de usuario de VPN, consulte [Administrar usuarios de VPN](https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/blob/master/docs/manage-users.md).
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)), abra los puertos UDP 500 y 4500 para la VPN. Usuarios de Aliyun, consulte [#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, consulte [Uso avanzado](https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/blob/master/docs/advanced-usage.md).
Usar el soporte del kernel podría mejorar el rendimiento de IPsec/L2TP. Está disponible en [todos los sistemas operativos compatibles](#requirements). Los usuarios de Ubuntu deben instalar el paquete `linux-modules-extra-$(uname -r)` y ejecutar `service xl2tpd restart`.
Los scripts harán una copia de seguridad de los archivos de configuración existentes antes de realizar cambios, con el sufijo `.old-date-time`.
## Actualizar Libreswan
Use este comando de una línea para actualizar [Libreswan](https://libreswan.org) ([registro de cambios](https://github.com/libreswan/libreswan/blob/main/CHANGES) | [anuncios](https://lists.libreswan.org)) en su servidor VPN.
```bash
wget https://get.vpnsetup.net/upg -O vpnup.sh && sudo sh vpnup.sh
```
<details>
<summary>
Haz clic aquí si no puedes descargar.
</summary>
También puedes usar `curl` para descargar:
```bash
curl -fsSL https://get.vpnsetup.net/upg -o vpnup.sh && sudo sh vpnup.sh
```
URLs de actualización alternativas:
```bash
https://github.com/hwdsl2/setup-ipsec-vpn/raw/master/extras/vpnupgrade.sh
https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/raw/master/extras/vpnupgrade.sh
```
Si no puede descargarlo, abra [vpnupgrade.sh](https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/blob/master/extras/vpnupgrade.sh) y haga clic en el botón `Raw` de la derecha. Pulse `Ctrl/Cmd+A` para seleccionar todo, `Ctrl/Cmd+C` para copiar y, a continuación, pegue el contenido en su editor preferido.
</details>
La última versión compatible de Libreswan es la `5.4.1`. Compruebe la versión instalada: `ipsec --version`.
**Nota:** `xl2tpd` se puede actualizar con el gestor de paquetes de su sistema, como `apt-get` en Ubuntu/Debian.
## Gestionar usuarios de VPN
Consulte [Gestionar usuarios de VPN](https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/blob/master/docs/manage-users.md).
- [Gestionar usuarios de VPN con scripts auxiliares](https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/blob/master/docs/manage-users.md#manage-vpn-users-using-helper-scripts)
- [Ver usuarios de VPN](https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/blob/master/docs/manage-users.md#view-vpn-users)
- [Ver o actualizar la PSK de IPsec](https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/blob/master/docs/manage-users.md#view-or-update-the-ipsec-psk)
- [Gestionar usuarios de VPN manualmente](https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/blob/master/docs/manage-users.md#manually-manage-vpn-users)
## Uso avanzado
Consulte [Uso avanzado](https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/blob/master/docs/advanced-usage.md).
- [Usar servidores DNS alternativos](https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/blob/master/docs/advanced-usage.md#use-alternative-dns-servers)
- [Cambios de nombre DNS y de IP del servidor](https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/blob/master/docs/advanced-usage.md#dns-name-and-server-ip-changes)
- [VPN solo IKEv2](https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/blob/master/docs/advanced-usage.md#ikev2-only-vpn)
- [Habilitar el secreto perfecto hacia adelante (PFS) en IKEv2](https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/blob/master/docs/advanced-usage.md#enable-ikev2-perfect-forward-secrecy)
- [IPs internas de la VPN y tráfico](https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/blob/master/docs/advanced-usage.md#internal-vpn-ips-and-traffic)
- [Especificar la IP pública del servidor VPN](https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/blob/master/docs/advanced-usage.md#specify-vpn-servers-public-ip)
- [Personalizar las subredes de la VPN](https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/blob/master/docs/advanced-usage.md#customize-vpn-subnets)
- [Compatibilidad con IPv6](https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/blob/master/docs/advanced-usage.md#ipv6-support)
- [Redirección de puertos a clientes VPN](https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/blob/master/docs/advanced-usage.md#port-forwarding-to-vpn-clients)
- [Túnel dividido](https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/blob/master/docs/advanced-usage.md#split-tunneling)
- [Acceder a la subred del servidor VPN](https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/blob/master/docs/advanced-usage.md#access-vpn-servers-subnet)
- [Acceder a los clientes VPN desde la subred del servidor](https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/blob/master/docs/advanced-usage.md#access-vpn-clients-from-servers-subnet)
- [Modificar las reglas de IPTables](https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/blob/master/docs/advanced-usage.md#modify-iptables-rules)
- [Desplegar el control de congestión Google BBR](https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/blob/master/docs/advanced-usage.md#deploy-google-bbr-congestion-control)
## Desinstalar la VPN
Para desinstalar la VPN IPsec, ejecute el [script auxiliar](https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/blob/master/extras/vpnuninstall.sh):
> [!CAUTION]
> Este script auxiliar eliminará la VPN IPsec de su servidor. Toda la configuración de la VPN se **eliminará de forma permanente**, y se eliminarán Libreswan y xl2tpd. Esto **no se puede deshacer**.
```bash
wget https://get.vpnsetup.net/unst -O unst.sh && sudo bash unst.sh
```
<details>
<summary>
Haz clic aquí si no puedes descargar.
</summary>
También puedes usar `curl` para descargar:
```bash
curl -fsSL https://get.vpnsetup.net/unst -o unst.sh && sudo bash unst.sh
```
URLs de scripts alternativos:
```bash
https://github.com/hwdsl2/setup-ipsec-vpn/raw/master/extras/vpnuninstall.sh
https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/raw/master/extras/vpnuninstall.sh
```
</details>
Para obtener más información, consulte [Desinstalar la VPN](https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/blob/master/docs/uninstall.md).
## Comentarios y preguntas
- ¿Tiene alguna sugerencia para este proyecto? Abra una [Solicitud de mejora](https://github.com/hwdsl2/setup-ipsec-vpn/issues/new/choose). También se aceptan [Pull requests](https://github.com/hwdsl2/setup-ipsec-vpn/pulls).
- Si encontró un error reproducible, abra un informe de error para la [VPN IPsec](https://github.com/libreswan/libreswan/issues?q=is%3Aissue) o para los [scripts de VPN](https://github.com/hwdsl2/setup-ipsec-vpn/issues/new/choose).
- ¿Tiene alguna pregunta? Primero busque en los [issues existentes](https://github.com/hwdsl2/setup-ipsec-vpn/issues?q=is%3Aissue) y en los comentarios [en este Gist](https://gist.github.com/hwdsl2/9030462#comments) y [en mi blog](https://blog.ls20.com/ipsec-l2tp-vpn-auto-setup-for-ubuntu-12-04-on-amazon-ec2/#disqus_thread).
- Haga preguntas relacionadas con la VPN en la lista de correo de [Libreswan](https://lists.libreswan.org) o [strongSwan](https://lists.strongswan.org), o lea estas wikis: [[1]](https://libreswan.org/wiki/Main_Page) [[2]](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/security_guide/sec-securing_virtual_private_networks) [[3]](https://wiki.strongswan.org/projects/strongswan/wiki/UserDocumentation) [[4]](https://wiki.gentoo.org/wiki/IPsec_L2TP_VPN_server) [[5]](https://wiki.archlinux.org/index.php/Openswan_L2TP/IPsec_VPN_client_setup).
## Licencia
Copyright (C) 2014-2026 [Lin Song](https://github.com/hwdsl2) [](https://www.linkedin.com/in/linsongui)
Basado en [el trabajo de Thomas Sarlandie](https://github.com/sarfata/voodooprivacy) (Copyright 2012)
[](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/)
Se requiere atribución: incluya mi nombre en cualquier obra derivada y hágame saber cómo la ha mejorado.