Comment accéder au serveur Ubuntu fonctionnant dans VirtualBox depuis l'extérieur

44

J'ai installé Ubuntu Server 12.04 LTS sur mon ordinateur portable via VirtualBox. J'ai installé LAMP, OpenSSH, serveur de messagerie.

Lorsque je me suis connecté, j'ai couru ifconfig. Il m'a donné l'adresse inet 192.168.0.3.

Donc, cela devrait être l'adresse via laquelle je devrais pouvoir accéder au serveur, non? Mais je ne suis pas en mesure d'y accéder via un navigateur. Le serveur est toujours actif sur VirtualBox, mais il ne fonctionne toujours pas sur les autres navigateurs ni sur mon téléphone portable. Que dois-je faire pour le rendre accessible au public?

Chins
la source

Réponses:

58

Par défaut, un ordinateur invité dans VirtualBox est configuré pour utiliser ce que l'on appelle un réseau NAT: l'adresse IP de l'adaptateur réseau de l'invité se trouve dans un sous-réseau "virtuel" qui inclut l'invité et l'application parent VirtualBox qui fait office de passerelle. Pour l’invité, on dirait qu’il accède à Internet via un modem DSL ordinaire, mais il n’est pas accessible de l’invité de n'importe où, tout comme vous ne pouvez pas accéder à des ordinateurs de votre réseau local à partir d’Internet sans configurer votre modem de manière spécifique. accès.

La documentation de VirtualBox contient la liste suivante de modes réseau:

Chacun des huit adaptateurs réseau peut être configuré séparément pour fonctionner dans l'un des modes suivants:

Pas attaché

Dans ce mode, VirtualBox signale à l’invité qu’une carte réseau est présente, mais qu’il n’ya pas de connexion - comme si aucun câble Ethernet n’était branché sur la carte. De cette manière, il est possible de "tirer" le câble Ethernet virtuel et de perturber la connexion, ce qui peut être utile pour informer un système d'exploitation invité de l'absence de connexion réseau et appliquer une reconfiguration.

Traduction d'adresses réseau (NAT)

Si tout ce que vous voulez, c'est naviguer sur le Web, télécharger des fichiers et afficher des messages électroniques dans l'invité, ce mode par défaut devrait vous suffire et vous pouvez ignorer le reste de cette section en toute sécurité. Veuillez noter qu'il existe certaines limitations lors de l'utilisation du partage de fichiers Windows (voir la section intitulée «Limitations de NAT» pour plus de détails).

Réseau ponté

Ceci est destiné aux besoins de mise en réseau plus avancés tels que les simulations de réseau et l'exécution de serveurs dans un invité. Lorsqu'il est activé, VirtualBox se connecte à l'une de vos cartes réseau installées et échange directement des paquets réseau, contournant ainsi la pile réseau de votre système d'exploitation hôte.

Réseau interne

Cela peut être utilisé pour créer un type de réseau basé sur logiciel différent, visible pour les machines virtuelles sélectionnées, mais pas pour les applications exécutées sur l'hôte ou le monde extérieur.

Réseau réservé aux hôtes

Cela peut être utilisé pour créer un réseau contenant l'hôte et un ensemble de machines virtuelles, sans avoir besoin de l'interface réseau physique de l'hôte. Au lieu de cela, une interface réseau virtuelle (similaire à une interface de bouclage) est créée sur l'hôte, fournissant une connectivité entre les machines virtuelles et l'hôte.

Réseau générique

Les modes rarement utilisés partagent la même interface réseau générique, en permettant à l'utilisateur de sélectionner un pilote pouvant être inclus avec VirtualBox ou distribué dans un pack d'extension.

Si vous devez accéder à votre invité de l'extérieur, vous devez configurer un réseau ponté, qui donnera à votre invité sa propre adresse IP sur votre réseau local. La configuration est effectuée dans les paramètres de VirtualBox, pas dans le système d'exploitation invité.

Pour pouvoir accéder au serveur à partir de votre mobile (c'est-à-dire de l'extérieur de votre réseau local), après avoir configuré la mise en réseau, vous devez également configurer la redirection de port sur votre modem DSL.

Sergey
la source
3
+1 pour mentionner la configuration NAT par défaut et suggérer un pontage.
Mark Mikofski
+1 pour m'apprendre quelque chose de nouveau, utile et pertinent à ma situation. Merci!
heypaleblue
Merci pour la réponse, mais n'ai-je pas besoin d'installer DNS sur mon serveur pour le rendre accessible à d'autres personnes sur Internet?
Chins
@Chins: Non, vous n'avez certainement pas besoin d'installer DNS sur votre serveur. Tout ce dont nous avons discuté jusqu'à présent ne concerne pas du tout le DNS.
Sergey
1
@Sergey - J'ai configuré ma machine virtuelle avec un adaptateur ponté. L'adresse IP affichée lors de l'exécution d'ifconfig est 10.210.xx mais je ne parviens toujours pas à coller ma machine virtuelle à partir de la machine hôte. Quel pourrait être le problème?
Andy Dufresne
9

Pour fournir un peu plus d’informations, voici les étapes à suivre pour configurer un réseau ponté:

Pour activer la mise en réseau pontée, il vous suffit d'ouvrir la boîte de dialogue Paramètres d'une machine virtuelle, d'aller à la page "Réseau" et de sélectionner "Réseau ponté" dans la liste déroulante du champ "Attaché à". Enfin, sélectionnez l’interface hôte souhaitée dans la liste au bas de la page, qui contient les interfaces réseau physiques de vos systèmes. Sur un MacBook classique, par exemple, cela vous permettra de choisir entre "en1: AirPort" (qui est l'interface sans fil) et "en0: Ethernet", qui représente l'interface avec un câble réseau.

La source

J'ai ensuite redémarré la machine virtuelle et j'ai pu me connecter en externe.

mnd
la source
Gardez à l'esprit, sur Mac OS 10.1.11 au moins, par exemple, il n'est pas permis de ponter directement l'adaptateur WiFi, mais il faut d'abord créer un "adaptateur de pont" dans les paramètres réseau
deux fois le
1
mais comment les adresses IP statiques fonctionnent-elles en mode ponté? Est-ce que tout est sur le même lien alors? Un serveur Web sur la machine virtuelle serait-il sur localhost au lieu d'une adresse IP? Les ports sont-ils transférés 1: 1? Ainsi, si Tomcat est sur la machine virtuelle chez localhost: 8080, la machine hôte tape-t-elle simplement localhost: 8080 dans son navigateur pour voir la machine virtuelle?
anon58192932