Estoy ejecutando una aplicación web en la VM.
Puedo ver la aplicación a localhost:8888
través de un navegador desde la VM.
No puedo ver la aplicación desde el host en la misma URL. Ese es el objetivo.
Lo intenté VBoxManage modifyvm "VM name" --natdnshostresolver1 on
pero no tuvo efecto.
Mi configuración es:
- Anfitrión:ventana 7
- Invitado:Ubuntu 16.04.1 LTS
- Caja Virtual:5.1.4r110228
(Invitado) ifconfig
cuando está en NAT
kirkland@GC:~$ ifconfig
eth0 Link encap:Ethernet HWaddr 08:00:27:d0:fc:0e
inet addr:10.0.2.15 Bcast:10.0.2.255 Mask:255.255.255.0
inet6 addr: fe80::4c67:70b5:c37b:8fa8/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:7431 errors:0 dropped:0 overruns:0 frame:0
TX packets:3587 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:7444830 (7.4 MB) TX bytes:731870 (731.8 KB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:1566 errors:0 dropped:0 overruns:0 frame:0
TX packets:1566 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1
RX bytes:655936 (655.9 KB) TX bytes:655936 (655.9 KB)
(Invitado) /etc/hosts
127.0.0.1 localhost
127.0.1.1 GC
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
Respuesta1
La localhost:8888
URL es solo una URL válida dentro de su VM. Fuera de esa VM tendrás que usar ip.ad.dr.ess:8888
o hostname:8888
. En el último caso, ip.ad.dr.ess
se introduce una dependencia en la resolución del nombre de host en su red.
De forma predeterminada, cuando crea una VM en VirtualBox, el adaptador de red 1 está configurado en NAT. Esto le dará a la VM una dirección IP 10.0.2.15/24
y una ruta predeterminada 10.0.2.2
(que debería ser su host). En pocas palabras, Windows no se dirigirá a una dirección para la que proporciona NAT, sin pasar por más obstáculos primero.
Apagar la máquina virtual y cambiar la configuración del adaptador de red de la máquina virtual1 a "puenteado" permitirá que su host (y cualquier host en su red local) se comunique con esa máquina virtual sin agregar rutas especiales ni obstáculos por los que saltar.
Reinicie la máquina virtual. Verifique su conectividad a localhost:8888
. También verifique su conectividad hostname:8888
(asumiendo que el nombre de host se not
agregó a la dirección loopback/localhost en el archivo /etc/hosts) y ip-address:8888
. EDITAR: según los detalles de /etc/hosts publicados, usted are
vincula su VM y, por lo tanto, la aplicación web a la red loopback. Esta configuración no se puede utilizar fuera de la VM en absoluto.
Si su servidor web y su aplicación no dependen de la IP en la que se configuró/instaló por primera vez, y tiene un servidor DHCP en su LAN, la única otra información que debe necesitar para conectarse a la VM es la dirección IP que se asignado a través de DHCP.
Para encontrar la dirección IP de la VM: abra una ventana de terminal/consola desde el escritorio de Ubuntu (ctrl-alt-T), usamos /etc/hosts
los comandos hostname, ifconfig y grep para juntar las piezas y encontrar su dirección. Desde la terminal abierta, escriba hostname
y luego presione enter. Probablemente sea gc. En esa misma terminal, al escribir ifconfig eth0 | awk '/Bcast/{print $2}'
se mostrará la dirección. Debería tener una línea en /etc/hosts con la dirección seguida del nombre del host. grep [hostname] /etc/hosts
o grep [address] /etc/hosts
deberías encontrar la línea que necesitas. Si se le ocurre algo que no sea su dirección actual seguida del nombre de host, deberá modificar el archivo /etc/hosts para agregar la información correcta.
Los hosts en su LAN ahora deberían poder conectarse a la IP de su VM en el puerto 8888. El acceso de esos hosts/clientes a la aplicación web hostname:8888
dependerá de los archivos de hosts del cliente, el DNS local o incluso los servicios mDNS posiblemente proporcionados en su servidor DHCP. .
Respuesta2
Respuesta3
Para lograr esto, creo que sería mucho mejor usar el modo puente. Si eso no es posible o deseable, necesitará una ruta estática en su host.
Para agregar una ruta estática, haga esto: Busque en las propiedades de red de su host. Debería encontrar un adaptador llamado VirtualBox Host-Only Network. Encuentra su dirección IP. Probablemente sea 192.168.56.1, que creo que es el valor predeterminado, pero podría ser otra cosa. Llámelo abcd. Luego, obtenga la dirección IP de su invitado. Llame a ese wxyz (los primeros 3 octetos deben ser iguales en ambas direcciones). Cuando tenga eso, abra un indicador de DOS en su host y escriba este comando:
route add w.x.y.z mask 255.255.255.0 a.b.c.d
Si eso funciona, puede ejecutar el mismo comando con el modificador -p para hacerlo permanente (de lo contrario, desaparecerá la próxima vez que reinicie el host).