Ich habe Probleme, vom Host aus auf den Apache-Server zuzugreifen.
Ich habe Fedora 15 VM VirtualBox unter Windows 7 installiert. Innerhalb dieser VM läuft ein Apache-Server, der im Gast einwandfrei funktioniert.
Ich bin nicht sicher, was ich sonst noch tun kann, damit es funktioniert.
Hier ist die Konfiguration, die ich habe. Host-OS-IP:
IPv4 Address. . . . . . . . . . . : 192.168.0.10
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 192.168.0.2
Für VM habe ich zwei Netzwerkadapter installiert:
- NAT, damit die VM-Maschine Zugriff auf das Internet hat, es funktioniert.
- Host-Only-Adapter.
Hier ist die Konfiguration auf dem Gast:
[root@localhost network-scripts]# ifconfig
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:14 errors:0 dropped:0 overruns:0 frame:0
TX packets:14 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1394 (1.3 KiB) TX bytes:1394 (1.3 KiB)
p2p1 Link encap:Ethernet HWaddr 08:00:27:DD:DD:EA
inet addr:10.0.2.15 Bcast:10.0.2.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fedd:ddea/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1289 errors:0 dropped:0 overruns:0 frame:0
TX packets:1207 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:936406 (914.4 KiB) TX bytes:137003 (133.7 KiB)
p7p1 Link encap:Ethernet HWaddr 08:00:27:44:A3:DB
inet addr:192.168.56.101 Bcast:192.168.56.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fe44:a3db/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:313 errors:0 dropped:0 overruns:0 frame:0
TX packets:386 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:30505 (29.7 KiB) TX bytes:44783 (43.7 KiB)
Wenn ich ping 192.168.56.101
das vom Host aus mache, bekomme ich die richtigen Antworten, aber alle Versuche, auf den Webdienst zuzugreifen, schlagen fehl. Ich erhalte Timeout-Fehler.
Antwort1
Wenn ICMP-Verkehr (z. B. Ping) zu einem virtualisierten Gast zugelassen wird, TCP-Verkehr (z. B. HTTP-Anfragen) jedoch blockiert wird, liegt das Problem normalerweise an einer Software-Firewall, die auf dem Gastbetriebssystem ausgeführt wird.
Notiz:Die Befehlssyntax in dieser Erklärung ist Fedora Core-spezifisch, aber die allgemeinen Schritte können für die Verwendung auf anderen Linux-Distributionen abstrahiert werden.
Bei Standardinstallationen von Fedora Core ist IPTables standardmäßig aktiviert. Überprüfen Sie den Status des IPTables-Dienstes, um festzustellen, ob er sich im Status „aktiv“ befindet.
[root@gauss ~]# /bin/systemctl status iptables.service
Um die aktuell aktiven IPTables-Regeln anzuzeigen, überprüfen Sie außerdem den Status des IPTables-Init-Skripts.
[root@gauss ~]# /usr/libexec/iptables.init status
Wenn in der INPUT-Kette eine Regel und eine IPTables vorhanden sind, die der unten aufgeführten ähnelt, ist diese dafür verantwortlich, sowohl TCP/IP- als auch UDP-Verkehr zum Host zu blockieren.
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Zum Aktivieren von HTTP-Verkehr gibt es mehrere Möglichkeiten (z. B. Hinzufügen einer IPTables-Regel in der INPUT-Kette, um Verkehr von TCP auf Port 80 von der Host-Only-Netzwerk-IP 192.168.56.1 des Hypervisors explizit zu akzeptieren, Entfernen der universellen DROP-Regel in der INPUT-Kette usw.).
Da der Gast nicht mit der Außenwelt verbunden ist und sich in einem Host-Only-Netzwerk befindet, besteht die einfachste Möglichkeit darin, IPTables zu stoppen und zu deaktivieren, sodass es beim Neustart nicht automatisch gestartet wird.
[root@gauss ~]# /bin/systemctl stop iptables.service
[root@gauss ~]# /bin/systemctl disable iptables.service
Sobald dies abgeschlossen ist, kann der Fedora Core-Gast HTTP-Anfragen über seine öffentliche Schnittstelle bedienen und die Seiten können auf dem Windows 7-Hypervisor angezeigt werden, indem man in einem Browser oder einem anderen HTTP-Client die Adresse 192.168.56.101 aufruft.