Apache-Webserver nicht öffentlich zugänglich

Apache-Webserver nicht öffentlich zugänglich

Ich habe einen Apache-Webserver (2.4.10), der auf einem Desktop mit Debian (Jessie, 8) läuft.

Der Desktop hat eine statische lokale IP-Adresse (192.168.xx) und meine WAN-IP-Adresse (öffentlich) wurde von meinem ISP ebenfalls festgelegt (82.xxx). Eine Portweiterleitung für Port 80 zu diesem Desktop wurde hinzugefügt.

Ich kann die Webseite problemlos von meinem LAN aus aufrufen, aber nicht über die WAN-Adresse, weder innerhalb noch außerhalb meines Zuhauses: Ich erhalte von Chrome die Meldung „Die Webseite ist nicht verfügbar – ERR_CONNECTION_REFUSED“. Beachten Sie, dass ich meinen Router über die WAN-Adresse (an einem anderen Port) öffnen kann.

Die Webseite selbst ist nicht viel mehr als „index.html“ mit „Hallo Welt“.

Ich habe versucht, die iptables-Firewall auszuschalten, hat aber nicht funktioniert. Ich habe einen anderen Port als 80 ausprobiert, hat aber nicht funktioniert. Ich habe über meinen ISP angerufen und Port 80 ist nicht blockiert. Ich habe mich schon verrückt gegoogelt. Hat jemand Vorschläge, wie man die Site zugänglich machen kann?

Antwort1

Ich habe es gelöst!

Dank Moonpoint wurde mir klar, dass das Problem bei der Portweiterleitung lag. Also schaute ich noch einmal nach und bemerkte, dass für die Port-80-Regel die „WAN-Schnittstelle“ auf „ADSL“ (Standard) eingestellt war. Ich weiß nicht, was das bedeutet, also habe ich es nie geändert. Ich habe verschiedene Optionen ausprobiert und die Einstellung auf „ETHWAN“ hat das Problem gelöst. Ich kann jetzt öffentlich auf die Webseite zugreifen und habe ein No-IP-DDNS hinzugefügt, das auch funktioniert.

EDIT: Jetzt habe ich erfahren, dass die ETHWAN-WAN-Schnittstelle einfach die ist, die mein ISP zum Router hinzugefügt hat und die Schnittstelle für die Glasfaserverbindung ist.

Antwort2

Wenn Sie angeben, dass Sie erfolglos versucht haben, die iptables-Firewall auszuschalten, meinen Sie damit, dass Sie die iptables-Firewall deaktiviert haben, aber trotzdem keine Verbindung zum Webserver von einer externen IP-Adresse aus herstellen konnten, oder meinen Sie, dass Sie die hostbasierte iptables-Firewall nicht deaktivieren konnten? Überprüfen Sie die Apache-Zugriffs- und Fehlerprotokolle für Ihre Website, um zu sehen, ob in einer dieser Dateien ein Versuch protokolliert wird, von einer externen IP-Adresse aus auf das System zuzugreifen. Überprüfen Sie Ihre Apache- /etc/httpd/conf/httpd.confDatei. Gibt es darin irgendwo in der Datei einen Abschnitt, der dem folgenden ähnelt:

<Directory /home/www/example>
      Order Deny,Allow
      Deny from all
      Allow from 192.168 127.0.0.1
 </Directory>

Im obigen Beispiel ist der Zugriff von allen außerlokaler HostAdresse 127.0.0.1 und Systeme im selben LAN, also 192.168.xxx.xxx, sind nicht zulässig. Wenn Sie den Server für alle zugänglich machen möchten, wäre eine „Von allen verweigern“-Eingabe ungeeignet.

Sie können das Problem auf das Debian-System eingrenzen, auf dem Sie den Apache-Webserver betreiben, oder auf den Router, auf dem Sie die Portweiterleitung eingerichtet haben, vorausgesetzt, es sind keine anderen Netzwerkgeräte dazwischengeschaltet. Dazu verwenden Sie dentcpdumpBefehl auf dem Debian-Linux-System. Geben Sie den Befehl tcpdump -i any port 80als Root ein. Dadurch sucht tcpdump auf allen Schnittstellen nur nach Verbindungen zu Port 80 und ignoriert anderen Datenverkehr. Versuchen Sie dann, von einer externen Adresse aus eine Verbindung zum Webserver herzustellen. Wenn tcpdump anzeigt, dass der Datenverkehr über Port 80 das Linux-System erreicht, funktioniert die Portweiterleitung ordnungsgemäß. Wenn dies nicht der Fall ist, liegt wahrscheinlich ein Problem mit der Portweiterleitung vor. Überprüfen Sie daher noch einmal, ob Sie Port 80 an die richtige IP-Adresse für den Webserver weiterleiten.

verwandte Informationen