(Semelhante a esta pergunta , eu sei, no entanto, a resposta não foi uma solução.
Eu recentemente instalei o Apache 2.4 como um serviço no Windows 7 Professional, e configurei-o corretamente, no entanto, ele só é acessível a partir de clientes da LAN se eu desabilitar o Firewall do Windows. (Os clientes de LAN passam o tempo limite se o Firewall do Windows estiver em execução). Como o problema não está presente ao desativar o Firewall do Windows, não presumo que seja um erro na configuração do httpd. Habilitar o log de pacotes perdidos com o Firewall do Windows me deixa com um arquivo de log em branco, o que me deixa perplexo. Se o Firewall do Windows estiver realmente bloqueando / descartando pacotes de entrada para a porta 80, por que não registrar isso? Melhor ainda, por que o Firewall do Windows continuaria bloqueando as conexões apesar da minha regra de firewall?
Implementei uma regra de firewall de entrada com as seguintes opções: Action: Allow the connection. Service: Apache2.4. TCP Port: 80. Local IP: Any. Remote IP: Local Subnet.
Verifiquei que a regra se aplica a todos os locais de rede. Isso não resolve o problema. Não acredito que a regra seja inválida.
A execução de netstat -ao
gerou o seguinte resultado relevante com o Firewall do Windows ativado ou desativado. 10.0.0.76
é o host em que estou executando o httpd:
Active Connections
Proto Local Address Foreign Address State PID
TCP 10.0.0.76:80 Traxus-GD65:0 LISTENING 9104
Se o httpd estiver de fato funcionando, eu deveria estar vendo um estado LISTEN
no IP 10.0.0.76:80
para PID 9104
(o PID do httpd no momento da execução do comando) e, de fato, ele está lá. O servidor Apache está verificado que está funcionando corretamente, limitando a causa do problema ao Firewall do Windows.
Aqui está a saída da execução de 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.
Além disso, aqui está a saída relevante de executar netstat /bn
com o Firewall do Windows desativado:
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]
O endereço 10.0.0.209
é meu cliente de rede local. Essas duas conexões só aparecem quando o Firewall do Windows está desabilitado e depois de eu ter conectado o cliente.