networking - guest - No se puede conectar a la red privada Vagrant desde el host
vagrant network (9)
Tu interfaz está abajo
Tuve el mismo problema. Era mi interfaz vboxnet0 quien estaba abajo. Dentro del listado de ip addr
tiene <BROADCAST,MULTICAST>
para su interfaz, pero debería ser <BROADCAST,MULTICAST,UP,LOWER_UP>
.
Eso significa que tu interfaz no funciona.
Puede confirmar con sudo ifconfig
. La interfaz no se mostrará pero si agrega -a
lo verá: sudo ifconfig -a
.
cómo sacarlo
Entonces, para que aparezca, puede hacer:
sudo ifconfig vbox
O
sudo ip link set vboxnet0 up
Ambas obras.
Tengo una caja virtual vagabunda en funcionamiento. Hasta ahora no he podido conectarme al servidor web. aquí está la puesta en marcha:
[jesse@Athens VVV-1.1]$ vagrant up
Bringing machine ''default'' up with ''virtualbox'' provider...
==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
default: Adapter 1: nat
default: Adapter 2: hostonly
==> default: Forwarding ports...
default: 22 => 2222 (adapter 1)
==> default: Running ''pre-boot'' VM customizations...
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
default: SSH address: 127.0.0.1:2222
default: SSH username: vagrant
default: SSH auth method: private key
default: Warning: Connection timeout. Retrying...
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
default: The guest additions on this VM do not match the installed version of
default: VirtualBox! In most cases this is fine, but in rare cases it can
default: prevent things such as shared folders from working properly. If you see
default: shared folder errors, please make sure the guest additions within the
default: virtual machine match the version of VirtualBox you have installed on
default: your host and reload your VM.
default:
default: Guest Additions Version: 4.2.0
default: VirtualBox Version: 4.3
==> default: Setting hostname...
==> default: Configuring and enabling network interfaces...
==> default: Mounting shared folders...
default: /vagrant => /home/jesse/vagrant/vvvStable/VVV-1.1
default: /srv/www => /home/jesse/vagrant/vvvStable/VVV-1.1/www
default: /srv/config => /home/jesse/vagrant/vvvStable/VVV-1.1/config
default: /srv/database => /home/jesse/vagrant/vvvStable/VVV-1.1/database
default: /var/lib/mysql => /home/jesse/vagrant/vvvStable/VVV-1.1/database/data
==> default: VM already provisioned. Run `vagrant provision` or use `--provision` to force it
==> default: Checking for host entries
en mi consola de host, ip addr show produce:
4: vboxnet0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 0a:00:27:00:00:00 brd ff:ff:ff:ff:ff:ff
5: vboxnet1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 0a:00:27:00:00:01 brd ff:ff:ff:ff:ff:ff
en el invitado rinde:
vagrant@vvv:~$ ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 08:00:27:12:96:98 brd ff:ff:ff:ff:ff:ff
inet 10.0.2.15/24 brd 10.0.2.255 scope global eth0
inet6 fe80::a00:27ff:fe12:9698/64 scope link
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 08:00:27:2c:d4:3e brd ff:ff:ff:ff:ff:ff
inet 192.168.50.4/24 brd 192.168.50.255 scope global eth1
Por ahora, todo lo que quiero hacer es acceder al servidor web en la máquina virtual, sea cual sea el camino. He intentado una variedad de cosas, solo tiro en la oscuridad. Estaré encantado de proporcionar cualquier información específica. Cualquier ayuda o sugerencia sería muy apreciada
Alternativamente, puede usar el reenvío de puerto manual a través de SSH (túnel SSH):
ssh -L 80:127.0.0.1:80 [email protected] -p 2222
Eso vincula el puerto de host 80 al puerto de VM 80 a través de su sesión de SSH a la VM.
En función de la salida proporcionada, la caja tiene 2 interfaces de red, 1 es el NAT por defecto y el otro privado - pregunte lo que usted dijo.
La razón por la que no puede acceder al sitio web alojado dentro de la VM a través de la interfaz privada: podría ser que la dirección IP del host eth0
o wlan0
no se encuentre en la misma red que la interfaz privada -> 192.168.50.4/24
y allí no es una ruta
Para acceder al sitio alojado por el servidor web dentro del huésped, tiene las siguientes opciones:
1. Reenvío de puertos NAT
Reenviar el puerto web, por ejemplo 80 al 8080 del host (no puede usar 80 porque es un puerto privilegiado en * NIX). Agregue lo siguiente
Vagrant.configure("2") do |config|
config.vm.network "forwarded_port", guest: 80, host: 8080,
auto_correct: true
end
NOTA: autocorrección resolverá conflictos de puerto si el puerto en el host ya está en uso.
HAGA una vagrant reload
y podrá acceder al sitio a través de http://localhost:8080/
2. Red pública (red puenteada VirtualBox)
Agregar una interfaz de red pública
Vagrant.configure("2") do |config|
config.vm.network "public_network"
end
Obtenga la IP de la máquina virtual después de que esté funcionando, el reenvío de puertos NO se aplica a la conexión en red puenteada. Por lo tanto, http://IP_ADDR
al sitio utilizando http://IP_ADDR
, si dentro de la VM se une a 80, de lo contrario especifique el puerto.
Estaba teniendo el mismo problema con Arch (2017-01-01). Tuvo que instalar net-tools
: sudo pacman -S net-tools
Virtual Box 5.1.12r112440, Vagrant 1.9.1.
Has configurado una red privada para tu máquina vagabunda
Si esa ip no es visible, entonces ssh a su máquina vagabunda y ejecute este comando
sudo /etc/init.d/networking restart
Compruebe para detener su firewall y iptables también
Puede que esto no se aplique exactamente, pero la "red privada" en el título me trajo aquí y otros pueden beneficiarse de que intenten ejecutar varias casillas de invitados en Mac OS X:
Uso "private_network" y no realizo reenvío de puertos. Es decir, accedo a mis VM por hosts como "project1.local", "project2.local".
Entonces, me sorprendió cuando intenté lanzar una segunda caja (un ubuntu scotch / box para LAMP) y se negó a iniciarse con un error (extracto):
"...The forwarded port to 2222 is already in use on the host machine..."
La solución propuesta del mensaje de error no funciona. Es decir, agregue esto a su Vagrantfile:
config.vm.network :forwarded_port, guest: 22, host: 1234
#Where 1234 would be a different port.
No estoy seguro de por qué sucede porque he corrido múltiples antes (pero no scotch / box). El problema es que incluso si usa private_network, Vagrant utiliza el reenvío de puertos para SSH.
La solución es establecer puertos ESPECÍFICAMENTE PARA SSH al agregar esto a sus archivos Vagrant:
# Specify SSH config explicitly with unique host port for each box
config.vm.network :forwarded_port,
guest: 22,
host: 1234,
id: "ssh",
auto_correct: true
Nota: autocorrección puede hacer que los números de puerto no únicos funcionen, pero no he probado eso.
Ahora puede ejecutar varias máquinas virtuales al mismo tiempo mediante una red privada.
(Gracias a Aaron Aaron y su publicación aquí: https://groups.google.com/forum/#!topic/vagrant-up/HwqFegoCXOc )
Terminé haciendo que la red privada también funcionara al eliminarla en Virtual Box. Cuando lo recreé de nuevo con vagrant, la configuración de ip se convirtió en:
vboxnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 1000
link/ether 0a:00:27:00:00:00 brd ff:ff:ff:ff:ff:ff
inet 192.168.50.1/24 brd 192.168.50.255 scope global vboxnet0
valid_lft forever preferred_lft forever
Tuve un problema similar en mi Mac. VirtualBox usa host solo para redes privadas. Para usarlo como una red interna, tuve que agregar esto a la configuración de red privada:
"virtualbox__intnet: true"
Una posibilidad más solo para futuras referencias.
Normalmente, cuando se crean máquinas virtuales usando redes privadas, Vagrant (Virtualbox? No seguro) crea las entradas correspondientes en la tabla de enrutamiento del host. Puedes ver estos usando
netstat -rn
De alguna manera, mi host había entrado en un estado en el que la creación de máquinas virtuales no daba como resultado la aparición de nuevas rutas en la tabla de enrutamiento, con la correspondiente incapacidad para conectarse. De nuevo, puede ver las rutas que no aparecen utilizando el comando anterior.
La creación manual de la ruta me permitió llegar a las máquinas virtuales. Por ejemplo:
sudo route -nv add -net 10.0.4 -interface vboxnet
(Sustituya la red y la interfaz apropiadas). Pero no quería tener que hacer eso.
Basado en esta pregunta , intenté reiniciar mi host y Vagrant comenzó a crear automáticamente las entradas de la tabla de enrutamiento nuevamente.
No estoy seguro exactamente cuál era el problema, pero espero que esto ayude a alguien.