Ich habe den Apache-Server auf meinem Windows 7-Computer installiert. Ich konnte die Standarddatei index.php anzeigen, indem ich http: // localhost / in die Adresszeile meines Browsers eingab.
Ich kann diese Seite jedoch immer noch nicht sehen, wenn ich die IP-Adresse meines Computers eingebe (weder lokal (vom selben Computer) noch global (von einem anderen mit dem Internet verbundenen Computer)).
Mir wurde gesagt, dass ich Port 80 öffnen muss. Ich habe es getan (wie hier beschrieben ), aber es hat das Problem nicht gelöst.
Zunächst möchte ich prüfen, welche Ports geöffnet sind und welche nicht. Zum Beispiel bin ich mir nicht sicher, ob mein Port 80 geschlossen war, bevor ich versuchte zu öffnen. Ich bin mir auch nicht sicher, ob es geöffnet wird, nachdem ich versucht habe, es zu öffnen.
Ich habe versucht, einen sehr einfachen Webserver in Python zu betreiben. Dafür habe ich Port 81 benutzt und es hat funktioniert! Und ich habe nicht versucht, den Port 81 zu öffnen. Also wurde er standardmäßig geöffnet. Wenn also standardmäßig 81 geöffnet ist, warum dann nicht 80? Oder doch?
WEITERE INFORMATIONEN:
1. In meiner httpd.conf-Datei habe ich "Listen 80".
2. Diese Site teilt mir mit, dass Port 80 auf meinem Computer geöffnet ist.
3. Ich erhalte unterschiedliche Antworten, wenn ich http: // myip: 80 und http: // myip: 81 versuche . Im letzten Fall schreibt mir Browser (Chrome), dass der Link kaputt ist. Im ersten Fall bekomme ich: Verboten Sie haben keine Erlaubnis auf diesen Server zuzugreifen.
4. IE schreibt, dass "die Website abgelehnt hat, diese Webseite zu zeigen".
quelle
Antworten:
Wenn Sie nur Ihre Ports von außen vor Ort überprüfen. Verwenden Sie dieses Tool:
http://www.yougetsignal.com/tools/open-ports/
Es wird versucht, eine Verbindung zu Ihrer IP-Adresse auf dem bestimmten Port herzustellen und Sie darüber zu informieren, ob diese für die Außenwelt offen oder geschlossen ist.
Lokale Probleme auch? Klingt so, als würde Sie die Windows 7-Firewall davon abhalten. Fügen Sie mit diesem Tutorial eine Ausnahme hinzu ...
http://www.sevenforums.com/tutorials/542-windows-firewall-add-remove-exception.html
quelle
localhost
und nicht von anderen Computern aus erreichen können.Wenn Sie
netstat -a -n
oderss -a -n
an einer Eingabeaufforderung ausführen, werden alle offenen Netzwerkverbindungen und die Überwachungsports auf Ihrem Computer angezeigt.0.0.0.0:80
würde bedeuten, dass es80
alle IP-Adressen (localhost und Ihre öffentlichen / privaten IP-Adressen) abhört, während127.0.0.1:80
es nur localhost abhört. Sie können-b
den Befehl erweitern und es wird angezeigt, welche ausführbare Datei diesen Port verwendet. Dieselben Informationen erhalten Sie mit dem Ressourcenmonitor in Windows 7 im Abschnitt Überwachungsports auf der Registerkarte Netzwerk.quelle
Wenn Sie sehen möchten, ob es von einem anderen Server aus geöffnet ist, können Sie einfach feststellen,
telnet serverName 80
ob die Sitzung geöffnet ist. Ist dies nicht der Fall, lauscht der Server entweder nicht oder der Port wird von einer Firewall blockiert.Wenn es sofort geöffnet und dann geschlossen wird, mindestens Windows 2003, ist die Software (z. B. Exchange) möglicherweise nicht für die Überwachung dieser bestimmten Schnittstelle oder IP-Adresse konfiguriert, überwacht jedoch andere Ports. Ich habe gesehen, wie sich IIS so verhält, weil es dumm ist, Apache vielleicht nicht.
quelle
Sie schrieben:
Obwohl dies seltsam klingt, haben Sie tatsächlich kein Problem mit offenen Ports (aber mit der Apache-Konfiguration).
Diese "Verbotene" Nachricht kommt von Ihrem Apache-Server. es bedeutet , dass Ihr Webserver ist aus dem Internet erreichbar.
Sie müssen Apache so konfigurieren, dass alle Hosts bedient werden können. Andernfalls wird die Seite "Verboten" angezeigt. IIRC, Apache ist anfänglich so eingerichtet, dass nur Anforderungen vom lokalen Computer zugelassen werden.
Irgendwo in Ihrer Apache-Konfiguration gibt es wahrscheinlich einen Abschnitt wie diesen (das tatsächliche Verzeichnis kann davon abweichen):
Wenn Sie einen Computer zulassen möchten , um Ihre Seiten zu sehen, müssen Sie die Änderungen
Deny from all
zuAllow from all
. Weitere Informationen finden Sie in der Dokumentation zum Zugriffsmodul .quelle
Um offene Ports zu sehen, sollten Sie wahrscheinlich nmap verwenden. Sie haben eine Windows-Version: http://nmap.org/dist/nmap-5.21-setup.exe
Es reicht nicht aus, wenn Sie Ihren Port 80 von localhost aus geöffnet sehen - vielleicht steht etwas im Weg, wenn Sie es von einem anderen Ort aus versuchen. Deshalb empfehle ich nmap
Vom Client aus geben Sie Folgendes ein: nmap ip-of-your-server
quelle
Wenn Sie dies in Ihrem lokalen Netzwerk testen möchten, laden Sie nmap herunter. Wenn Sie sehen möchten, ob der Port für die Außenwelt zugänglich ist, führen Sie einen Scan unter https://www.grc.com/x/ne.dll?bh0bkyd2 durch
quelle
Serverports können entweder an eine einzelne IP-Adresse oder an jede verfügbare IP-Adresse gebunden werden. Es hört sich so an, als wäre Ihre Apache-Installation so eingerichtet, dass sie nur an 127.0.0.1 bindet, und Sie müssen sie so einrichten, dass sie an * bindet. Suchen Sie in Ihrer httpd.conf (im conf-Verzeichnis von Apache) nach einer Zeile wie
Listen localhost:80
und ändern Sie sie inListen 80
.quelle
telnet <host> <port>
ist dein Freund. Es hat die Tugend, auf so ziemlich jedem Computer der Welt installiert zu sein.Bearbeitungen nach dem erneuten Lesen der Frage:
Hier sind einige nützliche Diagnosetipps
Wenn Sie über localhost auf die Site zugreifen können, jedoch nicht über Ihre lokale IP-Adresse (192.168. *) von anderen Hosts in Ihrem Netzwerk, liegt wahrscheinlich ein Windows-Firewall-Problem vor.
Wenn Sie von anderen standortlokalen Computern auf den Standort zugreifen können, jedoch nicht über das Internet, um Ihre öffentliche IP-Adresse zu erhalten, liegt ein Problem mit der Router- / Portweiterleitungskonfiguration vor.
quelle
Geben Sie an einer Eingabeaufforderung Folgendes ein:
... oder deine IP: 80. Hier erfahren Sie, ob Port 80 auf Ihrem Computer geöffnet ist. Wenn Sie nun überprüfen möchten, ob Sie von außerhalb Ihres Netzwerks darauf zugreifen können, wird festgestellt, ob eine Firewall vorhanden ist. In diesem Fall müssen Sie Port 80 an Ihren Webserver weiterleiten.
quelle
Wenn Sie unter Windows arbeiten, verwenden Sie SysInternals TCPView . Es kann Ihnen sagen, welches Programm welchen Port benutzt.
quelle
Im DOS-Befehl:
quelle