Sistema operativo invitado VirtualBox que accede al servidor local en el sistema operativo host

107

En mi host Ubuntu tengo mi servidor web local. Instalé VirtualBox y Debian como invitado.

Me gustaría que el invitado de Debian pueda acceder a mi servidor web que se ejecuta en mi host Ubuntu (por ejemplo, simplemente escribo http://localhost:8080/en el navegador en Debian).

¿Cómo se puede hacer esto?

Máxima
fuente

Respuestas:

177

Habilite UN adaptador de red. Configúrelo en NAT e inicie su máquina. No necesito configurar nada.

En el navegador de la máquina invitada, escriba http://10.0.2.2 que le mostrará el mismo contenido que "localhost" en el sistema operativo host.

10.0.2.2 es la "puerta de enlace predeterminada" para las conexiones NAT y la IP de su SO invitado es 10.0.2.15

Por supuesto, puede configurar un "HOST-ONLY" o una "Red interna" que le permitirá otras configuraciones avanzadas. Recomiendo quedarse con NAT.

Disfrutar

METRO.

Melvyn
fuente
1
"Habilitar UN adaptador de red". ¿Dónde se hace esto?
jshen
1
Nota: Si tiene hosts virtuales basados ​​en nombres configurados en apache en su máquina host, puede acceder a ellos simplemente creando un mapeo en el archivo de hosts de máquinas del invitado para10.0.2.2 yourvirtualhostname.local (or whatever)
Usuario
@Usuario, ¿estás seguro de que tu último comentario funcionará? Tengo un host virtual en mi host VB configurado http://example.dev, y la asignación 10.0.2.2a cualquier cosa en mi invitado VB no ayuda en absoluto a acceder a él.
Томица Кораћ
1
@ ТомицаКораћ funciona. Por ejemplo, consulte: askubuntu.com/questions/36183/… sin embargo, probablemente debería abrir una pregunta por separado para resolver esto.
Usuario
1
"Habilitar UN adaptador de red" significa que, bajo la configuración de red de su máquina virtual (dentro de VirtualBox), habilite solo uno de los adaptadores. Me confundió un poco cuando lo leí por primera vez.
Márquez
5

También un punto a tener en cuenta al usar la dirección IP de 10.0.2.2 es si está usando MAMP, por ejemplo, agregue el número de puerto: 8888 para que se lea la dirección completa http://10.0.2.2:8888

Pablo
fuente
3

La forma más fácil de permitir el acceso ininterrumpido a su máquina VirtualBox Guest es configurar el dispositivo de red como un 'puente' para su eth0 en su LAN.

La máquina Guest tomará una LAN IP a través de DHCP desde su enrutador.

Ash Palmer
fuente
Para aclarar: esta es una configuración en la aplicación cliente. Funcionó para mí, solo me tomó un tiempo darme cuenta, porque IE era demasiado estúpido para asumir que quería una conexión HTTP cuando escribía una dirección IP y un puerto en la barra de direcciones.
Michael Scheper el
2

Lo que encontré solucionó el problema para mí fue asegurarme de que el adaptador Windows VirtualHost-Only estuviera configurado en la dirección .1 para el rango de IP, por lo que mi adaptador de host de caja virtual era 192.168.58.20 pero la ip para el adaptador de Windows es 192.168. 58,1

Jason Hardin
fuente
2

Si la solución de @Melvyn no funciona, como alternativa, puede configurar su adaptador de red para que se conecte.
Vaya a Settings-> Network-> luego cambie Attached toa Adaptador en puente.

ingrese la descripción de la imagen aquí

Debería poder llamar a los padres por su nombre de host o dirección IP externa. Puede obtenerlos yendo al símbolo del sistema y escribiendo ipconfig /all ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

Actualización Si está depurando con Visual Studio y usando IIS Express.

ir C:\Users\[uesername]\Documents\IISExpress\config\applicationhost.config

encuentre su sitio web en <configuration>/<system.applicationHost>/<sites>/<site> (el nombre puede ser engañoso intente verificar la ubicación en el disco en el physicalPathatributo)

luego agregue en la <bindings>sección nuevo enlace

<bindings>
    <binding protocol="http" bindingInformation="*:50766:localhost" />
    <binding protocol="http" bindingInformation="*:50766:48qzr12" />
</bindings>

donde la información vinculante es *:[port]:[machineName]

Espero que esto te ahorre algo de tiempo.

Matas Vaitkevicius
fuente
-1

Bueno, puedes hacer que Debian llegue a tu servidor web, pero no usando localhost. Tendrá que usar la dirección IP del host de Ubuntu.

Suponiendo que el SO huésped está conectado a la red, para tomar la IP, abra un terminal y escriba ifconfig. Debería verse algo así 192.168.0.2.

Jivings
fuente
¡Hola! Perdón por responder demasiado tarde. ifconfig en mi host muestra 192.168.0.102 para eth0. Cuando ingreso esta ip en firefox en guest, intenta conectarse durante un tiempo y luego la conexión finaliza: "El servidor en 192.168.0.102 está tardando demasiado en responder" ... Entonces, ¿qué debo intentar a continuación? Gracias por adelantado.
Maxim