Помимо IP-адреса, все сетевые приложения используют порты – данные в виде 16-битного числа, указанного в заголовках протоколов транспортного уровня сетевой модели OSI. Сетевой порт – это своего рода уточнение адреса, точка входа-выхода, использующаяся для связи конкретного приложения с сетью. Каждая сетевая программа, будь то браузер или мессенджер, использует определенный порт.
И если он окажется занятым, то при запуске приложения вы получите ошибку «Указанный порт уже открыт» или «Невозможно занять порт, поскольку он уже используется» и т. п.
Быстрым решением в таких случаях является определение занявшего порт процесса с помощью консольной утилиты netstat с последующим завершением работы процесса, но можно пойти и другим путем.
Вы можете зарезервировать порт, чтобы Windows если и назначала его, то только тем программам, которые его запросят. Дело в том, что есть программы, которые используют только определенные порты, и есть программы, которые могут использовать любые свободные порты из числа зарегистрированных и динамических.
Типы портов
Если кто не знает, всего существует 65535 портов, из которых первые 1024 (от 0 до 1023) являются зарезервированными под нужды самой Windows. Они не могут использоваться сторонними и даже некоторыми встроенными приложениями.
Но вернемся к нашей проблеме.
Нам нужно сделать так, чтобы запрашивающие любые свободные порты программы не смогли получить порт, который использует приложение, выдающее ошибку «Указанный порт уже открыт».
Для этого порт или диапазон портов необходимо зарезервировать.
В графическом интерфейсе Windows не предусмотрено опции, которая позволяла бы это сделать, поэтому придется действовать в обход – через реестр.
Предположим, вам нужно зарезервировать порт 1723.
Откройте редактор реестра командой regedit и разверните эту ветку:
HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
В правой колонке создайте мультистроковый (REG_MULTI_SZ) параметр,
ReservedPorts и установите в качестве его значения диапазон резервируемых портов, в данном примере 1723-1723.
Обратите внимание, что значение параметра ReservedPorts имеет формат X-Y, даже если резервируется всего один порт.
Чтобы настройки вступили в силу, обязательно перезагрузите компьютер.
Вот и все, отныне указанный порт смогут использовать только те программы, которые запросят именно его.
Добавить комментарий