我有一个面向公众的 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 All
ACL 列表底部通常会有一个隐式或显式 ACL。Windows 防火墙Deny All
默认使用隐式。但是,您可以更改此行为。因此,首先检查您的 Windows 防火墙是否配置为阻止所有入站连接:
- 打开控制面板 -> Windows Defender 防火墙
- 单击“高级设置”
- 调整每个配置文件的默认操作:
现在您已经隐式Deny All
阻止了所有未经明确允许的连接,您将需要识别任何其他允许来自不同 IP 地址的端口 5900(VNC)的规则,因为您提供的规则不会这样做。
打开控制面板 -> Windows Defender 防火墙
点击“允许应用或功能通过 Windows Defender 防火墙”
搜索“允许的应用程序和功能”列表并删除与您安装的 VNC 可执行文件相关的任何内容。
下一个:
单击“允许的应用程序”窗口中的“确定”,以便返回到 Windows Defender 防火墙页面。
点击“高级设置”
选择左侧的“入站规则”
单击
Local Port
标题可按本地端口号对防火墙规则列表进行排序。
以您不想要的方式删除任何允许端口 5900 的规则。