Когда мы заходим на сайты, отправляем письма и играем в онлайн-игры, мы не задумываемся о том, как устройства находят друг друга в мировой сети. Браузер всегда открывает именно веб-страницы, почтовая программа — письма, а сервер понимает, что запрос предназначен для веб-страницы, а не для базы данных. Однако если вы когда-либо настраивали роутер или сталкивались с ошибками подключения, то наверняка видели надписи вроде «Port Forwarding» или «порт занят». За этими терминами скрывается понятная логика — освоив ее, вы сможете самостоятельно управлять сетевыми соединениями. Предлагаем погрузиться в тему и узнать, как работают сетевые порты, какие у них бывают типы и как защитить свою систему от злоумышленников.
Что такое сетевой порт
Когда мы говорим о передаче информации в сети, мы подразумеваем обмен пакетами данных. У каждого пакета есть адрес получателя — IP-адрес устройства. Но на компьютере или сервере могут одновременно работать несколько программ: браузер, мессенджер, почтовый клиент, игровой сервис и т. п. Направлять сетевой трафик к нужному приложению на машине и обратно позволяют сетевые порты (network ports).
В протоколах семейства TCP/IP сетевой порт — это 16‑битное число (числовой идентификатор), которое помечает, куда и откуда должны поступать данные и направляет их к конкретному сервису или программе.
Зачем нужны сетевые порты в компьютерных сетях
Каждому приложению ОС выделяет собственный порт, через который оно принимает входящие запросы и отправляет исходящие пакеты. Например, пока вы смотрите видео в браузере, ваш почтовый клиент может скачивать письма, а мессенджер — передавать сообщения. Все эти процессы используют порты разных видов, чтобы не мешать друг другу.
Сетевые порты выполняют сразу несколько важных функций, в т. ч.:
- разделяют трафик разных приложений;
- обеспечивают одновременную работу нескольких сервисов на одном IP‑адресе;
- управляют доступом к определенным службам.
Таким образом порты позволяют одновременно запускать несколько сетевых приложений на одном компьютере, а также обеспечивают порядок и эффективность обмена информацией.
Как работают сетевые порты
Когда устройство отправляет данные через сеть, оно указывает IP‑адрес получателя и номер порта. Получатель, в свою очередь, «слушает» определенные порты и реагирует на входящие запросы.
Связь IP‑адреса и порта
IP‑адрес определяет конкретное устройство в сети, а сетевой порт уточняет, какое приложение или сервис должно обработать данные. Например:
- запрос к веб‑сайту идет на IP‑адрес сервера и порт 80 (HTTP) или 443 (HTTPS);
- отправка электронной почты использует порт 25 (SMTP);
- подключение по SSH происходит через порт 22.
Связка «IP + порт» называется сокетом. Именно она позволяет точно адресовать данные в сложной сетевой среде.
TCP‑ и UDP‑порты
Сетевые порты могут использоваться разными протоколами транспортного уровня. Основными из них являются TCP (Transmission Control Protocol) и UDP (User Datagram Protocol). Один и тот же номер порта может быть назначен для разных типов служб и/или каналов в TCP и UDP. Например, говоря о порте 53, мы должны уточнять: для DNS over TCP или DNS over UDP, так как это два разных логических канала.
Сколько всего существует сетевых портов
Всего доступно 65536 портов — от 0 до 65535. Их номера неравнозначны: одни зарезервированы для системных служб, другие отданы под популярное ПО, а третьи работают как «расходники». Типы сетевых портов определены тремя диапазонами.
Зарезервированные (well‑known) порты
Это порты в диапазоне от 0 до 1023. Они закреплены за основными сетевыми службами и используются большинством операционных систем. Например:
- 80 — HTTP (веб‑серверы);
- 443 — HTTPS (защищенные веб‑серверы);
- 21 — FTP (передача файлов);
- 22 — SSH (защищенное удаленное управление).
Зарегистрированные порты
Порты с номерами от 1024 до 49151 используют приложения и служб, не входящие в базовый набор ОС. Это порты различных баз данных, игровых серверов, корпоративных приложений и проприетарных протоколов. Разработчики ПО могут зарегистрировать свой порт в IANA (Администрации адресного пространства интернета), чтобы избежать конфликтов с другими программами.
Динамические и частные порты
Порты с 49152 до 65535 используются временно, например, когда браузер открывает соединение с веб‑сайтом. Операционная система автоматически выбирает свободный порт из этого диапазона для исходящего соединения. После завершения сеанса связи порт освобождается и может быть назначен повторно для других задач.
Самые известные сетевые порты и их назначение
Именно эти порты обеспечивают работу веб-сайтов, электронной почты и удаленного доступа, оставаясь незаметными для обычного пользователя:
-
HTTP и HTTPS
- Порт 80 (HTTP) — стандартный порт для передачи веб‑страниц без шифрования.
- Порт 443 (HTTPS) — защищенная версия HTTP с шифрованием данных. Используется для онлайн‑банкинга, интернет‑магазинов и других сайтов, где важна безопасность.
-
FTP и SFTP
- Порт 21 (FTP) — передача файлов между компьютерами.
- Порт 22 (SFTP) — безопасная версия FTP, работающая поверх SSH. Обеспечивает шифрование данных при передаче.
-
SMTP, POP3 и IMAP
- Порт 25 (SMTP) — отправка электронной почты.
- Порт 110 (POP3) — получение писем с сервера (скачивание на устройство).
- Порт 143 (IMAP) — синхронизация почты между устройствами.
-
DNS
- Порт 53 (UDP и TCP) — преобразование доменных имен в IP‑адреса. Без него вы не смогли бы открывать сайты по именам вроде ruweb.net.
-
SSH и RDP
- Порт 22 (SSH) — защищенное удаленное управление серверами.
- Порт 3389 (RDP) — подключение к удаленному рабочему столу Windows.
Как используются порты на сервере
Серверы постоянно «слушают» определенные порты, ожидая входящих запросов.
Веб‑серверы
Обычно работают на портах 80 и 443. Когда пользователь открывает сайт, его браузер отправляет запрос на IP‑адрес сервера и указанный порт. Сервер обрабатывает запрос и возвращает веб‑страницу.
Почтовые серверы
Используют несколько портов для разных задач:
- отправка писем — порт 25 (SMTP);
- получение писем — порты 110 (POP3) или 143 (IMAP);
- защищенная отправка — порт 587 (SMTP с шифрованием).
Базы данных и другие сервисы
Для СУБД MySQL и PostgreSQL зарегистрированы собственные порты:
- MySQL — порт 3306;
- PostgreSQL — порт 5432.
У других сервисов, например, у Redis или Memcached, тоже есть выделенные порты для обмена данными.
Открытые и закрытые порты
Открытый порт — это порт, который принимает входящие соединения. Закрытый порт игнорирует запросы или отклоняет их.
Как проверить открытые порты
Проверить, какие порты открыты на устройстве, можно несколькими способами:
-
Команда
netstat(в командной строке Windows —netstat -an, в Linux —netstat -tulpn) покажет активные соединения и прослушиваемые порты. - Сканеры портов (например, Nmap) позволят проверить доступность портов на удаленном сервере.
- Онлайн‑сервисы для проверки портов (вроде Port Checker) — удобный вариант, если необходимо быстро оценить доступность сервиса из интернета.
Безопасность сетевых портов
Когда мы настраиваем сервер, мы неизбежно открываем порты для нужных сервисов. Но вместе с удобством мы получаем и бреши в защите — любой открытый канал может быть использован против нас.
Почему опасны открытые порты
Открытые порты могут стать точками входа для злоумышленников. Если на сервере запущен сервис с уязвимостью, хакеры могут использовать его для взлома. Например, через открытый порт 22 (SSH) без надежной аутентификации возможен несанкционированный доступ к системе.
Как защитить сервер с помощью брандмауэра
Брандмауэр (firewall) фильтрует входящий и исходящий трафик в соответствии с предустановленными правилами. Например, можно заблокировать доступ ко всем портам по умолчанию и явно разрешить только необходимые. Один из вариантов — разрешить доступ к порту 443 со всего мира, к порту 22 — только с определенного IP-адреса администратора, а все остальные запросы отклонять.
Заключение
Технологии не стоят на месте, появляются новые протоколы и сервисы, но концепция адресации приложений через порты будет актуальной ещё много лет. Это лишь малая, но крайне важная часть огромного мира компьютерных сетей. Понимание того, как работают сетевые порты, поможет вам эффективнее управлять IT‑инфраструктурой и защищать ее от угроз. Попробуйте прямо сейчас проверить свои устройства, используя команды из этой статьи.