Брандмауэр 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, чтобы проверить, работает ли ваша конфигурация 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на левой панели?
Джордж Тасиулис

@ Чарльз, пожалуйста, проверьте мое обновление.
Джордж Тасиулис

1
@ Джордж: Вот и все. Разрешение «Мониторинг серверов Apache» (в дополнение к исключению для порта 80) заставило его работать.
Чарльз

2

Проверьте службу «Ветвь кеша» и остановите ее, если она работает.


1

Если отключение брандмауэра полностью решает проблему, а ваши правила исключений этого не делают, то я бы рискнул сказать, что ваши исключения являются ошибочными.

По словам Microsoft , первым шагом в устранении проблем с брандмауэром является проверка активного профиля (публичный, частный или доменный).

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

Таким образом, одна возможность состоит в том, что вы сделали правильное правило, но в неправильном профиле.

Надеюсь, это поможет.


Хорошая мысль, +1. Это не в конечном итоге моя проблема, но я мог видеть, что кто-то делает эту ошибку.
Чарльз

0

Ваш httpd.conf, вероятно, ограничивается клиентами только на локальном хосте или локальной подсети.

В вашем наборе 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.