Брандмауер Windows має порт 80 відкритим, але не дозволяє Apache здійснювати з'єднання


11

У мене машина Windows 7, яка обслуговує дуже мало (але важливих!) Сторінок. У мене є виняток, який дозволяє будь-якому трафіку переносити порт 80 *, але Apache 2.2 все ще не може обслуговувати сторінки (хоча я бачу їх із самої машини). Якщо я відключити брандмауер Windows повністю, я можу пінг-скриньку та завантажити сторінки.

Що ще мені потрібно налаштувати, щоб Apache міг виконувати свою роботу?

* Насправді те ж саме відбувається, навіть якщо я зміню виняток на "всі порти", а не лише на 80.


3
1. Перестаньте використовувати ping як інструмент тестування сервісу. Чи можете ви відімкнути хост чи ні, не має значення, чи працює веб-сайт чи є його доступним. 2. Який мережевий профіль активний у брандмауері Windows та до якого мережевого профілю пов’язане ваше правило?
joeqwerty

@joeqwerty: Я згадую ping лише для надання додаткової інформації.
Чарльз

Відповіді:


10

Те, що порт 80 відкритий у вашому брандмауері, не означає, що ping почне працювати, якщо Apache працює правильно. Ping використовує ICMP, який є власним протоколом, який потрібно відкрити на брандмауері, щоб отримувати відповіді від ping з вашої машини. Тому не розраховуйте на ping, щоб перевірити, чи працює ваша конфігурація apache / конфігурація брандмауера.

У відповідь на ваше правило брандмауера для tcp 80, будь ласка, перейдіть до властивостей вашого правила та перевірте, чи всі 3 прапорці (Доменні, Приватні, Загальнодоступні) перевірені, а чи ні їх не встановити. введіть тут опис зображення

Ось HOWTO з точними кроками, які вам потрібно зробити, щоб відкрити порт 80 у Windows 7: посилання

Оновлення:

Також перевірте, чи не ви блокуєте сам процес apache за допомогою брандмауера Windows.
1. Перейдіть до Панелі управління
2. Виберіть Система та безпека
3. У розділі Брандмауер Windows виберіть Дозволити програму через Брандмауер Windows .
введіть тут опис зображення
4. Якщо зніміть прапорець ліворуч від назви програми, це не дозволяє йому отримати доступ до мережевих ресурсів, а перевіряючи, чи дозволяє йому доступ.
введіть тут опис зображення
Якщо Apache не вказаний у списку, ви можете натиснути кнопку Дозволити іншу програму…, щоб додати її, а потім встановити прапорець у розділі Додому / Робота та Громадське.


Усі три перевірені. Веб-сайт не відкриється в браузері (за винятком самого сервера).
Чарльз

1
@Charles: У цьому випадку виконайте наступні 5 дій: 1. Увімкніть ведення журналу брандмауера на машині Windows 7. 2. Встановіть програму захоплення пакетів на машині Windows 7. 3. Почніть захоплення. 4. Спробуйте переглядати веб-сайт з іншої машини. 5. Зупиніть захоплення та огляньте його та журнал брандмауера на предмет підказки щодо того, що відбувається.
joeqwerty

Ви впевнені, що створили правило Inbound Rulesна лівій панелі?
Джордж Тасьоуліс

@Charles, будь ласка, перевірте моє оновлення.
Джордж Тасьоуліс

1
@George: Це все. Дозвіл "Monitor Apache Servers" (крім винятку порта 80) змусив його працювати.
Чарльз

2

Перевірте службу "Відгалуження кеш-пам'яті" та зупиніть її, якщо вона працює.


1

Якщо вимкнення брандмауера повністю вирішує проблему, але ваші правила виключення цього не роблять, я б ризикну сказати, що ваші винятки є несправними.

На думку Microsoft , першим кроком у вирішенні проблем із брандмауером є перевірка активного профілю (загальнодоступного, приватного чи доменного).

Перший крок у вирішенні проблем із брандмауером Windows - це перевірити, який профіль активний. Брандмауер Windows із розширеною безпекою - це програма, що знає мережеве розташування. У міру зміни мережевих локацій, до яких підключений комп'ютер, змінюється профіль брандмауера Windows. Профілі описують параметри брандмауера Windows та правила, які застосовуються залежно від типу розташування мережі активних мережевих з'єднань.

Отже, одна з можливостей полягає в тому, що ви зробили правильне правило, але в неправильному профілі.

Сподіваюся, що це допомагає.


Гарна думка, +1. Це не зрештою є моєю проблемою, але я міг бачити, як хтось робив цю помилку.
Чарльз

0

Ваш httpd.conf, ймовірно, обмежує клієнтів лише у localhost або локальній підмережі.

У наборі httpd.conf:

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

а можливо і цей:

<Directory "E:/Apache/htdocs">
    Options Indexes FollowSymLinks
    AllowOverride None
    Allow from all
</Directory>

Не проблема, тому що якщо я відключую брандмауер, проблема відходить. (Також перед оновленням до Win7 той самий httpd.conf працював чудово протягом багатьох років.)
Чарльз,

0

Ваш брандмауер не дозволяє новому з’єднанню обмінюватися інформацією без вашої згоди. ТІЛЬКО, що потрібно зробити - це дати згоду на брандмауер.

  1. Перейдіть до налаштувань брандмауера на панелі керування
  2. Клацніть на Розширені налаштування
  3. Клацніть на Вхідні правила та додайте нове правило.
  4. Виберіть "Тип правила" для порту.
  5. Дозволити це для всіх програм.
  6. Дозволити застосовувати це правило у всіх профілях, зокрема доменних, приватних, загальнодоступних.
  7. Дайте цьому правилу будь-яке ім’я.

Це воно. Тепер інший ПК та мобільні телефони, підключені в одній мережі, можуть отримувати доступ до локальних сайтів. Давайте почати розробку.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.