Virtualbox: Wie kann ich vom Host-Betriebssystem aus auf den Webserver des Gastbetriebssystems zugreifen?

10

Nach vielen RTFM- und Leseforen habe ich immer noch Probleme und brauche einige Ratschläge. Ich verwende Virtualbox unter Ubuntu und habe einen Centos-Server als Gast installiert. Mein Problem ist, dass ich vom Host-Betriebssystem aus nicht auf den Webserver des Gastbetriebssystems zugreifen kann.

Hier sind die Details: Host-Betriebssystem ist Ubuntu 12.04 LTS (Kernel 3.2.0-24-generic) 64bit.

Ich benutze Virtualbox 4.1.12.

Ich erhalte meine IP-Adresse von meinem WLAN-Router:

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)

Also habe ich CentOS als Gastbetriebssystem installiert und möchte auf seinen http-Server zugreifen. In den Netzwerkeinstellungen in Virtualbox habe ich Folgendes: An Bridged Adapter angeschlossen

Name: wlan0

Ich erlaube den Promiscuous-Modus für die VMs.

Und 'Cable Connected' ist angekreuzt.

Auf dem CentOS-Computer hat die eth0-Schnittstelle die IP-Adresse 192.168.1.20 mit der Maske 255.255.255.0 erhalten. Bisher sieht alles in Ordnung aus, die beiden Systeme können sich gegenseitig anpingen. Ich habe den Webserver gestartet und er überwacht Port 80 - überprüft mit netstat. (Die Standardkonfigurationsdatei des Webservers wurde jedoch nicht geändert.)

Wenn ich eine Verbindung zum Webserver auf dem CentOS-Computer herstellen möchte, kann ich dies nicht. "Verbindung nicht möglich" Firefox sagt, Chrome sei ebenfalls unglücklich: Chrome konnte keine Verbindung zu 192.168.1.20 herstellen. (Ich benutze hier keinen Proxy.)

Ich habe versucht, auf Port 80 des Gastsystems zu telneten - keine Freude:

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

Ich bin mir nicht sicher, ob es wichtig ist, aber die Routentabelle auf dem Gastbetriebssystem ist hier:

[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

(Es ist lustig, habe gerade herausgefunden, dass ich von Ubuntu zu CentOS ssh kann.)

Ich habe verschiedene Einstellungen in Virtualbox ausprobiert, aber die oben genannten entsprechen am ehesten den Vorschlägen in verschiedenen Foren. Versuchte NAT mit Portweiterleitung, Nur-Host-Adapter, aber ich konnte es nicht beheben.

Kann mir bitte jemand Licht ins Dunkel bringen? Prost

Petkaux
quelle
Außerdem ... Auf meinem Host-Betriebssystem (Ubu) habe ich eine Traceroute durchgeführt und eine Route zum Gast-Betriebssystem gefunden. Und wie gesagt, die Maschinen können sich gegenseitig anpingen und ssh funktioniert. Erstellt eine Dummy-HTML-Datei namens index_x.html und ich kann die Seite vom Gast selbst mit lynx lesen. Kann dies ein Firewall-Problem sein?
Petkaux
Haben Sie eine Firewall auf dem Gastbetriebssystem? Wenn ja, blockiert es Port 80?
Fran
Ja, du hast recht, Fran. iptables hat mich auf dem Gast CentOS blockiert. Ich habe es vorübergehend ausgeschaltet, um zu sehen, was los war, und voila, ich konnte auf den Webserver zugreifen! Yippeee!
Petkaux
@ Petkaux Ich habe ein Beispielproblem mit der gleichen Umgebung. Ich bin nicht gut in Linux. Also, können Sie mir bitte den Befehl / die Schritte geben, die Sie für Ihr Problem versucht haben. ?
Mr. Black

Antworten:

8

Die Lösung bestand darin, den Port auf der Firewall des Gastbetriebssystems zu öffnen, wie hier beschrieben: http://wiki.centos.org/HowTos/Network/IPTables

Die Netzwerkeinstellungen in Virtualbox waren OK - Bridged Network ist die richtige Einstellung.

Petkaux
quelle
Danke, ich habe eine Weile gebraucht, um das herauszufinden. firewall-cmd --zone=external --add-service=http --permanent; firewall-cmd --reload
Christopher Markieta
3

Wenn Sie die interne Firewall des Gastbetriebssystems wie folgt deaktivieren, können Sie darauf zugreifen. Art

service iptables stop
chkconfig iptables off

in der Befehlszeile im Gastbetriebssystem.

Nilton Freitas Barbosa
quelle
Vielen Dank, ich habe Stunden damit verbracht, verschiedene Einstellungen auszuprobieren, um auf den Server auf meiner CentOS-VM zuzugreifen.
uınbɐɥs
Einfach und elegant!
Edward_178118