(Simile a questa domanda , Lo so, tuttavia la risposta non era una soluzione.)
Ho appena installato Apache 2.4 come servizio su Windows 7 Professional e l'ho configurato correttamente, tuttavia è accessibile solo dai client LAN se disattivo Windows Firewall. (I client LAN scadono se Windows Firewall è in esecuzione). Poiché il problema non è presente quando si disabilita Windows Firewall, non presumo che si tratti di un errore nella configurazione di httpd. Abilitare la registrazione dei pacchetti rilasciati con Windows Firewall su mi lascia con un file di registro vuoto, il che mi lascia perplessi. Se Windows Firewall sta effettivamente bloccando / rilasciando i pacchetti in ingresso sulla porta 80, perché non dovrebbe registrarlo? Ancora meglio, perché Windows Firewall continuerà a bloccare le connessioni nonostante la mia regola del firewall?
Ho implementato una regola firewall in entrata con le seguenti opzioni: Action: Allow the connection. Service: Apache2.4. TCP Port: 80. Local IP: Any. Remote IP: Local Subnet.
Ho verificato che la regola si applichi a tutti i percorsi di rete. Questo non risolve il problema. Non credo che la regola non sia valida.
In esecuzione netstat -ao
ha prodotto il seguente risultato rilevante con Windows Firewall attivato o disattivato. 10.0.0.76
è l'host su cui sto eseguendo httpd su:
Active Connections
Proto Local Address Foreign Address State PID
TCP 10.0.0.76:80 Traxus-GD65:0 LISTENING 9104
Se httpd funziona davvero, dovrei vedere a LISTEN
stato su IP 10.0.0.76:80
per PID 9104
(il PID di httpd al momento dell'esecuzione del comando), ed effettivamente è lì. Si è verificato che il server Apache funzioni correttamente, restringendo la causa del problema a Windows Firewall.
Ecco l'output dalla corsa 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.
Inoltre, ecco l'output rilevante della corsa netstat /bn
con Windows Firewall disabilitato:
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]
Il 10.0.0.209
l'indirizzo è il mio client LAN. Queste due connessioni compaiono solo quando Windows Firewall è disabilitato e dopo che ho collegato il client.
netstat /bn
? Controlla anche che il PID che hai trovato sia il vero PID del servizio Apache.
netsh advfirewall firewall show rule name=all dir=in
Puoi usarename=Apache
o qualcosa del genere se conosci il nome della tua regola.