
Setup IPsec VPN — Actualizado!
Configuración automatizada de servidor VPN IPsec con soporte para IPsec/L2TP, IPsec de Cisco e IKEv2. Incluye scripts auxiliares para la gestión de usuarios y certificados, y genera perfiles para clientes de iOS, macOS, Android y Windows.
English | 简体中文 | 繁體中文 | 日本語 | Русский
Scripts de configuración automática del servidor VPN IPsec
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 al usar redes no seguras, p. ej. en cafeterías, aeropuertos o habitaciones de hotel.
Usaremos Libreswan como servidor IPsec, y xl2tpd como proveedor L2TP.
Características:
- Configuración del servidor VPN IPsec totalmente automatizada, sin necesidad de entrada del usuario
- 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 scripts auxiliares para gestionar usuarios y certificados VPN
También disponible:
- Docker VPN: IPsec VPN, 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
Primero, prepara tu servidor Linux* con una instalación de un SO compatible.
Usa este comando de una línea para configurar un servidor VPN IPsec:```bash wget https://get.vpnsetup.net -O vpn.sh && sudo sh vpn.sh
Tus datos de acceso a la VPN se generarán aleatoriamente y se mostrarán al finalizar.
> [!TIP]
> 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 alternativas de configuración:```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` a la derecha. Pulsa `Ctrl/Cmd+A` para seleccionar todo, `Ctrl/Cmd+C` para copiar y luego pégalo en tu editor favorito.
</details>
También está disponible una [imagen Docker](https://github.com/hwdsl2/docker-ipsec-vpn-server) precompilada. Para otras opciones y configuración del cliente, lee las secciones siguientes.
\* Un servidor en la nube, un servidor privado virtual (VPS) o un servidor dedicado.
## 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 debatir
- ⭐ 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, 12 o 11
- 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 [datos de usuario](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 Docker](https://github.com/hwdsl2/docker-ipsec-vpn-server) precompilada. Los usuarios avanzados pueden instalar 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/)
> [!ADVERTENCIA]
> **NO** ejecutes estos scripts en tu PC o Mac. ¡Solo deben usarse en un servidor!
## Instalación
Primero, actualiza tu servidor con `sudo apt-get update && sudo apt-get dist-upgrade` (Ubuntu/Debian) o `sudo yum update` y reinícialo. Esto es opcional, pero recomendado.
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 IPsec segura debe consistir en al menos 20 caracteres aleatorios.