Что такое сетевой порт и как он работает

Иван Корнев·26.04.2026·6 мин

Сетевой порт — это логический идентификатор, который позволяет операционной системе различать разные сетевые соединения на одном устройстве. Если IP-адрес можно сравнить с адресом здания, то порт — это номер конкретной квартиры или офиса внутри этого здания. Именно благодаря портам ваш компьютер может одновременно загружать веб-страницу, проверять почту и играть в онлайн-игру, не путая данные между этими приложениями.

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

Краткая суть: Порт — это число от 0 до 65535, которое «привязывается» к конкретному приложению. Оно говорит системе: «Данные, пришедшие на этот номер, предназначены для браузера/игры/мессенджера».

Зачем нужны порты в компьютере и интернете

Главная задача портов — мультиплексирование. Это технический термин, означающий возможность одновременной работы нескольких сервисов через одно сетевое подключение.

Представьте ситуацию: вы открыли вкладку с новостями (порт 80 или 443) и параллельно запустили видеозвонок в Zoom или Telegram. Данные от обоих источников приходят на один и тот же IP-адрес вашего компьютера. Как система поймет, какие пакеты отправить в браузер, а какие — в приложение для звонков?

Здесь вступают в дело порты:

  1. Идентификация сервиса. Каждый запущенный сетевой процесс «слушает» свой уникальный порт.
  2. Маршрутизация внутри ОС. Сетевой стек операционной системы смотрит на номер порта в заголовке пакета и передает данные нужному приложению.
  3. Разделение входящего и исходящего трафика. Порты помогают поддерживать целостность сеансов связи, особенно когда соединений сотни.

Как устроены порты: диапазоны и типы

Всего существует 65 536 портов (нумерация от 0 до 65535). Для удобства управления они разделены на три основные группы, регламентированные организацией IANA (Internet Assigned Numbers Authority).

1. Системные (зарегистрированные) порты: 0–1023

Это «элитные» порты, которые закреплены за самыми популярными интернет-сервисами. Их использование строго регламентировано, чтобы любой пользователь в мире мог обратиться к стандартному сервису по известному адресу.

ПортПротоколНазначение
20, 21FTPПередача файлов
22SSHБезопасное удаленное управление
25SMTPОтправка электронной почты
53DNSПреобразование имен сайтов в IP-адреса
80HTTPОбычный веб-трафик (незащищенный)
110POP3Получение электронной почты
443HTTPSЗащищенный веб-трафик (шифрованный)

Порты ниже 1024 часто требуют прав администратора (root) для запуска сервисов на них. Это сделано для безопасности, чтобы обычные пользователи не могли подменить системные службы (например, запустить фейковый веб-сервер на 80-м порту).

2. Пользовательские порты: 1024–49151

Этот диапазон используется для зарегистрированных приложений, которые не являются системными стандартами, но имеют закрепленные номера. Например, многие базы данных, игровые серверы или корпоративное ПО используют порты из этого диапазона (например, MySQL часто использует 3306, RDP для удаленного рабочего стола Windows — 3389).

3. Динамические (частные) порты: 49152–65535

Это временные порты, также называемые эфемерными. Они не закреплены за конкретными сервисами. Когда вы открываете сайт, ваш компьютер сам выбирает свободный порт из этого диапазона для исходящего соединения.

Пример работы:

  1. Ваш браузер хочет открыть google.com.
  2. Он отправляет запрос на IP-адрес Google на порт 443 (стандартный для HTTPS).
  3. В качестве обратного адреса браузер указывает ваш IP и случайный динамический порт (например, 54321).
  4. Сервер Google отвечает на ваш IP и порт 54321.
  5. Ваша ОС видит ответ на порт 54321 и понимает: «Ага, это ответ для того самого запроса от браузера», и передает данные туда.

TCP и UDP: разница в работе с портами

Порты существуют на транспортном уровне модели OSI и используются двумя основными протоколами: TCP и UDP. Хотя номера портов у них могут совпадать (порт 80 TCP и порт 80 UDP — это разные «двери»), принципы работы отличаются.

  • TCP (Transmission Control Protocol): Гарантирует доставку. Перед передачей данных устанавливается соединение («рукопожатие»). Используется там, где важна целостность информации: веб-сайты, почта, файлы.
  • UDP (User Datagram Protocol): Не гарантирует доставку и порядок пакетов, но работает быстрее. Используется там, где важна скорость, а потеря пары пакетов не критична: онлайн-игры, стриминг видео, VoIP-звонки, DNS-запросы.

Когда вы настраиваете проброс портов в роутере, важно указывать правильный протокол (TCP, UDP или оба). Неправильный выбор приведет к тому, что приложение не сможет подключиться извне.

Безопасность: открытые и закрытые порты

Для злоумышленника открытые порты — это потенциальные точки входа в вашу сеть. Поэтому понимание того, какие порты открыты, критически важно для безопасности.

  • Открытый порт: На этом порту «слушает» программа, готовая принимать соединения извне. Если это веб-сервер — это нормально. Если это старый принтер-сервер с известными уязвимостями — это риск.
  • Закрытый порт: Соединение на этот порт активно отвергается или игнорируется.
  • Фильтруемый порт: Брандмауэр (фаервол) блокирует доступ к порту, и сканер не получает никакого ответа.

Основные угрозы

  1. Сканирование портов. Хакеры используют инструменты вроде Nmap, чтобы проверить, какие порты открыты на вашем IP-адресе.
  2. Атаки на уязвимые сервисы. Если на открытом порте работает старая версия программы с дырой в безопасности, злоумышленник может получить контроль над устройством.
  3. DDoS-атаки. Забивание канала бессмысленными запросами на определенные порты.

Как проверить открытые порты на своем устройстве

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

В Windows

  1. Нажмите Win + R, введите cmd и нажмите Enter.
  2. В черном окне введите команду:
    netstat -ano
    ```
3.  Вы увидите список соединений. Колонка `Local Address` показывает ваш IP и порт (например, `192.168.1.5:443`). Колонка `PID` показывает идентификатор процесса, который использует этот порт.
4.  Чтобы узнать название программы, откройте Диспетчер задач, включите отображение колонки «PID» и найдите соответствующий номер.

### В macOS и Linux
Откройте Терминал и используйте команду:

```bash
sudo lsof -i -P -n | grep LISTEN

или более современную альтернативу:

ss -tuln

Эти команды покажут список всех слушающих портов и привязанных к ним процессов.

Частые ошибки при работе с портами

При настройке домашних серверов, игр или камер наблюдения пользователи часто сталкиваются с типовыми проблемами.

  1. Конфликт портов. Два приложения пытаются занять один и тот же порт (например, два веб-сервера на порту 80). Решение: измените порт одного из приложений в его настройках.
  2. Блокировка брандмауэром. Порт открыт в программе, но заблокирован встроенным фаерволом Windows или антивирусом. Решение: добавьте правило исключения для приложения в настройках брандмауэра.
  3. Отсутствие проброса в роутере (NAT). Вы настроили сервер на компьютере, но друзья не могут к нему подключиться из интернета. Причина: роутер не знает, кому пересылать входящие данные. Решение: настройте Port Forwarding (проброс портов) в интерфейсе роутера, указав внутренний IP компьютера и нужный порт.
  4. Динамический IP. Если ваш провайдер меняет внешний IP-адрес при каждой перезагрузке роутера, ваши настройки проброса станут неактуальными. Решение: используйте сервисы Dynamic DNS (DDNS).

FAQ: Ответы на популярные вопросы

Можно ли изменить стандартный порт сервиса? Да, большинство программ позволяют настроить нестандартный порт (например, запустить веб-сервер на порту 8080 вместо 80). Однако при обращении к такому сервису из браузера вам придется явно указывать порт в адресной строке: http://site.com:8080.

Безопасно ли открывать порты для игр? Как правило, да. Современные игры используют защищенные протоколы. Однако всегда стоит открывать только те порты, которые указаны в официальной документации игры, и не включать функцию DMZ (полное открытие всех портов для устройства), если в этом нет крайней необходимости.

Что такое loopback-адрес 127.0.0.1? Это локальный адрес («localhost»). Порты на этом адресе доступны только внутри вашего компьютера. Если веб-сервер слушает 127.0.0.1:80, вы сможете зайти на него сами, но никто из внешней сети не сможет к нему подключиться. Это самый безопасный способ тестирования сервисов.

Почему портов всего 65535? Это ограничение заложено в структуре заголовков протоколов TCP и UDP. Номер порта кодируется 16 битами. Максимальное число, которое можно записать в 16 битах, равно $2^{16} - 1 = 65535$. Этого количества более чем достаточно для любых современных задач.