这在 Win7 中相当容易,因为该版本的 Windows 防火墙允许您阻止端口范围(例如 1-79,81-65535),只留下一个端口打开。
然而 Vista(至少默认情况下)没有这个 - 您只能指定受影响端口的逗号分隔列表,并且输入 1,2,3,4,5,6,7,8,9,.....65530,65531,65532,65533,65534,65535 将需要一段时间。
有没有办法解决?
答案1
在 Vista 中,没有办法绕过每次 1 个端口的规范。
但您可以使用命令行命令向防火墙添加条目Netsh
。既然您可以这样做,您就可以编写脚本/循环来一次添加多个条目。
以下一行代码将添加多个端口规则,每个端口一个:
for /l %i in (1,1,79) do netsh advfirewall firewall add rule name="PortRangeEntry%i" dir=in protocol=TCP localport=%i action=block
这将生成名为“PortRangeentry1”至“PortRangeEntry79”的 79 个条目,每个条目都设置为阻止该端口上的入站 TCP 连接。
for /l %i in (81,1,65535) do netsh advfirewall firewall add rule name="PortRangeEntry%i" dir=in protocol=TCP localport=%i action=block
将执行端口 81-65535。
这些必须以“管理员身份”运行,虽然我在 Windows 8 上进行了测试,但相同或非常相似的功能应该适用于 Vista。