Hier ist mein Setup. Ich habe eine VM mit installiertem Oracle Linux 7. Ich habe Apache mit gestartet service httpd start
und es startete ohne Probleme. Ich habe eine index.html
Datei in /var/www/html
und erstellt /var/www
. Ich kann die VM von meinem Hostcomputer aus mit ping
oder erreichen ssh
, aber wenn ich einen Webbrowser öffne und zur IP-Adresse navigiere, antwortet der Server nicht.
Ich habe es überprüft netstat -plent
und es zeigt, dass Port 80 lauscht:
# netstat -plent
tcp6 0 0 :::80 :::* LISTEN 0 121584 36432/httpd
Ich habesahbeimehrere Antwortendie darauf schließen lassen, dass iptables das Problem sein könnte, aber keine dieser Lösungen hat geholfen. Was könnte das Problem sonst noch verursachen?
Antwort1
Sie haben vergessen, den Port in der Firewall zu öffnen.
Zum Beispiel.
firewall-cmd --add-service=http
Erinnere dich anmach es dauerhaftsowie.
Antwort2
Laut der Netstat-Ausgabe hören Sie nur auf IPv6.
Sie müssen entweder nur über IPv6 auf die Website zugreifen oder eine weitere Listener-Direktive in Apache erstellen, um auf 0.0.0.0:80 zu lauschen. In httpd.conf:
Listen 0.0.0.0:80
Sie können natürlich nur auf der IP-Adresse lauschen, über die Sie den Datenverkehr bereitstellen möchten.
Dieser Rat ist allerdings nicht richtig, wenn Sie Dual-Stack-Sockets in Linux unterstützen. Möglicherweise müssen Sie nur überprüfen, ob Dual-Stack-Listening aktiviert ist. Überprüfen Sie mithilfe von procfs diese Datei:
/proc/sys/net/ipv6/bindv6only
Wenn es nicht 0 ist, müssen Sie es in Ihrer Konfiguration auf 0 ändern oder explizit auf IPv4 hören.
Überprüfen Sie auch Ihre Firewall-Regeln. Wenn Sie den Datenverkehr über IPv4 oder IPv6 ablehnen, wäre das die Erklärung. Überprüfen Sie hier:
iptables -t filter -nvL INPUT
ip6tables -t filter -nvL INPUT
Wenn die Standardrichtlinie nicht ACCEPT ist und Sie über keine Regel verfügen, die HTTP-Datenverkehr zulässt, oder wenn Sie Regeln haben, die ihn blockieren, wäre das die Erklärung.