Zapora systemu Windows ma otwarty port 80, ale uniemożliwia Apache nawiązywanie połączeń

11

Mam komputer z systemem Windows 7 obsługujący bardzo niewiele (ale ważne!) Stron. Mam wyjątek, który zezwala na dowolny ruch do portu 80 *, ale Apache 2.2 nadal nie może obsługiwać stron (chociaż widzę je z samego komputera). Jeśli jednak całkowicie wyłączę Zaporę systemu Windows, mogę pingować okno i ładować strony.

Co jeszcze muszę skonfigurować, aby Apache mógł wykonywać swoje zadania?

* W rzeczywistości to samo dzieje się, nawet jeśli zmienię wyjątek na „wszystkie porty”, a nie tylko 80.

Charles
źródło
3
1. Przestań używać ping jako narzędzia do testowania usług. To, czy możesz pingować hosta, czy nie, nie ma znaczenia, czy witryna jest uruchomiona i dostępna. 2. Który profil sieci jest aktywny w zaporze systemu Windows i do którego profilu sieci jest przypisana reguła?
joeqwerty
@joeqwerty: Wspominam o ping tylko po to, by podać dodatkowe informacje.
Charles,

Odpowiedzi:

10

To, czy port 80 jest otwarty na zaporze, nie oznacza, że ​​ping zacznie działać, jeśli Apache działa poprawnie. Ping używa ICMP, który jest własnym protokołem, który należy otworzyć w zaporze, aby otrzymywać odpowiedzi ping z komputera. Więc nie licz na ping, aby sprawdzić, czy konfiguracja apache / firewall działa.

W odpowiedzi na regułę zapory sieciowej dla tcp 80 przejdź do właściwości reguły i sprawdź, czy wszystkie 3 pola wyboru (Domena, Prywatne, Publiczne) są zaznaczone, a jeśli nie, zaznacz je. wprowadź opis zdjęcia tutaj

Oto HOWTO z dokładnymi krokami, które należy wykonać, aby otworzyć port 80 w systemie Windows 7: link

Aktualizacja:

Sprawdź również, czy sam nie blokujesz procesu apache za pomocą Zapory systemu Windows.
1. Przejdź do Panelu sterowania
2. Wybierz System i zabezpieczenia
3. W sekcji Zapora systemu Windows wybierz Zezwalaj programowi przez Zaporę systemu Windows .
wprowadź opis zdjęcia tutaj
4. Odznaczenie pola po lewej stronie nazwy aplikacji uniemożliwia dostęp do zasobów sieciowych, a zaznaczenie jej umożliwia dostęp.
wprowadź opis zdjęcia tutaj
Jeśli Apache nie ma na liście, możesz kliknąć przycisk Zezwól innemu programowi… , aby go dodać, a następnie zaznaczyć pola w obszarze Strona główna / Praca i Publiczne.

George Tasioulis
źródło
Wszystkie trzy są sprawdzone. Witryna nie otworzy się w przeglądarce (z wyjątkiem samego serwera).
Charles,
1
@Charles: W takim przypadku wykonaj następujące 5 czynności: 1. Włącz logowanie zapory na komputerze z systemem Windows 7. 2. Zainstaluj program do przechwytywania pakietów na komputerze z systemem Windows 7. 3. Rozpocznij przechwytywanie. 4. Spróbuj przeglądać witrynę internetową z innego komputera. 5. Zatrzymaj przechwytywanie i sprawdź je oraz dziennik zapory ogniowej pod kątem wskazówek, co się dzieje.
joeqwerty
Czy na pewno utworzyłeś regułę w Inbound Ruleslewym okienku?
George Tasioulis,
@ Charles, sprawdź moją aktualizację.
George Tasioulis,
1
@George: To wszystko. Dopuszczenie „Monitoruj serwery Apache” (oprócz wyjątku dla portu 80) sprawiło, że działało.
Charles,
2

Sprawdź usługę „Pamięć podręczna oddziału” i zatrzymaj ją, jeśli jest uruchomiona.

Siergiej
źródło
1

Jeśli wyłączenie zapory całkowicie rozwiązuje problem, ale twoje reguły wyjątków nie, zaryzykuję stwierdzenie, że twoje wyjątki są wadliwe.

Według Microsoft , pierwszym krokiem w rozwiązywaniu problemów z zaporą ogniową jest weryfikacja aktywnego profilu (publicznego, prywatnego lub domeny).

Pierwszym krokiem w rozwiązywaniu problemów z Zaporą systemu Windows jest sprawdzenie, który profil jest aktywny. Zapora systemu Windows z zabezpieczeniami zaawansowanymi to aplikacja rozpoznająca lokalizację sieciową. W miarę zmiany lokalizacji sieci, do których podłączony jest komputer, zmienia się profil Zapory systemu Windows. Profile opisują ustawienia i reguły Zapory systemu Windows, które są stosowane w zależności od typu lokalizacji sieci aktywnych połączeń sieciowych.

Jedną z możliwości jest to, że wprowadziłeś właściwą regułę, ale w niewłaściwym profilu.

Mam nadzieję, że to pomaga.

Somantra
źródło
Dobra myśl, +1. To nie jest mój problem, ale widziałem, jak ktoś popełnia ten błąd.
Charles,
0

Twój httpd.conf prawdopodobnie ogranicza się tylko do klientów na localhost lub lokalnej podsieci.

W twoim zestawie httpd.conf:

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

i prawdopodobnie także ten:

<Directory "E:/Apache/htdocs">
    Options Indexes FollowSymLinks
    AllowOverride None
    Allow from all
</Directory>
djangofan
źródło
Nie problem, ponieważ jeśli wyłączę zaporę, problem zniknie. (Ponadto przed uaktualnieniem do Win7 ten sam httpd.conf działał dobrze przez lata.)
Charles
0

Zapora sieciowa nie zezwala, aby nowe połączenie udostępniało informacje bez Twojej zgody. WYŁĄCZNIE musisz wyrazić zgodę na zaporę ogniową.

  1. Przejdź do ustawień zapory w Panelu sterowania
  2. Kliknij Ustawienia zaawansowane
  3. Kliknij Reguły przychodzące i Dodaj nową regułę.
  4. Wybierz „Rodzaj reguły” do portu.
  5. Zezwalaj na to dla wszystkich programów.
  6. Zezwól na stosowanie tej reguły do ​​wszystkich profili, tj. Domena, Prywatny, Publiczny.
  7. Nadaj tej regule dowolną nazwę.

Otóż ​​to. Teraz inny komputer i telefony komórkowe podłączone do tej samej sieci mogą uzyskać dostęp do lokalnych stron. Zacznijmy programować.

Surjeet Verma
źródło