Virtualbox: Comment accéder au serveur Web sur l'OS invité à partir de l'OS hôte?

10

Après beaucoup de forums RTFM et de lecture, j'ai toujours des problèmes et j'ai besoin de conseils. J'utilise Virtualbox sur Ubuntu et j'ai installé un serveur Centos en tant qu'invité. Mon problème est que je ne peux pas accéder au serveur Web sur le système d'exploitation invité à partir du système d'exploitation hôte.

Voici les détails: OS hôte est Ubuntu 12.04 LTS (noyau 3.2.0-24-générique) 64 bits.

J'utilise Virtualbox 4.1.12.

J'obtiens mon adresse IP de mon routeur sans fil:

eth0      Link encap:Ethernet  HWaddr 18:03:73:42:3d:ac  
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          Interrupt:47 Base address:0xe000 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:3784 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3784 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:378673 (378.6 KB)  TX bytes:378673 (378.6 KB)

wlan0     Link encap:Ethernet  HWaddr 64:27:37:69:c5:d2  
          inet addr:192.168.1.15  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::6627:37ff:fe69:c5d2/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:124013 errors:0 dropped:0 overruns:0 frame:0
          TX packets:82469 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:164307087 (164.3 MB)  TX bytes:9744555 (9.7 MB)

J'ai donc installé CentOS en tant qu'OS invité et je souhaite accéder à son serveur http. Dans les paramètres réseau dans Virtualbox, j'ai ceci: Attaché à l'adaptateur ponté

Nom: wlan0

J'autorise le mode Promiscuous pour les machines virtuelles.

Et «Câble connecté» coché.

Sur la machine CentOS, l'interface eth0 a récupéré l'adresse IP 192.168.1.20 avec le masque 255.255.255.0. Jusqu'à présent, tout semble correct, les deux systèmes peuvent se cingler. J'ai démarré le serveur Web et il écoute sur le port 80 - vérifié avec netstat. (Cependant, ne modifiez pas le fichier de configuration par défaut du serveur Web.)

Lorsque je veux me connecter au serveur Web sur la machine CentOS, je ne peux pas. "Impossible de se connecter" dit Firefox, Chrome est également mécontent: Chrome n'a pas pu se connecter à 192.168.1.20. (Je n'utilise aucun proxy ici.)

J'ai essayé de telnet au port 80 sur le système invité - pas de joie:

:~$ telnet 192.168.1.20 80
Trying 192.168.1.20...
telnet: Unable to connect to remote host: No route to host

Je ne sais pas si c'est important, mais la table de routage sur le système d'exploitation invité est ici:

[root@centos ~]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.0     *               255.255.255.0   U     0      0        0 eth0
link-local      *               255.255.0.0     U     1002   0        0 eth0
default         192.168.1.1     0.0.0.0         UG    0      0        0 eth0

(C'est drôle, je viens de comprendre que je peux passer d'Ubuntu à CentOS.)

J'ai essayé différents paramètres dans Virtualbox, mais ce qui précède est le plus proche de ce que les gens suggèrent sur différents forums. NAT essayé avec la redirection de port, adaptateur hôte uniquement mais je n'ai pas réussi à le réparer.

Quelqu'un peut-il m'éclairer, s'il vous plaît? À votre santé

Petkaux
la source
De plus ... Sur mon OS hôte (Ubu) j'ai fait un traceroute et il a trouvé une route vers l'OS invité. Et comme dit, les machines peuvent se pinguer et ssh fonctionne. Créé un fichier html factice appelé index_x.html et je peux lire la page de l'invité lui-même avec lynx. Peut-il s'agir d'un problème de pare-feu?
Petkaux
Avez-vous un pare-feu en cours d'exécution sur le système d'exploitation invité? Si oui, bloque-t-il le port 80?
Fran
Oui, tu as raison, Fran. iptables me bloquait sur l'invité CentOS. Je l'ai éteint temporairement pour voir ce qui se passait et le tour est joué, j'ai pu accéder au serveur web! Yippeee!
Petkaux
@Petkaux J'ai un exemple de problème avec le même environnement. Je ne suis pas bon sous Linux .. Alors, pouvez-vous s'il vous plaît me donner la commande / étapes de ce que vous avez essayé pour votre problème. ?
M. Black,

Réponses:

8

La solution a été d'ouvrir le port sur le pare-feu de l'OS invité, comme décrit ici: http://wiki.centos.org/HowTos/Network/IPTables

Les paramètres réseau dans Virtualbox étaient OK - Le réseau ponté est le paramètre correct.

Petkaux
la source
Merci, celui-ci m'a pris un certain temps pour comprendre. firewall-cmd --zone=external --add-service=http --permanent; firewall-cmd --reload
Christopher Markieta
3

La désactivation du pare-feu interne du système d'exploitation invité comme ci-dessous devrait vous permettre d'accéder. Type

service iptables stop
chkconfig iptables off

sur la ligne de commande dans le système d'exploitation invité.

Nilton Freitas Barbosa
la source
Merci, j'ai passé des heures à essayer différents paramètres pour accéder au serveur sur ma machine virtuelle CentOS.
uınbɐɥs
Simple et élégant!
Edward_178118