Резервирование портов в диапазоне динамических портов Windows 10

757
SRB

Я хочу установить динамический диапазон портов Windows 10 между 20000 и 29999 (включительно), поэтому диапазон 10000 портов.

Для этого я запускаю следующие команды:

netsh int ipv4 set dynamicport tcp start=20000 num=10000 netsh int ipv4 set dynamicport udp start=20000 num=10000 netsh int ipv6 set dynamicport tcp start=20000 num=10000 netsh int ipv6 set dynamicport udp start=20000 num=10000 

После этого запросим диапазон с помощью следующей команды:

netsh int ipv4 show dynamicport tcp 

... дает следующий результат:

Protocol tcp Dynamic Port Range ------------------------------- Start Port : 20000 Number of Ports : 10000 

Что выглядит правильно для меня.

Теперь предположим, что я хочу зарезервировать определенные порты в этом диапазоне динамических портов Windows, например, 21000-21050, а затем выполнить следующую команду:

reg add HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\ /v ReservedPorts /t REG_MULTI_SZ /d 21000-21050 /f 

После этого запрос диапазона динамического порта Windows дает следующий результат:

Protocol tcp Dynamic Port Range ------------------------------- Start Port : 20000 Number of Ports : 10000 

Это ожидаемое поведение? Или же результирующая таблица должна быть несколько фрагментирована, чтобы отразить резервирование портов, попадающих в середину динамического диапазона, например что-то вроде:

Protocol tcp Dynamic Port Range ------------------------------- Start Port : 20000, 21051  Number of Ports : 1000, 8950 

Моя команда резервирования портов обновила реестр с параметром ReservedPorts, поэтому я предполагаю, что это все правильное поведение.

Есть ли другие способы протестировать этот процесс перед развертыванием в системе?

Спасибо

0

1 ответ на вопрос

0
Daniel B

Windows Vista и выше не поддерживают ReservedPortsзначение реестра. ( Источник )

Вместо этого вы можете использовать netshутилиту для достижения того же эффекта:

netsh int <ipv4|ipv6> Add excludedportrange [protocol=]tcp|udp [startport=]<integer> [numberofports=]<integer> [[store=]active|persistent] 

Вы также можете удалить записи:

netsh int <ipv4|ipv6> delete excludedportrange [protocol=]tcp|udp [startport=]<integer> [numberofports=]<integer> [[store=]active|persistent] 

... или перечислите их:

netsh int <ipv4|ipv6> show excludedportrange [protocol=]tcp|udp [[store=]active|persistent] 

Я сомневаюсь, что что-то из этого повлияет на результат netsh int <ipv4|ipv6> show dynamicport tcp.

Благодарю. Вы уверены, что ReservedPorts не только влияет на Server 2008? Я знаю, что на странице написано «Эта проблема возникает, потому что Windows Server 2008 и Windows Server 2008 R2 не поддерживают раздел реестра ReservedPorts». Где говорится, что это также влияет на Windows 10? Благодарю. SRB 6 лет назад 0
Это из-за нового сетевого стека с Vista / Server 2008. Но на самом деле, просто попробуйте. Команды, которые я цитировал, доступны, они, скорее всего, будут работать. Daniel B 6 лет назад 0