Auf meinem Computer wird Windows 7 Ultimate ausgeführt. Folgendes habe ich bisher (erfolgreich) getan:
- IIS 7.5 mit PHP über FastCGI installiert
- Habe es geschafft! Wenn ich zu http: //localhost/index.php gehe , laufen meine PHP-Skripte einwandfrei .
- Führen Sie ipconfig aus, um herauszufinden, dass meine lokale IP-Adresse 192.168.1.102 lautet. Ich habe bestätigt, dass http://192.168.1.102/index.php genau wie die oben angegebene localhost-Adresse funktioniert.
- Ging in meine Router-Administration (ich habe einen Linksys WRT54G2) und richtete die Portweiterleitung an Port 80 bis 192.168.1.102 ein. Jetzt leitet Port 80 an meinen Computer weiter.
- Richten Sie eine eingehende Regel in der Windows-Firewall ein, um alle Aktivitäten auf Port 80 zuzulassen.
- Ich habe von Google herausgefunden, wie meine externe IP-Adresse lautet. Nennen wir es XXX.XX.XX.XX.
Wenn ich jedoch versuche, von meinem eigenen Computer oder von einem weit entfernten Computer und nicht in meinem Netzwerk auf http: //XXX.XX.XX.XX/index.php zuzugreifen, erhalte ich nichts. Es versucht für eine Weile eine Verbindung herzustellen (erfolglos), gibt aber schließlich einfach auf.
Folgendes frage ich mich:
- Was vermisse ich? Was habe ich vergessen / übersehen? Wie kann ich dies außerhalb meines eigenen lokalen Netzwerks zum Laufen bringen und darauf zugreifen?
- Angenommen, ich arbeite damit, wie kann ich dann einen anderen Port als Port 80 verwenden? Welche Änderungen müsste ich vornehmen (z. B. IIS, Windows-Firewall, Routerverwaltung usw.), um dies zu ermöglichen?
Vielen Dank im Voraus!
iis
router
iis-7.5
port-forwarding
windows-firewall
Soapergem
quelle
quelle
Antworten:
Dies klingt nach einem HTTP.SYS-Problem, das Sie haben.
Unten finden Sie einen Auszug aus Scott Hanselmans Blog , in dem beschrieben wird, wie IISExpress außerhalb von localhost verfügbar gemacht wird. Der Blog-Beitrag ist länger und beschreibt auch, wie alle SSL-Verbindungen hergestellt werden. Aber ich glaube, dass die Befehle, die ich unten gepostet habe und die ich aus seinem Beitrag gezogen habe, Ihnen helfen werden, das Problem zu lösen, das Sie haben.
Möglicherweise benötigen Sie nicht den letzten Befehl, da Sie angeben, dass Sie bereits eine Firewall-Regel erstellt haben.
quelle
(Zugriff von außerhalb Ihres Netzwerks) Viele private Internetdienstanbieter (und einige geschäftliche Internetdienstanbieter) blockieren eingehenden Datenverkehr an bestimmten Service-Ports, z. B. Port 80 oder 25. Dies dient im Allgemeinen dazu, Sie aufgrund der Bandbreitennutzung davon abzuhalten, geschäftliche Dienste auf einer privaten Leitung auszuführen. Die Alternative besteht darin, es auf einem anderen Port auszuführen (siehe unten).
(Zugriff von innerhalb Ihres Netzwerks) Die Situation, die Sie beschreiben, klingt wie Haarnadel-NAT. Hier ist eine gute allgemeine Übersicht über Hairpin NAT . Sie müssen Ihrem Router NAT-Regeln hinzufügen, damit der Datenverkehr immer für Ihre externe IP-Adresse bestimmt wird. Port 80 wird über Ihren Router und nicht direkt von Host zu Host in Ihrem Netzwerk übertragen. Vorsichtsmaßnahme: Ihr Router ist möglicherweise nicht in der Lage, dies zu tun.
Ändern Sie die Portbindung in IIS und starten Sie die Website neu.
quelle
Ich hatte das gleiche Problem. Die Windows-Firewall blockiert den Zugriff. Schalten Sie es aus und überprüfen Sie es erneut. Ich vermute, dass es funktionieren wird.
quelle