Configurar redes en vagrant
Vagrant permite definir redes para tus máquinas virtuales de forma sencilla y controlada a través del archivo Vagrantfile

Vagrant permite definir redes para tus máquinas virtuales de forma sencilla y controlada a través del archivo Vagrantfile
. Estas redes son fundamentales para probar servicios, configurar entornos de desarrollo y simular redes reales.
Redes en vagrant
De la documentación oficial https://developer.hashicorp.com/vagrant/docs/networking podemos mencionar los siguientes puntos:
- Vagrant proporciona opciones de red de alto nivel como puertos reenviados, redes públicas y redes privadas para facilitar el acceso al entorno virtual.
- Estas configuraciones son compatibles con múltiples proveedores, lo que permite usar el mismo Vagrantfile con VirtualBox, VMware, entre otros.
- Se recomienda a los principiantes usar únicamente las opciones de red de alto nivel hasta dominar el flujo de trabajo de Vagrant, ya que la configuración específica del proveedor puede ser compleja y riesgosa.
- Existe una suposición por defecto de que hay un adaptador NAT disponible en eth0, lo que garantiza la comunicación básica con la máquina virtual.
- Los proveedores pueden tener suposiciones adicionales, por lo que es importante revisar su documentación específica.
- Para configuraciones más avanzadas, es posible personalizar las interfaces de red, pero esto requiere entender cómo funciona el proveedor subyacente.

Ejercicio de prueba
Antes de explicar cuales son las redes en vagrant, vamos a crear un ejercicio, procedemos a crear un proyecto en vagrant como lo explico en primeros pasos con vagrant, creamos un directorio llamado proyecto-vagrant
y ejecutamos:
vagrant init
Esto creara en el directorio el archivo proyecto-vagrant
vagrantfile el cual vamos a agregar el box "ubuntu/bionic64" de momento, nos deberá quedar de la siguiente forma:
Vagrant.configure("2") do |config|
config.vm.box = "ubuntu/focal64"
config.vm.network "forwarded_port", guest: 80, host: 8080
end
Vemos en el vagrantfile anterior que añadimos una linea para configurar "forwared_port", de esta forma añadimos la configuración de las redes en vagrant.
Uso básico de redes
De la documentación https://developer.hashicorp.com/vagrant/docs/networking/basic_usage se pueden sacar las siguientes ideas:
- Se pueden definir varias redes mediante varias
config.vm.network
llamadas dentro del Vagrantfile. - Las redes se configuran y habilitan automáticamente después de haber sido definidas en el Vagrantfile como parte del
vagrant
up
procesovagrant reload
. - Se puede definir un nombre de host para una máquina virtual Vagrant mediante la
config.vm.hostname
Redes en vagrant
📑 Red Reenviada (Port Forwarding)
Los puertos reenviados de Vagrant le permiten acceder a un puerto en su máquina host y tener todos los datos reenviados a un puerto en la máquina invitada, a través de TCP o UDP.
Ejemplo:
Vagrant.configure("2") do |config|
config.vm.box = "ubuntu/focal64"
config.vm.network "forwarded_port", guest: 80, host: 8080, id:"tcp8080"
end
Esto significa que accediendo a localhost:8080
en tu máquina real, verás el servicio que corre en el puerto 80 de la VM.

🖥️ Red Privada (Private Network o Host-only)
Las redes privadas de Vagrant te permiten acceder a tu equipo invitado mediante una dirección que no es pública desde internet. Se asigna una IP fija o tambien puede asignarla manualmente:
DHCP
La forma más fácil de utilizar una red privada es permitir que la IP se asigne mediante DHCP.
Vagrant.configure("2") do |config|
config.vm.network "private_network", type: "dhcp"
end
Esto asignará automáticamente una dirección IP del espacio de direcciones reservado. La dirección IP se puede determinar accediendo vagrant ssha la máquina por SSH y usando la herramienta de línea de comandos adecuada para encontrarla, como ifconfigo ip addr show.
⚠️ Nota: si al ejecutar vagrant up recibe el siguiente mensaje ✴️ "A host only network interface you're attempting to configure via DHCP already has a conflicting host only adapter with DHCP enabled.", se debe a que Vagrant está tratando de crear una red privada (host-only) que use DHCP, pero VirtualBox ya tiene otra interfaz host-only con DHCP habilitado, y eso está causando un conflicto.

Estas se deben de eliminar para que al crear la maquina virtual, vagrant pueda crear la inerfaz DHCP.
Ingresamos por ssh a la maquina de vagrant para comprobar que IP a asignado como se explica en la documentación mencionada anteriormente.

IP estática
También puede especificar una dirección IP estática para la máquina. Esto le permite acceder a la máquina administrada por Vagrant usando una IP estática conocida. El archivo Vagrantfile para una IP estática tiene este aspecto:
Vagrant.configure("2") do |config|
config.vm.network "private_network", ip: "192.168.50.4"
end
Depende de los usuarios asegurarse de que la IP estática no entre en conflicto con ninguna otra máquina en la misma red.
IPv6
Puede especificar una IP estática mediante IPv6. DHCP no es compatible con IPv6. Para usar IPv6, simplemente especifique una dirección IPv6 como IP:
Vagrant.configure("2") do |config|
config.vm.network "private_network", ip: "fde4:8dba:82e1::c4"
end
Esto asignará esa IP a la máquina. /64Se reservará toda la subred. Asegúrese de usar las direcciones locales reservadas aprobadas para IPv6.
🌐 Red Pública (Public Network)
Uso común: Tu VM se comporta como otro dispositivo más en tu red local.
IP dinámica o fija: Puede obtener IP mediante DHCP o puedes asignarla.
Ejemplo:
config.vm.network "public_network"
Al ejecutar vagrant up
, te preguntará a qué adaptador de red física conectarse.
Ventajas:
- Accesible desde otros dispositivos de la red.
- Útil para probar acceso externo o servicios públicos.
📊 Comparación rápida
Tipo de Red | Acceso desde anfitrión | Acceso desde otras máquinas | Requiere IP manual |
---|---|---|---|
Privada | ✅ | ❌ | Opcional |
Pública | ✅ | ✅ | Opcional |
Reenviada | ✅ (por puerto) | ❌ | ❌ |