![Windows 防火墙已打开端口 80,但阻止 Apache 建立连接](https://linux22.com/image/562936/Windows%20%E9%98%B2%E7%81%AB%E5%A2%99%E5%B7%B2%E6%89%93%E5%BC%80%E7%AB%AF%E5%8F%A3%2080%EF%BC%8C%E4%BD%86%E9%98%BB%E6%AD%A2%20Apache%20%E5%BB%BA%E7%AB%8B%E8%BF%9E%E6%8E%A5.png)
我有一台 Windows 7 机器,它只提供很少的(但很重要的)页面。我设置了一个例外,允许任何流量到端口 80*,但 Apache 2.2 仍然无法提供页面(尽管我可以从机器本身看到它们)。但是,如果我完全禁用 Windows 防火墙,我就可以 ping 机器并加载页面。
我还需要配置什么才能使 Apache 完成其工作?
* 实际上,即使我将例外情况改为“所有端口”而不是仅仅 80,也会发生同样的事情。
答案1
无论防火墙上的 80 端口是否打开,都并不意味着如果 Apache 正常运行,ping 就会开始工作。Ping 使用 ICMP,这是一种自己的协议,需要在防火墙上打开才能接收来自您机器的 ping 回复。因此,不要指望 ping 来验证您的 Apache 配置/防火墙配置是否正常工作。
为了响应您的 tcp 80 防火墙规则,请转到规则的属性并检查是否选中所有 3 个复选框(域、私有、公共),如果没有,请选中它们。
以下是在 Windows 7 上打开端口 80 所需采取的具体步骤的操作指南:关联
更新:
另请检查您是否没有使用 Windows 防火墙阻止 Apache 进程本身。1
. 转到控制面板
2. 选择系统和安全
3. 在 Windows 防火墙部分中,选择允许程序通过 Windows 防火墙。4 .
取消选中应用程序名称左侧的复选框将禁止其访问网络资源,选中则允许其访问。
如果未列出 Apache,您可以单击允许另一个程序...按钮添加它,然后选中家庭/工作和公共下的框。
答案2
如果禁用防火墙可以完全解决问题,但例外规则却不能,那么我敢说您的例外是有缺陷的。
据微软称,解决防火墙问题的第一步是验证活动配置文件(公共、私有或域)。
解决 Windows 防火墙问题的第一步是验证哪个配置文件处于活动状态。高级安全 Windows 防火墙是一个网络位置感知应用程序。随着计算机连接的网络位置发生变化,Windows 防火墙配置文件也会发生变化。配置文件描述了根据活动网络连接的网络位置类型应用的 Windows 防火墙设置和规则。
因此,一种可能性是,您制定了正确的规则,但却是在错误的配置文件中制定的。
希望有所帮助。
答案3
检查服务“分支缓存”,如果正在运行则停止它。
答案4
除了上述所有答案之外,我还需要额外做的是进入控制面板、防火墙、左侧的高级设置,在入站流量中,我右键单击每个名为 apache 的规则并激活它,然后右键单击它,单击其属性,然后单击高级选项卡,并确保选中入站列表中找到的每个规则的“私人”、“公共”和“域”,不要忘记