Резервування портів у діапазоні динамічних портів 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.