Pregunta ¿Conectarse a la máquina host desde un sistema operativo invitado VirtualBox?


Básicamente me gustaría acceder a mi computadora host desde el invitado en VirtualBox. ¿Hay una dirección IP para mi host que puedo usar del invitado? ¿Se requieren pasos adicionales para configurar esto? Me gustaría acceder a los servicios Apache, FTP y SSH de mi anfitrión.


186


origen


Difícil de resolver sin ninguna pista sobre la confiuguración de la red que tiene su invitado. Algunos no permiten el acceso al host. Pruebe la dirección de puerta de enlace predeterminada del invitado. - Turbo J
Resulta que puedo alcanzarlo a través de mi puerta de enlace predeterminada en 10.0.2.2. - Naftuli Kay
Relacionado: stackoverflow.com/q/19933550/1157054  stackoverflow.com/q/16244601/1157054 - Ajedi32


Respuestas:


Esta respuesta es prácticamente una instalación de sistema operativo invitado en VirtualBox; solo necesita usar la dirección de la puerta de enlace de la red en el sistema operativo invitado para conectarse al sistema operativo host desde un sistema operativo invitado.

En la configuración predeterminada de Vagrant, debe poder comunicarse con su host a través de la puerta de enlace predeterminada.

En invitados basados ​​en Windows, puede determinar fácilmente esta dirección IP ejecutando el comando:

ipconfig

Debería arrojar algo como esto:

Windows IP Configuration

Ethernet adapter Local Area Connection:

        Connection-specific DNS Suffix  . :
        IP Address. . . . . . . . . . . . : 10.0.2.15
        Subnet Mask . . . . . . . . . . . : 255.255.255.0
        Default Gateway . . . . . . . . . : 10.0.2.2

En este ejemplo, el invitado puede llegar a la máquina host 10.0.2.2.


En invitados basados ​​en Unix / Linux, use el comando:

netstat -rn

Debería arrojar algo como esto:

Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
192.168.1.0     0.0.0.0         255.255.255.0   U         0 0          0 wlan0
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 wlan0
0.0.0.0         192.168.1.1     0.0.0.0         UG        0 0          0 wlan0

En este ejemplo, el invitado puede llegar a la máquina host 192.168.1.1.


236



¿Alguna idea de por qué la conectividad sería tremendamente lenta cuando se conecta con la puerta de enlace predeterminada según su respuesta? - Ben Swinburne
Esto no pareció funcionar para mí (Ubuntu 12.04, Vagrant 1.0). La puerta de enlace predeterminada dentro del invitado se mostró como 10.0.2.2, y un nmap de esa IP falló. 192.168.33.1 parece ser el IP correcto. (Tuve config.vm.network :hostonly, "192.168.33.52" en mi config.) - Ajedi32
En realidad, no importa. Funcionó. nmap simplemente no funcionaba por alguna razón; no estoy seguro de por qué. Todavía podía conectarme a servicios que se ejecutaban en el host desde esa IP, aunque nmap no los mostraba. - Ajedi32
netstat -rn en CentOS 7.2, Docker 1.11 muestra una 172.17 dirección como mi puerta de enlace, pero ese IP no coincide con mi host. Resulta que 10.0.2.2 hizo. - Spencer Williams


Es fácil acceder al servidor web de la computadora host desde el invitado. Esto se puede hacer fácilmente usando dos métodos. Primero haz lo siguiente

  • Ir Dispositivos y seleccione Adaptadores de red... 
  • En la configuración del adaptador, busque Adjunto a.
  • Si el valor es NAT, haz lo siguiente

  • La puerta de enlace predeterminada cuando configura el cuadro virtual es generalmente 10.0.2.2 como valor predeterminado. Si no has cambiado nada, esto funcionará. Pero si lo has cambiado y el invitado te mata se está ejecutando es ventanas ejecuta el siguiente comando y encuentra el predeterminado puerta

    ipconfig /all

    Si estás en Linux, Unix o Mac OS, ejecuta el siguiente comando para Consíguelo

    netstat -rn | grep 'default' | awk '{print $2}'

  • Vaya al navegador web y escriba esta puerta de enlace predeterminada y presione Entrar. Se puede acceder al servidor web.

  • Si el valor es Adaptador puenteado, haz lo siguiente
    • encontrar la dirección IP del host y el invitado
      • si estás en Windows, ejecuta ipconfig y obtener la dirección IP
      • si está en Linux, Unix o Mac OS, ejecute ifconfig | grep 'inet' y obtener dirección IP
      • la dirección IP es como 192.168.1.1
    • si desea acceder al host, ejecute el navegador en guest e ingrese la dirección IP del host
    • si desea acceder al invitado, ejecute el navegador en el host e ingrese la dirección IP del invitado

29





Otra forma de hacerlo es usar un tipo de red virtual "Host". Eso le da una interfaz en el sistema operativo invitado con una dirección en una subred local diferente de la (s) subred (s) de "mundo externo" en las que se encuentra el equipo host. Para que esto funcione, debes asegurarte de algunas cosas:

  • Su máquina virtual tiene configurado un adaptador "solo para el host";
  • Sus servicios de host deben estar escuchando en todos los adaptadores locales, o al menos con los que desea contactar;
  • Su host obtendrá su propio adaptador virtual, y querrá descubrir su dirección IP y agregarla al archivo "hosts" en su sistema operativo invitado (sin embargo, eso funciona para el sistema operativo invitado, en Windows XP, es simplemente el " hosts "archivo enterrado en C: / WINDOWS / system32 / drivers / etc). Déle un nombre que quiera usar para el nombre de host del host.

Una vez que haya hecho esto, debería poder "ver" el host desde la máquina virtual a través del nombre codificado en el archivo de host.

Por ejemplo, en mi host Ubuntu 11.04, obtengo una interfaz virtual "vboxnet0" en 192.168.56.1. Los adaptadores en las máquinas presentan algo así como 192.168.56.101. No necesito ir en a mis máquinas virtuales, pero supongo que sería posible a través de un cambio simétrico en el archivo de host del host. añado

192.168.56.1 mymachine

a los archivos host del SO huésped, y pueden (por ejemplo) ver el servidor web de la máquina host en

http://mymachine/whatever

Por supuesto, puede tener configurados tanto adaptadores en puente como solo en host.


8





Puede crear carpetas compartidas en VirtualBox. Esto creará automáticamente un 'recurso compartido de red' dentro de Virtual Box para acceder a las carpetas de su sistema operativo anfitrión.

Aquí hay un paso decente en un sistema operativo invitado de Windows XP:

http://www.giannistsakiris.com/index.php/2007/09/28/virtualbox-access-shared-folders-from-windows-xp-guest-os/


0



Entonces, ¿puedo acceder a mi host en / vboxsvr / ShareName? - Naftuli Kay
Sí, establecería una carpeta como C: \ STUFF para compartir con VirtualBox. Dentro de VirtualBox Guest OS, puede ir a ese vboxserver y acceder a las carpetas compartidas. - kobaltz
De hecho, no quiero la carpeta compartida. Quiero una dirección IP para mi máquina host. Cuando lo obtengo, me gustaría usarlo para usar servicios en mi equipo host, es decir: echo "GET /\r\n\r\n" | nc 192.168.100.100 80 (envíe una solicitud HTTP GET a mi equipo host desde el invitado). - Naftuli Kay
En ese caso, es posible que deba configurar su adaptador de red del SO invitado a un Bridge. Esto extraerá una dirección IP de su DHCP o enrutador. A continuación, podrá acceder de forma nativa a su equipo host a través de la dirección IP en lugar de la carpeta compartida de VBox. - kobaltz


Aquí hay otra solución a este problema mediante el uso de una interfaz de red adicional y la configuración del tráfico destinado para el host para enrutar a través de una interfaz adicional.


0



Bienvenido a Super Usuario! Sería bueno para incluir las partes esenciales de la respuesta aquí, y proporcione el enlace solo para futuras referencias. - slhck