¿Cómo puedo acceder a Apache (en el invitado VirtualBox) desde el host?

142

Instalé Apache en una máquina virtual Ubuntu. Cuando entro en el invitado y cargo Firefox, puedo ver que Apache funciona bien cuando busco localhost.

Me gustaría acceder a esta misma página a través del host. Intenté usar la dirección IP del invitado pero no aparece nada.

Idealmente, me encantaría configurar mi Windows 7 (host) para solicitar http://guestserver.comel servidor Apache en el invitado. ¿Cómo puedo hacer esto?

urok93
fuente
Encontré un sitio que me ayudó a resolverlo. Las respuestas a continuación son correctas, pero no muestran nada sobre la creación de un adaptador virtual en VM. El sitio al que me referí es: christophermaier.name/2010/09/01/…
Sudhir Dhumal

Respuestas:

156

Si necesita otras máquinas en su red física para poder llegar a su VM (o si la VM necesita acceso a Internet), use una red puenteada. De lo contrario, quédese con las redes de solo host.

  1. Detenga su VM y abra su configuración en el Administrador de VirtualBox (OSE)
  2. Vaya a la pestaña Red
  3. Seleccione el modo de red que desee (conexión en red en puente o solo host) (en el ejemplo a continuación, estoy usando solo host)

    Si desea utilizar redes en puente, debe seleccionar el adaptador de red correcto en Nombre . Para las conexiones por cable, seleccionaría algo llamado como eth0. Las conexiones inalámbricas generalmente se nombran wlan0(los números pueden variar)

  4. Guarda la configuración
  5. Inicie la máquina virtual Ubuntu
  6. Cuando esté arriba, puede recopilar la dirección IP ejecutando:

    ifconfig | grep addr
    

    En la salida a continuación, se 192.168.56.101encuentra la dirección IP que se puede usar en su sistema host Win7 para acceder a su VM:

    eth0  Link encap:Ethernet  HWaddr 08:00:27:70:27:fe  
          inet addr:192.168.56.101  Bcast:192.168.56.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe7b:25fe/64 Scope:Link
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
    
  7. En su sistema host de Windows, edite C:\Windows\System32\drivers\etc\hostscomo administrador y agregue una línea:

    192.168.56.101   guestserver.com
    

    Si tiene un sistema host Ubuntu, edite /etc/hostsusandosudo nano /etc/hosts

  8. ¡Lucro!
Lekensteyn
fuente
2
Esto funcionó perfectamente para las redes solo de host y ahora puedo acceder al invitado desde el navegador del host. Sin embargo, con una conexión en puente, que me gustaría, no tengo acceso a Internet desde el invitado.
urok93
55
ipconfig no es un comando en Linux, es ifconfig. ¿Te refieres a eso?
Max
77
En Windows 7/8 el archivo host está aquí: C: \ Windows \ System32 \ drivers \ etc \ hosts
Dalen
2
@begueradj Esos pasos anteriores se aplican a las redes en puente, pero algunas redes no permiten / le dan múltiples direcciones. En mi uni, no pude usar redes en puente por eso, en esas situaciones usaría NAT con reenvío de puertos.
Lekensteyn
1
Habilitar dos adaptadores de red, uno NAT y puente, me permitió ver y ser visto.
stenci
13

En mi caso, tengo un enrutador que asigna una IP estática a mi PC host.

  1. Configure el adaptador de red como Bridge:

    Configuración> Red> Adaptador 1 ( Habilitar adaptador de red )> Adjunto a: ( Adaptador de puente )> Aceptar

  2. Inicie la máquina virtual> inicie sesión

  3. Cambie la IP de VirtualMachine de dinámica a estática

    sudo nano / etc / network / interfaces

  4. En La interfaz de red principal, cambie la palabra dhcp a estática e ingrese su nueva IP estática o comente la línea y agregue una nueva

:

#iface eth0 inet dhcp
iface eth0 inet static
        address 192.168.10.110
        netmask 255.255.255.0
        gateway 192.168.10.1
        network 192.168.10.0
        broadcast 192.168.10.255

Observe que mi enrutador funciona en xxx.xxx. 10 .xy el tuyo podría estar en xxx.xxx. 0 .xo xxx.xxx. 1 .xo alguna otra.

Después de hacer eso, puede tener conexión a Internet tanto en el equipo host como en el invitado, y escribir esa IP estática en su navegador web para verificar su servidor apache.

Nuc134rB0t
fuente
Olvidé decir que debe asegurarse de que su / etc / hostname esté configurado correctamente de esta manera: nameserver [your_isp_primary_dns] y nameserver [your_isp_secondary_dns]
Nuc134rB0t
8

En lugar de intentar configurar los adaptadores en Adaptador de red en puente o solo host, puede intentar el reenvío de puertos en Firewall / Otros puertos, con su puerto no configurado para conexiones tcp y udp.

sp123
fuente
6

La respuesta aceptada no funcionó para mí (instalé virutalbox dentro de ubuntu 12.04 LTS y dentro de virtualbox instalé ubuntu 14.04 LTS Server). Acabo de cambiar la configuración de red para el Adaptador1 y el Adaptador2, es decir, configurar el Adaptador1 para "redes puenteadas" y el Adaptador2 para "NAT" y comenzó a funcionar.

Gaurav Pandey
fuente
Esto fue útil, pero cambie el orden del adaptador para que el invitado use NAT de forma predeterminada y pueda conectarse a Internet.
MadeOfAir
Esto realmente funcionó para mí. Estoy tratando de acceder a una máquina virtual de Windows desde un host de Mac.
benjaminz
1
Después de horas de leer y probar cualquier otra solución que pude encontrar en línea, esta idea tuya funcionó de maravilla. ¡Muchas gracias por escribirlo! Usando Ubuntu 18.04 como anfitrión e invitado.
John
5

Si solo necesita un puerto específico (por ejemplo, si está ejecutando una aplicación web como Jetty o Tomcat), simplemente haga lo siguiente:

Configuración -> Red -> Establecer uno de los adaptadores como NAT -> Presione 'Reenvío de puerto' -> Establecer el puerto de host e invitado relevante.

Una vez que guarde, puede pasar de su máquina local a localhost: hostport y será redirigido al puerto relevante de la caja virtual y ya está.

Viajero estacionario
fuente
4

Si no puede conectarse a través de IP, es probable que no tenga éxito con los nombres DNS en una instalación predeterminada de Apache.

compruebo la configuración de red del host virtual, siempre lo pongo en puente, se puede acceder a él a través de toda la red.

PvdL
fuente
Lo configuré en puente pero ahora el invitado no se conecta a Internet.
urok93
¿obtienes una IP en el sistema operativo de búsqueda? Por lo general, configuro varias NIC para que coincidan con todas mis NIC físicas. ¿Puede quizás deshacerse de su ifconfig de la búsqueda y el host?
PvdL
Cuando estoy trabajando con conexión inalámbrica, funciona pero con cable no, aquí hay algunas capturas de pantalla que muestran mi configuración: imageshack.us/photo/my-images/832/guestr.png imageshack.us/photo/my-images/846/virtualbox .png imageshack.us/photo/my-images/9/hostwin7.png
urok93
alguna ayuda en esto por favor?
urok93
parece que su computadora está conectada directamente a Internet y esa puede ser la razón por la cual su cliente no obtiene una IP (v4)
PvdL
3

En modo puente, si su host utiliza una dirección IP estática, debe configurar manualmente su IP de invitado en el mismo rango que la IP del host. De lo contrario, el invitado no se asignará automáticamente con una dirección IP válida. HTH

platinor
fuente
2

La respuesta de Lekensteyn es correcta. Pero si se encuentra en un entorno corporativo, es posible que deba deshabilitar el servidor proxy para la dirección IP de su invitado. Por ejemplo, si está utilizando Mozilla Firefox en su máquina Host y está intentando acceder a 192.168.56.101/ en el invitado, debe ir a Herramientas de Firefox-> Opciones-> Avanzado-> Red-> Configuración y usar "No Proxy "o" Sin proxy para -> 192.168.56.101 ".

SpaceRook
fuente
2

Si necesita acceder a un invitado que obtiene una IP diferente debido al uso de DHCP, le sugiero que acceda a través de su nombre de host. Sin embargo, el acceso a través del nombre de host cuando el host es Windows puede requerir una herramienta adicional.

El siguiente texto fue copiado de mi propia respuesta en superuser.com. :

Le sugiero que use DNS de multidifusión para solucionar esto.

Ubuntu está usando esto por defecto a través de Avahi .

El host de Windows necesita un cliente Avahi para descubrir otros servicios Avahi. Si su host ya usa algún software de Apple, probablemente ya esté allí a través de un servicio llamado Bonjour. Sin embargo, si aún no está instalado, puede descargar una versión pequeña de Bonjour aquí: Bonjour Print Services . Después de la instalación, debería poder acceder a su invitado a través de .local.

Nota: El sistema mDNS parece utilizar el .fix local postfix por defecto. Entonces, si su nombre de host es "dev.myapp.com", entonces el nombre de host real será "dev.myapp.com.local".

Spiralis
fuente