En VirtualBox, ¿cómo configuro máquinas virtuales de solo host que pueden acceder a Internet?

87

Al configurar máquinas virtuales con VirtualBox, a menudo quiero las siguientes características

  • vm tiene una dirección IP estática
  • el host puede acceder a vm sin reenviar puertos
  • vm puede acceder a internet
  • Puedo trasladar mi computadora portátil de una red a otra (por ejemplo, de casa a la oficina a una cafetería) sin preocuparme por asegurar o volver a configurar la vm

Ninguno de los métodos de conexión de red de VirtualBox cumple estos requisitos por sí mismo.

  • NAT
    Requiere reenvío de puerto si desea conectarse a la vm desde el host.

  • Solo para el host
    El vm no puede acceder a internet, a menos que el host sea un enrutador.

  • Puenteado
    Expone la vm a la red; no portátil.

pregunta Christian Long 11.05.2013 - 08:00

6 respuestas

103

Puedo obtener la configuración que quiero configurando dos adaptadores en la vm.

VirtualBox 4.2.12
Ubuntu 12.04 invitado

En VirtualBox & gt; Preferencias & gt; Red, configure una red solo de host.

El mío se llama vboxnet0, se configura manualmente:
ip 192.168.56.1
netmask 255.255.255.0
sin dhcp

Luego, en la configuración de red para la máquina virtual, configure dos adaptadores:

Adaptador 1
solo host, vboxnet0

Adapter2
NAT

Arranque la máquina virtual e inicie sesión a través de la consola que proporciona VirtualBox.

Ejecuta esto para ver tus adaptadores:

ls /sys/class/net

En mi caso, los adaptadores se denominaron eth1 y eth2 (y menos, la interfaz de bucle invertido).

Luego, edite la configuración de su red.

sudoedit /etc/network/interfaces


# The loopback network interface
auto lo
iface lo inet loopback

# Host-only interface
auto eth1
iface eth1 inet static
        address         192.168.56.20
        netmask         255.255.255.0
        network         192.168.56.0
        broadcast       192.168.56.255

# NAT interface
auto eth2
iface eth2 inet dhcp

Tenga en cuenta que eth1 no tiene una puerta de enlace predeterminada especificada. eth2 obtendrá una puerta de enlace predeterminada de dhcp.

Actualización de marzo de 2018

Consulte esta respuesta de @ Hugo14453 para obtener una versión actualizada que funcione con Ubuntu 17.10 y posterior.

    
respondido por el Christian Long 11.05.2013 - 08:00
15

Pude resolver mi problema con una combinación de solución Christian Long. Agregué 2 adaptadores:

Adaptador 1 - NAT

Adaptador 2: solo host, vboxnet0

La única diferencia estaba en el archivo de interfaces de VM:

sudoedit /etc/network/interfaces

# The loopback network interface
auto lo
iface lo inet loopback
# NAT
auto eth0
iface eth0 inet dhcp
# Host only
auto eth1
iface eth1 inet dhcp

En la configuración de red de VirtualBox, dejé el DHCP marcado.

Después de reiniciar una VM, todo funcionó bien.

    
respondido por el Alan Camillo 09.12.2013 - 17:02
13

Hay otra manera simple de que no necesitamos crear un nuevo adaptador NAT

  1. En el equipo host, agregue las siguientes reglas de iptables. Esto reenviará paquetes a través del host y a Internet:

    sudo iptables -A FORWARD -o eth0 -i vboxnet0 -s 192.168.56.0/24 -m conntrack --ctstate NEW -j ACCEPT 
    
    sudo iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
    
    sudo iptables -A POSTROUTING -t nat -j MASQUERADE
    
  2. También deberá habilitar el reenvío de IP en el host emitiendo el siguiente comando:

    sudo sysctl -w net.ipv4.ip_forward=1
    
respondido por el Long Bui 03.08.2015 - 05:33
7

La configuración de red ha cambiado en Ubuntu 17.10.1. Ahora usa la configuración de netplan.

Seguí esta guía aquí

Como una migración de la respuesta de Christian, haz lo siguiente:

Cree un nuevo archivo de configuración dentro de / etc / netplan para mantener su configuración de adaptador solo de host.

e.g sudo nano /etc/netplan/02-netcfg.yaml

Introduzca lo siguiente para configurar una dirección IP estática de 192.168.56.12 donde enp0s3 es el nombre de su adaptador de solo host.

network:
    version: 2
    renderer: networkd
    ethernets:
        enp0s3:
            addresses:
                - 192.168.56.12/24
            dhcp4: no

Luego ejecuta los siguientes dos comandos:

sudo netplan generate
sudo netplan apply

NAT debería funcionar sin configuración, ejecute ifconfig para ver el resultado:

enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.56.12  netmask 255.255.255.0  broadcast 192.168.56.255
        inet6 fe80::a00:27ff:fe06:6cdd  prefixlen 64  scopeid 0x20<link>
        ether 08:00:27:06:6c:dd  txqueuelen 1000  (Ethernet)
        RX packets 252  bytes 23076 (23.0 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 208  bytes 30015 (30.0 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

enp0s8: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.3.15  netmask 255.255.255.0  broadcast 10.0.3.255
        inet6 fe80::a00:27ff:fe4d:a6b8  prefixlen 64  scopeid 0x20<link>
        ether 08:00:27:4d:a6:b8  txqueuelen 1000  (Ethernet)
        RX packets 95  bytes 94894 (94.8 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 85  bytes 7436 (7.4 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
respondido por el Hugo 09.03.2018 - 19:09
2

Acabo de agregar 2 adaptadores:

Adaptador 1 solo host, vboxnet0

Adapter2 NAT

Y funciona perfecto, puedo acceder a la máquina virtual desde el host y tengo Internet en la máquina virtual.

    
respondido por el Guillermo Gonzalez 25.02.2014 - 01:52
1

¡Sí, tuve este problema, fue un dolor total! Pero lo resolví simplemente instalando el servidor Squid Cache Proxy en mi PC física, y de esa manera, ¡mis PC virtualbox de internet solo para host se podían conectar a internet!

Hice una guía rápida de 3 minutos aquí. ¡Para cualquiera que quiera saber cómo funciona! enlace

    
respondido por el B0zmeister 10.08.2013 - 15:57

Lea otras preguntas en las etiquetas