Question Dans VirtualBox, comment configurer des machines virtuelles réservées aux hôtes qui peuvent accéder à Internet?


En configurant des machines virtuelles avec VirtualBox, je souhaite souvent les caractéristiques suivantes

  • vm a un ip statique
  • l'hôte peut accéder à vm sans redirection de port
  • vm peut accéder à internet
  • Je peux déplacer mon ordinateur portable du réseau vers le réseau (par exemple, de la maison vers le bureau vers le coffeeshop) sans me soucier de la sécurisation ou de la reconfiguration de la vm

Aucune des méthodes de connexion réseau de VirtualBox ne répond à elles-mêmes à ces exigences.

  • NAT
    Nécessite le transfert de port si vous souhaitez vous connecter à la vm depuis l'hôte.

  • Host-only
    La vm ne peut pas accéder à Internet, sauf si l'hôte est un routeur.

  • Ponté
    Expose la vm au réseau; pas portable


87
2018-05-11 06:00


origine




Réponses:


Je peux obtenir la configuration que je veux en mettant en place deux adaptateurs sur la vm.

VirtualBox 4.2.12
Ubuntu 12.04 guest

Dans VirtualBox> Préférences> Réseau, configurez un réseau uniquement hôte.

Le mien s'appelle vboxnet0, il est configuré manuellement:
ip 192.168.56.1
masque de réseau 255.255.255.0
pas dhcp

VirtualBox network configuration VirtualBox network configuration

Ensuite, dans les paramètres réseau de la machine virtuelle, configurez deux cartes:

Adaptateur 1
hôte uniquement, vboxnet0

Adaptateur2
NAT

Démarrez la machine virtuelle et connectez-vous via la console fournie par VirtualBox.

Exécutez ceci pour voir vos adaptateurs:

ls /sys/class/net

Dans mon cas, les adaptateurs s'appelaient eth1 et eth2 (et lo, l'interface de bouclage).

Ensuite, modifiez votre configuration réseau.

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

Notez que eth1 n'a pas de passerelle par défaut spécifiée. eth2 obtiendra une passerelle par défaut de dhcp.


Mise à jour mars 2018

Voir cette réponse de @ Hugo14453 pour une version mise à jour qui fonctionne avec Ubuntu 17.10 et plus récent.


103
2018-05-11 06:00



Maintenant, pour atteindre l'invité depuis votre hôte, avez-vous dû ajouter une route et un nom dans / etc / hosts sur la machine hôte? Votre hôte n'a pas d'interface sur le réseau 192.168.56.0, n'est-ce pas? - Mojo
Cela m'a beaucoup aidé, j'utilise Virtualbox pour le développement, et quand je suis chez moi, tout fonctionne correctement puisque j'ai la configuration réseau à mon goût, le cauchemar commence lorsque je passe à un autre réseau (famille, entreprises ... ), Je dois modifier les URL des sites Web, supprimer certains fichiers système, redémarrer Je ne sais pas combien de fois et la liste est activée. Cette solution ne se soucie pas de votre réseau actuel, c'est pourquoi je l'aime ... Branchez simplement votre PC sur n'importe quel réseau et concentrez-vous sur votre travail. - Nabil Kadimi
Merci. La non définition d'une adresse de passerelle pour l'interface hôte uniquement a résolu mes problèmes. - Florian
Parfait. / etc / network / interfaces config était la clé MERCI !!!! - Byron Whitlock
"Notez que eth1 n'a pas de passerelle par défaut spécifiée. Eth2 obtiendra une passerelle par défaut de dhcp." <- CE COMMENTAIRE EST LA CLEF. - Pere Pages


Je pourrais résoudre mon problème avec un mélange de solution Christian Long. J'ai ajouté 2 adaptateurs:

Adaptateur 1 - NAT

Adaptateur 2 - hôte uniquement, vboxnet0

La seule différence était dans le fichier d'interface 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

Dans VirtualBox Network config, j'ai laissé DHCP vérifié.

Après un redémarrage de la VM, tout fonctionnait bien.


15
2017-12-09 16:02



Cela fonctionne pour moi, mais je veux que les VM aient des adresses IP statiques. Dès que je le fais, Internet cesse de fonctionner. Si je configure les deux avec DHCP, cela fonctionne bien. Comment puis-je faire de l’interface hôte uniquement une adresse IP statique? - Umar Farooq Khawaja
Un seul qui a fonctionné. Merci. +1 - Jorge Campos


Il existe un autre moyen simple de ne pas créer un nouvel adaptateur NAT

  1. Sur la machine hôte, ajoutez les règles iptables suivantes. Cela transmettra les paquets à travers l'hôte et sur 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. Vous devrez également activer le transfert IP sur l'hôte en émettant la commande suivante:

    sudo sysctl -w net.ipv4.ip_forward=1
    

13
2017-08-03 03:33



Cela ne fonctionne que sur un hôte Linux. - Derek Mahar
Nous avons besoin du service "dnsmasq" en cours d'exécution. Dans le lien unix.stackexchange.com/a/384187/61742 nous avons des informations complètes sur ce qui a été suggéré par @Danatela. Merci! - Eduardo Lucio
@ EduardoLucio s'il vous plaît donner des crédits à Long Bui. Je viens d'éditer ce post pour le rendre plus lisible. - Danatela
@Long Bui Merci pour votre contribution! Up! Up! Up! Up! Up! Up! = D - Eduardo Lucio


La configuration du réseau a changé dans Ubuntu 17.10.1. Vous utilisez maintenant la configuration netplan.

J'ai suivi ce guide ici

En tant que migration de la réponse de Christian, procédez comme suit:

Créez un nouveau fichier de configuration dans / etc / netplan pour contenir votre configuration d'adaptateur uniquement hôte.

par exemple sudo nano /etc/netplan/02-netcfg.yaml

Entrez ce qui suit pour configurer une adresse IP statique de 192.168.56.12 où enp0s3 est le nom de votre adaptateur hôte uniquement.

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

Exécutez ensuite les deux commandes suivantes:

sudo netplan generate
sudo netplan apply

NAT devrait fonctionner sans configuration, exécuter ifconfigpour voir le résultat:

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

7
2018-03-09 18:09



Merci! J'ai ajouté une section de mise à jour à mon ancienne réponse et lié à cette nouvelle information. - Christian Long


Je viens d'ajouter 2 adaptateurs:

Adaptateur 1 hôte uniquement, vboxnet0

Adaptateur2 NAT

Et cela fonctionne parfaitement, je peux accéder à la machine virtuelle depuis l'hôte, et j'ai Internet sur la vm.


2
2018-02-25 00:52





Ouais j'ai eu ce problème c'était une douleur totale! Mais je l'ai résolu en installant simplement le serveur Squid Cache Proxy sur mon PC physique, et de cette manière - mes PC virtuels Internet pour hôte uniquement pouvaient se connecter à Internet!

J'ai fait un rapide guide de 3 minutes ici - pour quiconque veut savoir comment ça marche! http://b0zmeister.wordpress.com/allowing-host-only-virtualbox-guest-to-connect-to-the-internet/


1
2017-08-10 13:57



Cela a bien fonctionné pour moi, merci pour le partage. C'est de loin le moyen le plus simple de tout faire fonctionner. - this.lau_
Bonjour Laurent - pas de problèmes - je suis content que ça ait aidé! Je dois aimer faire fonctionner les PC Virtualbox sur un autre réseau, mais avec une connexion Internet qui fonctionne :) - B0zmeister
Le lien est mort maintenant. Pensez à déplacer les instructions ici. - s3v3n