In der Windows-Firewall ist Port 80 geöffnet, Apache kann jedoch keine Verbindungen herstellen

11

Ich habe einen Windows 7-Computer, der nur sehr wenige (aber wichtige!) Seiten bereitstellt. Ich habe eine Ausnahme, die Datenverkehr auf Port 80 * zulässt, aber Apache 2.2 kann immer noch keine Seiten bereitstellen (obwohl ich sie vom Computer selbst aus sehen kann). Wenn ich die Windows-Firewall jedoch vollständig deaktiviere, kann ich die Box anpingen und Seiten laden.

Was muss ich noch konfigurieren, damit Apache seine Arbeit erledigen kann?

* Eigentlich passiert dasselbe, auch wenn ich die Ausnahme auf "alle Ports" anstatt nur auf 80 ändere.

Charles
quelle
3
1. Verwenden Sie Ping nicht mehr als Servicetest-Tool. Ob Sie den Host anpingen können oder nicht, spielt keine Rolle, ob die Website ausgeführt wird und auf sie zugegriffen werden kann. 2. Welches Netzwerkprofil ist in der Windows-Firewall aktiv und an welches Netzwerkprofil ist Ihre Regel gebunden?
Joeqwerty
@ Joeqwerty: Ich erwähne Ping nur, um zusätzliche Informationen bereitzustellen.
Charles

Antworten:

10

Unabhängig davon, ob Port 80 in Ihrer Firewall geöffnet ist oder nicht, bedeutet dies nicht, dass Ping funktioniert, wenn Apache ordnungsgemäß ausgeführt wird. Ping verwendet ICMP, ein eigenes Protokoll, das in der Firewall geöffnet werden muss, um Ping-Antworten von Ihrem Computer zu erhalten. Verlassen Sie sich also nicht auf Ping, um zu überprüfen, ob Ihre Apache-Konfiguration / Firewall-Konfiguration funktioniert.

Als Antwort auf Ihre Firewall-Regel für TCP 80 gehen Sie bitte zu den Eigenschaften Ihrer Regel und überprüfen Sie, ob alle 3 Kontrollkästchen (Domäne, Privat, Öffentlich) aktiviert sind und wenn nicht. Geben Sie hier die Bildbeschreibung ein

Hier ist ein HOWTO mit den genauen Schritten, die Sie ausführen müssen, um Port 80 unter Windows 7 zu öffnen: Link

Aktualisieren:

Überprüfen Sie auch, ob Sie den Apache-Prozess selbst mit der Windows-Firewall nicht blockieren.
1. Gehen Sie zur Systemsteuerung
2. Wählen Sie System und Sicherheit.
3. Wählen Sie im Abschnitt Windows-Firewall die Option Programm über Windows-Firewall zulassen aus .
Geben Sie hier die Bildbeschreibung ein
4. Wenn Sie das Kontrollkästchen links neben dem Anwendungsnamen deaktivieren, kann nicht auf Netzwerkressourcen zugegriffen werden, während das Kontrollkästchen den Zugriff zulässt.
Geben Sie hier die Bildbeschreibung ein
Wenn Apache nicht aufgeführt ist, können Sie auf die Schaltfläche Anderes Programm zulassen… klicken , um es hinzuzufügen, und dann die Kontrollkästchen unter Start / Arbeit und Öffentlich aktivieren.

George Tasioulis
quelle
Alle drei sind markiert. Die Website wird nicht in einem Browser geöffnet (außer auf dem Server selbst).
Charles
1
@ Charles: Führen Sie in diesem Fall die folgenden 5 Schritte aus: 1. Aktivieren Sie die Firewall-Protokollierung auf dem Windows 7-Computer. 2. Installieren Sie ein Paketerfassungsprogramm auf dem Windows 7-Computer. 3. Starten Sie eine Aufnahme. 4. Versuchen Sie, die Website von einem anderen Computer aus zu durchsuchen. 5. Stoppen Sie die Erfassung und überprüfen Sie sie und das Firewall-Protokoll auf Hinweise darauf, was passiert.
Joeqwerty
Sind Sie sicher, dass Sie die Regel im Inbound Ruleslinken Bereich erstellt haben?
George Tasioulis
@ Charles bitte überprüfen Sie mein Update.
George Tasioulis
1
@ George: Das war's. Das Zulassen von "Monitor Apache Servers" (zusätzlich zur Port 80-Ausnahme) hat funktioniert.
Charles
2

Überprüfen Sie den Dienst "Branch Cache" und stoppen Sie ihn, wenn er ausgeführt wird.

Sergey
quelle
1

Wenn das Problem durch Deaktivieren der Firewall vollständig behoben wird, Ihre Ausnahmeregeln jedoch nicht, würde ich sagen, dass Ihre Ausnahmen fehlerhaft sind.

Laut Microsoft besteht der erste Schritt bei der Behebung von Firewall-Problemen darin, das aktive Profil (öffentlich, privat oder Domäne) zu überprüfen.

Der erste Schritt zur Fehlerbehebung bei Windows-Firewall-Problemen besteht darin, zu überprüfen, welches Profil aktiv ist. Die Windows-Firewall mit erweiterter Sicherheit ist eine Anwendung, die den Netzwerkstandort berücksichtigt. Wenn sich die Netzwerkspeicherorte ändern, an die der Computer angeschlossen ist, ändert sich das Windows-Firewallprofil. Die Profile beschreiben die Windows-Firewall-Einstellungen und -Regeln, die abhängig vom Netzwerkstandorttyp der aktiven Netzwerkverbindungen angewendet werden.

Eine Möglichkeit ist also, dass Sie die richtige Regel gemacht haben, aber im falschen Profil.

Ich hoffe, das hilft.

Somantra
quelle
Guter Gedanke, +1. Dies ist nicht mein Problem, aber ich konnte jemanden sehen, der diesen Fehler machte.
Charles
0

Ihre httpd.conf beschränkt sich wahrscheinlich nur auf Clients im lokalen Host oder im lokalen Subnetz.

In Ihrem httpd.conf-Set:

<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

und möglicherweise auch dieses:

<Directory "E:/Apache/htdocs">
    Options Indexes FollowSymLinks
    AllowOverride None
    Allow from all
</Directory>
Djangofan
quelle
Nicht das Problem, denn wenn ich die Firewall ausschalte, verschwindet das Problem. (Vor dem Upgrade auf Win7 funktionierte dieselbe httpd.conf jahrelang einwandfrei.)
Charles
0

Ihre Firewall erlaubt keiner neuen Verbindung, Informationen ohne Ihre Zustimmung weiterzugeben. Geben Sie Ihrer Firewall nur Ihre Zustimmung.

  1. Gehen Sie zu Firewall-Einstellungen in der Systemsteuerung
  2. Klicken Sie auf Erweiterte Einstellungen
  3. Klicken Sie auf Eingehende Regeln und fügen Sie eine neue Regel hinzu.
  4. Wählen Sie "Art der Regel" für den Port.
  5. Lassen Sie dies für alle Programme zu.
  6. Ermöglichen Sie die Anwendung dieser Regel auf alle Profile, z. B. Domain, Private, Public.
  7. Geben Sie dieser Regel einen beliebigen Namen.

Das ist es. Jetzt können ein anderer PC und Handys, die im selben Netzwerk verbunden sind, auf die lokalen Standorte zugreifen. Beginnen wir mit der Entwicklung.

Surjeet Verma
quelle