VPNCloud: Construyendo nuestra propia red privada en la nube
Publicado el 25.06.2025
VPNCloud: Construyendo su propia red privada en la nube
En un mundo donde cada vez más servicios se mudan a la nube y el trabajo remoto se vuelve la norma, surge la necesidad de un acceso seguro y privado a sus recursos. Los servicios VPN tradicionales, aunque resuelven parte de los problemas, a menudo son centralizados y pueden no ser la solución más flexible para construir su propia red protegida entre varios servidores, dispositivos o incluso oficinas.
Aquí entra en escena VPNCloud – una herramienta ligera, descentralizada y flexible para crear redes privadas tipo mesh (full-mesh VPN). Permite unir diferentes servidores, ordenadores, Raspberry Pi y otros dispositivos en una única red virtual cifrada que puede desplegarse en cualquier lugar: desde su router doméstico hasta servidores en la nube.
¿Qué es VPNCloud y para qué sirve?
VPNCloud es un proyecto open-source escrito en Go que permite crear redes privadas virtuales (VPN) en topología “full mesh”. Esto significa que cada dispositivo en su red VPNCloud puede comunicarse directamente con cualquier otro dispositivo en la misma red, sin necesidad de pasar por un servidor central.
¿Por qué es útil?
- Acceso seguro a recursos domésticos/oficina: Puede acceder a sus servidores de archivos, cámaras IP o domótica desde cualquier lugar del mundo como si estuviera en la red local.
- Unir servidores en la nube: Si tiene servidores en distintos proveedores de nube (por ejemplo, DigitalOcean, AWS, Google Cloud) o incluso en distintas regiones de un mismo proveedor, VPNCloud les permitirá comunicarse entre sí por direcciones IP privadas, aumentando la seguridad y simplificando la interacción.
- Aislar servicios: Puede separar parte de su infraestructura en una red privada inaccesible desde fuera y comunicarse con ella solo a través de VPNCloud.
- Ocultar el tráfico: Todo el tráfico dentro de VPNCloud está cifrado, lo que lo protege contra escuchas.
- Flexibilidad: No es necesario tener una IP pública fija ni hacer reenvío de puertos en el router para cada nodo. Los nodos de VPNCloud pueden estar detrás de NAT.
¿Cómo funciona VPNCloud?
VPNCloud se basa en el protocolo UDP. Cada nodo en la red VPNCloud tiene un identificador único y establece una conexión cifrada con otros nodos. Es importante que, para la conexión inicial, los nodos conozcan un “punto de entrada” (nodo seed) que les ayude a encontrarse entre sí. Tras establecer la conexión, el tráfico entre nodos se enruta directamente, lo que proporciona baja latencia.
VPNCloud crea una interfaz de red virtual (interfaz TAP) en cada dispositivo, a través de la cual pasa el tráfico cifrado. A esa interfaz se le asigna una dirección IP de su subred privada VPNCloud.
Instalación de VPNCloud
VPNCloud es un binario que se instala fácilmente.
Linux (ejemplo para Debian/Ubuntu):
Descargar la última versión: VPNCloud suele estar disponible como binarios listos en la página de releases de GitHub del proyecto o a través de repositorios oficiales. Por ejemplo, para Debian/Ubuntu:
echo "deb https://repo.ddswd.de/deb stable main" | sudo tee /etc/apt/sources.list.d/vpncloud.list wget https://repo.ddswd.de/deb/public.key -qO - | sudo apt-key add - sudo apt update sudo apt install vpncloudPara otros sistemas o arquitecturas (ARM, macOS, Windows) descargue el binario correspondiente y colóquelo en el PATH (por ejemplo,
/usr/local/bin).Verificar la instalación:
vpncloud --version
Ejemplos de configuración
VPNCloud se configura mediante un archivo YAML. Veamos varios escenarios comunes.
Principios generales:
network: Nombre único de su red VPN. Todos los nodos deben usar el mismo nombre.password: Contraseña para su red. Obligatoria para el cifrado.ip: Dirección IP que recibirá este nodo en su red virtual VPNCloud. Debe ser única para cada nodo.peers: Lista de otros nodos (sus IPs públicas/nombres de dominio y puertos) a los que este nodo intentará conectarse. Estos nodos se llaman “seed peers” o “nodos semilla”. A través de ellos los nodos se descubrirán entre sí. Basta con que cada nodo conozca al menos un nodo semilla disponible.listen: Dirección y puerto en que VPNCloud escuchará conexiones entrantes.0.0.0.0:puertosignifica escuchar en todas las interfaces disponibles.mode: Modo de funcionamiento de la interfaz de red virtual.switch(por defecto): Funciona como un conmutador Ethernet (Capa 2). Adecuado para unir subredes completas o para DHCP dentro de la VPN. Crea una interfaz TAP.router: Funciona como enrutador IP (Capa 3). Reenvía paquetes IP. Crea una interfaz TUN. Más ligero que switch si no necesita funcionalidad L2.hub: Concentrador simple. Todo el tráfico se envía a todos los nodos (menos eficiente).
crypto: Tipo de cifrado. Por defectoaes256. Recomendado.
Escenario 1: Dos máquinas en la nube (caso más simple)
Supongamos que tenemos dos servidores en la nube, Server A y Server B, y queremos unirlos en la red privada 10.10.10.0/24.
Server A (IP pública: 203.0.113.1):
Cree el archivo config-a.yaml:
network: mycloudvpn
password: "MySecurePassword123" # Reemplace por su contraseña segura
ip: 10.10.10.1/24 # Dirección IP para Server A en VPNCloud
listen: 0.0.0.0:1194 # Puerto en el que escucha VPNCloud (puede ser cualquier puerto libre)
peers:
- 203.0.113.2:1194 # Indicamos la IP y el puerto de Server B
Server B (IP pública: 203.0.113.2):
Cree el archivo config-b.yaml:
network: mycloudvpn
password: "MySecurePassword123" # La misma contraseña que en Server A
ip: 10.10.10.2/24 # Dirección IP para Server B en VPNCloud
listen: 0.0.0.0:1194
peers:
- 203.0.113.1:1194 # Indicamos la IP y el puerto de Server A
Arranque en cada servidor:
sudo vpncloud -c config-a.yaml # En Server A
sudo vpncloud -c config-b.yaml # En Server B
Comprobación:
Después de iniciar en ambos servidores debería aparecer una nueva interfaz de red (por ejemplo, vpncloud0).
Ejecute ip a o ifconfig y asegúrese de que la interfaz está creada y tiene la dirección IP asignada.
Luego intente hacer ping al otro nodo por su IP de VPNCloud:
ping 10.10.10.2 # Desde Server A
ping 10.10.10.1 # Desde Server B
Si los pings funcionan, ¡su red privada está establecida!
Escenario 2: Tres nodos con traversía de NAT (por ejemplo, casa, oficina, nube)
Supongamos que tiene:
- PC doméstico (detrás de NAT): IP 192.168.1.100 (privada), IP pública cambiante.
- Servidor de oficina (detrás de NAT): IP 192.168.2.10 (privada), IP pública cambiante.
- VPS en la nube (con IP pública): 203.0.113.10.
Para funcionar a través de NAT, cuando los nodos no tienen IP pública directa, VPNCloud utiliza la técnica de “NAT hole punching” (travesía de NAT). Para ello se necesita al menos un nodo con IP pública que actúe como “seed” para los demás nodos.
VPS en la nube (nodo seed):
network: mysecuremesh
password: "AnotherVerySecurePassword456"
ip: 10.10.10.10/24
listen: 0.0.0.0:1194
# Este nodo no necesita peers, ya que "reparte" sus coordenadas
PC doméstico (nodo cliente):
network: mysecuremesh
password: "AnotherVerySecurePassword456"
ip: 10.10.10.100/24
listen: 0.0.0.0:1194
peers:
- 203.0.113.10:1194 # Indicamos la IP pública del VPS en la nube
Servidor de oficina (nodo cliente):
network: mysecuremesh
password: "AnotherVerySecurePassword456"
ip: 10.10.10.200/24
listen: 0.0.0.0:1194
peers:
- 203.0.113.10:1194 # Indicamos la IP pública del VPS en la nube
Orden de arranque:
Arranque primero VPNCloud en el VPS en la nube. Solo después, inicie en el PC doméstico y en el servidor de oficina. Una vez que todos los nodos se conecten al VPS en la nube, podrán descubrirse entre sí y establecer conexiones directas, incluso si ambos clientes están detrás de NAT.
Comprobación:
Desde cualquier nodo intente hacer ping a los otros nodos por su IP de VPNCloud:
ping 10.10.10.10
ping 10.10.10.100
ping 10.10.10.200
Escenario 3: Enrutamiento de tráfico hacia la red real (modo router)
Supongamos que tenemos un servidor en la nube (Server C) con IP pública 203.0.113.30 y una subred interna 192.168.50.0/24, y un PC doméstico (detrás de NAT), y queremos que el PC doméstico tenga acceso a toda la subred interna 192.168.50.0/24 a través de VPNCloud.
Aquí Server C actuará como “router” para la red interna. Para ello usamos mode: router y configuramos el reenvío de rutas.
Server C (VPS en la nube con red interna 192.168.50.0/24):
network: myroutedvpn
password: "RouterVPNPasswordXYZ"
ip: 10.10.10.30/24 # IP de Server C en VPNCloud
listen: 0.0.0.0:1195
peers: [] # No indica peers si es el seed principal
mode: router
forward:
- 192.168.50.0/24 # Reenviar tráfico hacia esta subred
Importante para Server C:
Asegúrese de que en Server C esté habilitado el reenvío IP (IP forwarding).
sudo sysctl -w net.ipv4.ip_forward=1 # Para que sea permanente tras reinicios, añádalo en /etc/sysctl.conf: # net.ipv4.ip_forward = 1Configure reglas de iptables (o firewalld/ufw) para permitir el paso de tráfico desde la interfaz de VPNCloud hacia su red interna y de vuelta, y también NAT (mascaradeo) si los dispositivos de la red interna deben tener acceso a Internet a través de Server C.
Ejemplo de reglas iptables básicas para Server C:
# Permitir forwarding entre vpncloud0 y eth0 (o su interfaz principal) sudo iptables -A FORWARD -i vpncloud0 -o eth0 -j ACCEPT sudo iptables -A FORWARD -i eth0 -o vpncloud0 -j ACCEPT # Activar masquerading para el tráfico que sale de VPNCloud a Internet por eth0 sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE # Guardar las reglas (depende de su SO) # Por ejemplo, en Debian/Ubuntu: sudo apt install iptables-persistent # sudo netfilter-persistent save
PC doméstico (cliente):
network: myroutedvpn
password: "RouterVPNPasswordXYZ"
ip: 10.10.10.100/24 # IP del PC doméstico en VPNCloud
listen: 0.0.0.0:1195
peers:
- 203.0.113.30:1195 # IP pública de Server C
mode: router
Configurar la ruta en el PC doméstico:
Después de iniciar VPNCloud en el PC doméstico, debe añadir una ruta para que el tráfico hacia la red 192.168.50.0/24 vaya por la interfaz VPNCloud.
sudo ip r add 192.168.50.0/24 dev vpncloud0
Ahora el PC doméstico podrá comunicarse con los dispositivos en la red 192.168.50.0/24 a través de la conexión VPNCloud.
Observaciones importantes y buenas prácticas
Contraseñas: Use siempre contraseñas fuertes y únicas para su red VPNCloud. ¡Es la clave de seguridad!
Puertos: Asegúrese de que los puertos en los que escucha VPNCloud (
listen) estén abiertos en los firewalls de todos los nodos participantes.Direcciones IP: Planifique cuidadosamente la subred de su red VPNCloud para que no se solape con redes locales ya existentes.
DNS: En escenarios complejos puede necesitar configurar servidores DNS para resolver nombres dentro de la red VPNCloud o usar
/etc/hostsen cada nodo.Ejecución como servicio: Para sistemas de producción se recomienda ejecutar VPNCloud como servicio del sistema (systemd, upstart, etc.) para que arranque automáticamente al boot. Ejemplo de unit-file para systemd:
Cree
/etc/systemd/system/vpncloud@.service:[Unit] Description=VPNCloud instance %i After=network-online.target [Service] ExecStart=/usr/local/bin/vpncloud -c /etc/vpncloud/%i.yaml Restart=on-failure LimitNOFILE=65536 [Install] WantedBy=multi-user.targetLuego:
sudo systemctl enable vpncloud@config-a # para el archivo config-a.yaml sudo systemctl start vpncloud@config-a sudo systemctl status vpncloud@config-aFiabilidad de los nodos seed: Para una red mesh es suficiente que cada nodo conozca al menos un peer en funcionamiento. Si no dispone de una IP pública fija para un nodo seed, considere usar DDNS o especifique varios nodos seed para mayor tolerancia a fallos.
Rendimiento: El rendimiento de VPNCloud puede verse afectado por la carga del CPU (debido al cifrado) y el ancho de banda de la red. Para escenarios de alta carga puede necesitar hardware más potente.
VPNCloud es una herramienta potente y flexible para crear sus propias redes privadas. ¡Un poco de configuración y obtendrá acceso seguro y descentralizado a su infraestructura distribuida!
Reseñas relacionadas
Muchísimas gracias a Mijaíl por su trabajo, estoy muy satisfecho con el resultado. Agradezco especialmente las recomendaciones durante la configuración: a partir de un pliego de requisitos bastante confuso por mi parte (y yo entiendo poco de servidores), Mijaíl, con preguntas aclaratorias y propuestas, formuló una comprensión clara de qué tareas resolvería la configuración final y cómo organizarlo todo de la mejor manera. ¡Lo recomiendo!
ladohinpy · Configuración de Mikrotik hAP. Configuraré su router Wi‑Fi Mikrotik.
21.07.2025 · ⭐ 5/5
Muchísimas gracias a Mijaíl por el trabajo, estoy muy satisfecho con el resultado. Agradezco especialmente las recomendaciones durante el proceso de configuración; a partir de mi especificación bastante confusa (y yo sé poco de servidores), Mijaíl, con preguntas aclaratorias y propuestas de su parte, formuló una comprensión clara de qué tareas resolverá la configuración final y cómo organizar todo de la mejor manera. ¡Lo recomiendo!
Excelente profesional, experto y persona maravillosa. En una hora nos arregló lo que llevábamos días intentando solucionar. Estoy seguro de que no será la primera vez que recurramos a su excepcional profesionalismo.
Ravenor · MikroTik hAP: configuración del router. Configuraré su router MikroTik Wi‑Fi.
28.05.2025 · ⭐ 5/5
Excelente especialista, un experto con mucha experiencia y una persona maravillosa. En una hora nos arregló aquello por lo que llevábamos días rompiéndonos la cabeza! Estoy seguro de que no será la primera vez que recurramos a su inmenso profesionalismo
¡Un enfoque profesional!
ErlikZ · Configuración del router Mikrotik hAP. Configuraré su router Mikrotik Wi-Fi.
31.03.2025 · ⭐ 5/5
¡Enfoque profesional al asunto!
Sabe, puede, hace. Todo rápido y al grano; quedé satisfecho con la colaboración.
Soveni4 · Configuración de Mikrotik hAP. Configuraré el router Wi-Fi Mikrotik para usted.
Cliente acostumbrado14.03.2025 · ⭐ 5/5
Sabe, puede, hace. Todo de forma rápida y al grano, quedé satisfecho con la colaboración.
¡Gracias! Configuraron el router según mi especificación técnica, con una explicación completa de lo que estamos haciendo.
GFSoft · Configuración del router MikroTik hAP. Configuraré un router MikroTik Wi‑Fi para usted.
Comprador experimentado09.03.2025 · ⭐ 5/5
¡Gracias! Configuraron el router según mi especificación técnica, con una explicación completa de lo que hacemos
¡Todo genial! ¡Gracias! Lo recomiendo
NekMiha · Ayuda con el router Mikrotik
Gran comprador16.11.2024 · ⭐ 5/5
¡Todo genial! ¡Gracias! Lo recomiendo