尽管有防火墙规则,为什么 Windows 防火墙仍会阻止到 httpd 的入站 LAN 连接?

尽管有防火墙规则,为什么 Windows 防火墙仍会阻止到 httpd 的入站 LAN 连接?

(如同这个问题,我知道,但是答案并不是解决方案。)

我刚刚在 Windows 7 Professional 上安装了 Apache 2.4 作为服务,并对其进行了正确配置,但是,如果我禁用 Windows 防火墙,则只能从 LAN 客户端访问它。(如果 Windows 防火墙正在运行,LAN 客户端将超时)。由于禁用 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 确实在工作,我应该会看到LISTENIP 的状态10.0.0.76:80PID 9104运行命令时 httpd 的 PID),并且确实如此。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地址是我的 LAN 客户端。这两个连接仅在禁用 Windows 防火墙并且连接客户端后才会出现。

答案1

我修复了这个问题,但我不知道为什么它能起作用。我回去删除了我的防火墙规则,就像我已经做过很多次一样,并为本地端口 80 制定了一条新规则。即使使用与我之前的规则完全相同的设置,新规则现在也能正常工作。我不确定这是否是一个真正的答案,因为我不完全理解这种发展背后的机制。– 毛茸茸的

我赞同这个解决方案,并把它作为其他人的答案。虽然我很困惑为什么它有效,但实际上,只需从我的规则中删除可执行路径要求就足以在我的 Windows 10 计算机上启用入站连接。谢谢你的提示,毛茸茸的

相关内容