为什么 Windows 防火墙不阻止传入的 VNC 访问?

为什么 Windows 防火墙不阻止传入的 VNC 访问?

我有一个面向公众的 Windows 10 盒子(具有公共 IP),我需要对其进行配置,以便只有我可以远程通过 VNC 连接到它。

幸运的是,我可以确保只从单个远程主机(本例中为 198.51.100.1)连接到我的服务器。因此,我以这种方式在 Windows 10 主机上设置了防火墙规则:

在此处输入图片描述

具体来说,在规则的“范围”设置下,我已将“远程 IP 地址”配置为仅允许 198.51.100.1。在“高级”下,我将规则设置为应用于域、私有和公共配置文件。在“协议和端口”下,传入规则适用于本地端口 5900。没有其他自定义设置。

在此处输入图片描述

但是这条规则似乎不起作用。我仍然可以通过 VNC 连接到此 Windows 10 服务器任何远程 PC,不仅仅是 198.51.100.1

为什么此规则没有阻止除我想要的 IP 之外的所有 IP 的连接?

答案1

此规则不会告诉 Windows 防火墙堵塞连接。此规则告诉 Windows 防火墙允许连接。因此,此规则不提供您要求的行为。

如果您希望防火墙拒绝除您明确允许的连接之外的所有其他连接,则Deny AllACL 列表底部通常会有一个隐式或显式 ACL。Windows 防火墙Deny All默认使用隐式。但是,您可以更改此行为。因此,首先检查您的 Windows 防火墙是否配置为阻止所有入站连接:

  • 打开控制面板 -> Windows Defender 防火墙
  • 单击“高级设置”
  • 调整每个配置文件的默认操作:

在此处输入图片描述

现在您已经隐式Deny All阻止了所有未经明确允许的连接,您将需要识别任何其他允许来自不同 IP 地址的端口 5900(VNC)的规则,因为您提供的规则不会这样做。

  • 打开控制面板 -> Windows Defender 防火墙

  • 点击“允许应用或功能通过 Windows Defender 防火墙”

  • 搜索“允许的应用程序和功能”列表并删除与您安装的 VNC 可执行文件相关的任何内容。

    下一个:

  • 单击“允许的应用程序”窗口中的“确定”,以便返回到 Windows Defender 防火墙页面。

  • 点击“高级设置”

  • 选择左侧的“入站规则”

  • 单击Local Port标题可按本地端口号对防火墙规则列表进行排序。

  • 查找直接或通过范围覆盖端口 5900 的任何规则。务必查看分配给特定规则的所有端口号: 在此处输入图片描述

以您不想要的方式删除任何允许端口 5900 的规则。

相关内容