(Подобно этому вопросу, я знаю, но ответ не был решением.)
Я недавно установил 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 отключен, и после того, как я подключил клиента.