2

(Подобно этому вопросу, я знаю, но ответ не был решением.)

Я недавно установил Apache 2.4 в качестве службы в Windows 7 Professional и настроил его правильно, однако он доступен только для клиентов локальной сети, если я отключу брандмауэр Windows. (Время ожидания клиентов локальной сети, если брандмауэр Windows работает). Поскольку проблема не возникает при отключении брандмауэра Windows, я не предполагаю, что это ошибка в конфигурации httpd. Включение ведения журнала пропущенных пакетов с помощью брандмауэра Windows оставляет меня с пустым лог-файлом, что вызывает недоумение. Если брандмауэр Windows действительно блокирует / отбрасывает входящие пакеты на порт 80, почему он не регистрирует это? А еще лучше, почему брандмауэр Windows продолжает блокировать соединения, несмотря на мое правило брандмауэра?

Я внедрил правило входящего брандмауэра со следующими параметрами: Action: Allow the connection. Service: Apache2.4. TCP Port: 80. Local IP: Any. Remote IP: Local Subnet. Я проверил, что правило применяется ко всем сетевым местоположениям. Это не решает проблему. Я не верю, что правило недействительно.

Запуск netstat -ao дал следующий соответствующий результат при включенном или выключенном брандмауэре Windows. 10.0.0.76 - хост, на котором я запускаю httpd:

Active Connections
Proto  Local Address          Foreign Address        State           PID
TCP    10.0.0.76:80           Traxus-GD65:0          LISTENING       9104

Если httpd действительно работает, я должен увидеть состояние LISTEN на IP 10.0.0.76:80 для PID 9104 (PID httpd во время выполнения команды), и это действительно так. Проверено, что сервер Apache работает правильно, сужая причину проблемы до брандмауэра Windows.

Вот результат работы запущенного netsh advfirewall firewall show rule name="Apache HTTP Server" dir=in:

Rule Name:                            Apache HTTP Server
----------------------------------------------------------------------
Enabled:                              Yes
Direction:                            In
Profiles:                             Domain,Private,Public
Grouping:
LocalIP:                              Any
RemoteIP:                             LocalSubnet
Protocol:                             TCP
LocalPort:                            80
RemotePort:                           All
Edge traversal:                       No
Action:                               Allow
Ok.

Кроме того, вот соответствующий вывод запуска netstat /bn с отключенным брандмауэром Windows:

Active Connections
  Proto  Local Address          Foreign Address        State
  TCP    10.0.0.76:80           10.0.0.209:49019       ESTABLISHED
 [httpd.exe]
  TCP    10.0.0.76:80           10.0.0.209:49020       ESTABLISHED
 [httpd.exe]

Адрес 10.0.0.209 - это мой клиент локальной сети. Эти два соединения появляются только тогда, когда брандмауэр Windows отключен, и после того, как я подключил клиента.

0