Ich habe einen VM-Webserver eingerichtet und Apache installiert und gestartet. Die VM verfügt über eine überbrückte Netzwerkschnittstelle und kann mit 192.168.0.2 vom Host gepingt werden.
Wenn ich jedoch dieselbe IP-Adresse in den Browser auf dem Hostcomputer eingebe, hatte ich erwartet, dass die auf der VM generierte Standard-Apache-Seite angezeigt wird, aber stattdessen wird sie can't connect to 192.168.0.2
im Browser des Hostcomputers angezeigt.
Ich habe eindeutig etwas verpasst. Weiß jemand, was ich verpasst oder falsch gemacht habe?
Ausgabe von VM netstat -tnlp
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 950/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1026/master
tcp 0 0 :::22 :::* LISTEN 904/sshd
tcp 0 0 ::1:25 :::* LISTEN 980/master
Grobe Zeichnung, was ich denke, die Netzwerkaktivität / Konnektivität würde aussehen.
virtualbox
oshirowanen
quelle
quelle
:::80
, wartet Apache nur auf IPv6-Verbindungen. Haben Sie versucht, IhreListen
Anweisungen zu überprüfen ?-p
Flag hinzu,netstat
um sicherzustellen, dass Apache tatsächlich Port 80 überwacht und keinen anderen Dienst. Kannst ducurl localhost
vor dem Gast davonlaufen? Wasgrep -C3 -rni Listen /etc/httpd/
zeigt?Antworten:
Problem Nr. 1 - VM-Netzwerktypen
Es gibt 3 Arten der Vernetzung:
Details zum Einrichten
Wann soll jeder verwendet werden?
Problem Nr. 2 - Firewall-Blockierung?
Abhängig davon, welche Distribution Sie verwenden, blockiert die Firewall möglicherweise Ihren Webbrowser für den Zugriff auf Ihre Apache-Instanz. Dies ist sinnvoll, wenn Sie das System anpingen können, aber nicht über Port 80, den Apache abhört, darauf zugreifen können.
vorübergehend deaktivieren
Unter CentOS können Sie diesen Befehl zum Deaktivieren verwenden.
Überprüfen Sie, ob Apache zuhört
Sie können auch bestätigen, dass dieser Port abgehört wird.
Bestätigen Sie, dass die Firewall deaktiviert ist
Die Firewall kann als weit geöffnet bestätigt werden.
Wenn dies Ihr Problem löst, können Sie dauerhaft eine Regel hinzufügen, die Datenverkehr über TCP-Port 80 zulässt.
Hinzufügen einer Regel für TCP-Port 80
ANMERKUNG: Dadurch bleibt die Regel zwischen Neustarts bestehen.
Firewall akzeptiert TCP-Port 80
Ein System mit offenem Port 80 würde ungefähr so aussehen:
Problem Nr. 3 - Apache hört zu?
In der obigen Ausgabe haben wir gesehen, dass Apache empfangsbereit war, aber manchmal ist es falsch konfiguriert, sodass es nur auf 1 IP-Adresse empfangsbereit ist oder auf einer anderen Netzwerkschnittstelle empfangsbereit ist. Mit dem Befehl
netstat
können Sie dies überprüfen und die Apache-Konfigurationsdateien überprüfen.Dies zeigt, dass Apache alle Schnittstellen überwacht (IP 0.0.0.0).
Ich werde die Antwort von @ Lekensteyn , die dieses spezielle Problem behandelt, hier nicht wiederholen .
Verweise
quelle
it worked!
Apache-Seite./etc/init.d/httpd status
ausgeführt wird./sbin/service iptables save
.Ihre Apache-Installation ist wahrscheinlich so konfiguriert, dass nur localhost überwacht wird. Sie können dies überprüfen, indem Sie Ihren Gast ausführen:
Wenn es heißt
0.0.0.0:80
, hört es auf allen Schnittstellen. In Ihrem Fall würde ich127.0.0.1:80
stattdessen erwarten . Um dies zu lösen, bearbeiten Sie Ihre Apache-Konfiguration (irgendwo in/etc/httpd/conf/
) und ändern Sie:zu:
Sie können auch verwenden
nmap
, um die verfügbaren Dienste auf Ihrem Computer zu überprüfen. Es sollte so aussehen:quelle
Unter CentOS 7 hat firewalld iptables als Standardfirewall ersetzt.
Ich musste verwenden
die Firewall anhalten, um die Verbindung vom Host zur CentOS VM zu testen.
Weitere Informationen finden Sie hier: /programming/24756240/how-can-i-use-iptables-on-centos-7
quelle