Как в Windows зарезервировать динамический порт

Помимо IP-адреса, все сетевые приложения используют порты – данные в виде 16-битного числа, указанного в заголовках протоколов транспортного уровня сетевой модели OSI. Сетевой порт – это своего рода уточнение адреса, точка входа-выхода, использующаяся для связи конкретного приложения с сетью. Каждая сетевая программа, будь то браузер или мессенджер, использует определенный порт.

И если он окажется занятым, то при запуске приложения вы получите ошибку «Указанный порт уже открыт» или «Невозможно занять порт, поскольку он уже используется» и т. п.

Быстрым решением в таких случаях является определение занявшего порт процесса с помощью консольной утилиты netstat с последующим завершением работы процесса, но можно пойти и другим путем.

Вы можете зарезервировать порт, чтобы Windows если и назначала его, то только тем программам, которые его запросят. Дело в том, что есть программы, которые используют только определенные порты, и есть программы, которые могут использовать любые свободные порты из числа зарегистрированных и динамических.

Типы портов

Если кто не знает, всего существует 65535 портов, из которых первые 1024 (от 0 до 1023) являются зарезервированными под нужды самой Windows. Они не могут использоваться сторонними и даже некоторыми встроенными приложениями.

Порты с 1024 до 49151 именуются зарегистрированными, а порты с 49152 по 65535 – динамическими, частными или эфемерными, хотя на практике все порты с 1024 по 65535 генерируются динамически и могут в равной степени использоваться разными приложениями.

Но вернемся к нашей проблеме.

Нам нужно сделать так, чтобы запрашивающие любые свободные порты программы не смогли получить порт, который использует приложение, выдающее ошибку «Указанный порт уже открыт».

Для этого порт или диапазон портов необходимо зарезервировать.

В графическом интерфейсе Windows не предусмотрено опции, которая позволяла бы это сделать, поэтому придется действовать в обход – через реестр.

Предположим, вам нужно зарезервировать порт 1723.

Откройте редактор реестра командой regedit и разверните эту ветку:

HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters

В правой колонке создайте мультистроковый (REG_MULTI_SZ) параметр,

Мультистроковый параметр

ReservedPorts и установите в качестве его значения диапазон резервируемых портов, в данном примере 1723-1723.

ReservedPorts

Обратите внимание, что значение параметра ReservedPorts имеет формат X-Y, даже если резервируется всего один порт.

Чтобы настройки вступили в силу, обязательно перезагрузите компьютер.

Вот и все, отныне указанный порт смогут использовать только те программы, которые запросят именно его.

Оцените Статью:

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *