Это довольно просто в Win7, потому что эта версия брандмауэра Windows позволяет блокировать диапазон портов, например, 1-79,81-65535, оставляя открытым только один порт.

Однако в Vista (по крайней мере, по умолчанию) этого нет - вы можете указать список затронутых портов, разделенных запятыми, и набрать 1,2,3,4,5,6,7,8,9, .... .65530,65531,65532,65533,65534,65535 собирается занять некоторое время.

Есть ли способ обойти это?

1 ответ1

2

Там нет способа обойти 1 порт в спецификации времени в Vista.

Но вы можете добавить записи в брандмауэр с помощью командной строки 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

Это создаст 79 записей с именем "PortRangeentry1" через "PortRangeEntry79", каждая из которых будет блокировать входящие 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.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .