Резервування портів у діапазоні динамічних портів Windows 10


1

Я хочу встановити динамічний діапазон портів для 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, тому я припускаю, що це все правильно.

Чи є якісь інші способи перевірити цей процес до розгортання в системі?

Дякую

Відповіді:


1

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 не впливає лише на сервер 2008? Я знаю, що на сторінці написано: "Ця проблема виникає тому, що Windows Server 2008 та Windows Server 2008 R2 не підтримують ключ реєстру ReservedPorts". Звідки це також впливає на Windows 10? Дякую.
SRB

Це через новий стек мережі з Vista / Server 2008. Але насправді, просто спробуйте. Команди, які я цитував, є, вони, швидше за все, спрацюють.
Даніель Б

Під час виконання команд видалення я постійно отримую "Доступ заборонено". навіть при запуску адміністратора. Будь-яка ідея, як обійти це? Не вдалося знайти інформацію щодо неї.
FreakyDan
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.