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.


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.


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.


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.


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>

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ć.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.