Frage Wie kann ich herausfinden, ob ein Port geöffnet ist oder nicht?


Ich habe Apache Server auf meinem Windows 7 Computer installiert. Ich konnte die voreingestellte index.php durch Eingabe anzeigen http: // localhost / in der Adresszeile meines Browsers.

Ich kann diese Seite jedoch immer noch nicht sehen, indem ich die IP-Adresse meines Computers eintrage (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 (auf eine Art beschrieben Hier) aber es hat das Problem nicht gelöst.

Zuerst möchte ich überprü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. Also, wenn 81 standardmäßig geöffnet ist, warum 80 nicht? Oder ist es?

ZUSÄTZLICHE INFORMATION:
1. In meiner httpd.conf-Datei habe ich "Listen 80".
2. Diese Seite sagt mir, dass Port 80 auf meinem Computer geöffnet ist.
3. Ich bekomme unterschiedliche Antworten, wenn ich es versuche http: // myip: 80 und http: // myip: 81. Im letzten Fall schreibt mir der Browser (Chrome), dass der Link kaputt ist. Im ersten Fall bekomme ich: Verboten Sie haben keine Zugriffsrechte auf diesen Server.
4. IE schreibt, dass "die Website diese Webseite nicht anzeigen wollte".


22
2018-02-25 16:17


Ursprung


Wenn im ersten Fall "Forbidden" angezeigt wird, ist Ihr Stammverzeichnis oder Ihr virtueller Host nicht korrekt eingerichtet. - Urda
Angenommen, Sie befinden sich hinter einem Router. Haben Sie die Portweiterleitung auf dem Router eingerichtet? Ihr Router (die meisten) verwendet wahrscheinlich Port 80 bereits für seine eigene webbasierte Admin-Schnittstelle. In jedem Fall müssen Sie Anfragen an Ihre öffentliche IP-Adresse (den Router) an die lokale IP-Adresse Ihres Computers an Port 80 (oder was auch immer) weiterleiten. - Jongosi


Antworten:


Wenn Sie Ihre Ports nur von außen überprüfen. Benutze dieses Werkzeug:

http://www.yougetsignal.com/tools/open-ports/

Es wird versuchen, eine Verbindung zu Ihrer IP-Adresse an dem bestimmten Port herzustellen und Sie wissen zu lassen, ob es für die Außenwelt offen oder geschlossen ist.

Lokale Probleme auch? Klingt wie die Windows 7 Firewall Sie abschneidet. Fügen Sie eine Ausnahme mit diesem Tutorial hinzu ...

http://www.sevenforums.com/tutorials/542-windows-firewall-add-remove-exception.html


16
2018-02-25 16:27



Ich habe meine Ports mit der überprüft yougetsignal.com/tools/open-ports. Diese Seite schreibt, dass mein Port 80 geöffnet ist (während 79 und 81 geschlossen sind). - Roman
Haben Sie Ihre Windows 7 Firewall-Ausnahmen überprüft? Es würde erklären, warum Sie es über erreichen können localhost und nicht von anderen Computern. - Urda
Wenn im ersten Fall "Forbidden" angezeigt wird, ist Ihr Stammverzeichnis oder virtueller Host in den meisten Fällen nicht korrekt eingerichtet. Sie erhalten eine Verbindung unterbrochen, weil 81 nicht aufgelöst wird. - Urda
@Urda danke für den Ruf auf meine Website. :) - Kirk Ouimet
@Kirk es ist schließlich eine tolle Website! - Urda


Laufen netstat -a -n oder ss -a -n In einer Eingabeaufforderung werden alle geöffneten Netzwerkverbindungen und die Überwachungsports auf Ihrem Computer angezeigt. 0.0.0.0:80 würde bedeuten, dass es auf Port hört 80 aller IP-Adressen (localhost und Ihre öffentlichen / privaten IP-Adressen) wo 127.0.0.1:80 würde bedeuten, dass es nur auf localhost zuhört. Du kannst hinzufügen -b zu dem Befehl und es wird angezeigt, welche ausführbare Datei diesen Port verwendet. Sie können dieselben Informationen mithilfe des Ressourcenmonitors in Windows 7 unter dem Abschnitt "Listening Ports" auf der Registerkarte "Network" abrufen.


13
2018-02-25 17:28





Wenn Sie sehen wollen, ob es von einem anderen Server geöffnet ist, können Sie einfach telnet serverName 80 und sehen, ob die Sitzung geöffnet wird. Ist dies nicht der Fall, hört der Server entweder nicht zu oder der Port wird von einer Firewall blockiert.

Wenn es geöffnet und dann sofort geschlossen wird, zumindest Windows 2003, dann ist die Software (z. B. Exchange) möglicherweise nicht so konfiguriert, dass sie auf dieser bestimmten Schnittstelle oder IP wartet, sondern an anderen Ports. Ich habe gesehen, dass IIS sich so verhält, weil es dumm ist, Apache nicht.


5
2018-02-25 16:28





Sie schrieben:

Im ersten Fall bekomme ich: Verboten Sie haben keine Zugriffsrechte auf diesen Server.

Obwohl das seltsam klingen mag, bist du es tatsächlich nicht habe ein Problem mit offenen Ports (aber mit Apache-Konfiguration).

Diese Nachricht "Verboten" 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 ursprünglich so eingerichtet, dass nur Anfragen vom lokalen Computer zugelassen werden.

Irgendwo in deiner Apache-Konfiguration gibt es wahrscheinlich einen Abschnitt wie diesen (das tatsächliche Verzeichnis könnte anders sein):

<Directory "/home/piskvor/www">
    Allow from 127.0.0.1
    Deny from all
(...)

Wenn Sie zulassen möchten, dass ein Computer Ihre Seiten anzeigt, müssen Sie die Option ändern Deny from all zu Allow from all. Weitere Informationen finden Sie in der Dokumentation zum Zugriffsmodul.


2
2018-03-08 09:43





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 ist nicht genug, wenn Sie sehen, dass Ihr Port 80 von localhost geöffnet ist - vielleicht steht etwas im Weg, wenn Sie es von woanders versuchen, deshalb empfehle ich nmap

Vom Kunden geben Sie ein: nmap IP-von-deinem-Server


1
2018-02-25 16:23





Wenn Sie dies in Ihrem lokalen Netzwerk testen möchten, gehen Sie zum Download nmap Wenn Sie sehen wollen, dass der Hafen für die Außenwelt zugänglich ist, machen Sie einen Scan bei https://www.grc.com/x/ne.dll?bh0bkyd2


1
2018-02-25 16:24





Serverports können entweder an eine einzelne IP-Adresse oder an jede verfügbare IP-Adresse gebunden sein. Es klingt so, als wäre Ihre Apache-Installation so eingestellt, 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 Apache-Verzeichnis conf) nach einer Zeile wie Listen localhost:80 und ändere es in Listen 80.


0
2018-02-25 16:27



Ich habe meine httpd.conf Datei gefunden. In der Datei habe ich "Listen 80". - Roman


telnet <host> <port> ist dein Freund. Es hat den Vorteil, dass es auf so ziemlich jedem Computer der Welt installiert ist.

Bearbeitungen nach erneutem Lesen der Frage:

Hier sind einige nützliche Diagnosetipps

  1. Wenn Sie über localhost auf die Site zugreifen können, aber nicht über Ihre standortlokale IP (192.168. *) von anderen Hosts in Ihrem Netzwerk, handelt es sich wahrscheinlich um ein Problem mit der Windows-Firewall.

  2. Wenn Sie von anderen lokalen Computern aus auf die Site zugreifen können, jedoch nicht vom Internet auf Ihre öffentliche IP-Adresse, handelt es sich um ein Konfigurationsproblem bei der Router- / Portweiterleitung.


0
2018-03-08 04:47





Geben Sie an einer Eingabeaufforderung Folgendes ein:

netstat -ano, look for 0.0.0.0:80 

... oder deine IP: 80. Dies wird Ihnen sagen, ob Port 80 auf Ihrem Computer geöffnet ist. Jetzt, wenn Sie überprüfen und sehen möchten, ob Sie von außerhalb Ihres Netzwerks auf es zugreifen können, wird feststellen, ob Sie eine Art Firewall an Ort und Stelle haben. In diesem Fall müssen Sie Port 80 an Ihren Webserver weiterleiten.


0
2018-05-03 18:44