hostprofi.ru
Подобрать хостинг
Термин·буква П

Порт (network port)

краткое определение

Сетевой порт — 16-битное числовое значение (0-65535) в заголовке TCP/UDP-сегмента, идентифицирующее конкретный процесс или сервис на хосте. Позволяет одному IP-адресу обслуживать несколько независимых сетевых соединений одновременно.

Сетевой порт (network port) — целое число от 0 до 65535, являющееся частью адреса транспортного уровня (TCP или UDP). Полный сетевой адрес соединения — это кортеж из IP-адреса, порта и протокола: 192.168.1.1:80/TCP. Порт позволяет операционной системе направлять входящие пакеты к нужному процессу: пакет на порт 80 — веб-серверу, на порт 22 — SSH-демону.

Как работает

TCP и UDP-заголовки содержат поля Source Port и Destination Port (по 16 бит каждое). При установке TCP-соединения клиент выбирает случайный «эфемерный» порт (обычно из диапазона 32768-60999 в Linux) в качестве источника и указывает известный порт сервиса в качестве назначения. ОС ведёт таблицу сокетов: каждое активное соединение — это четырёхэлементный кортеж (src_ip, src_port, dst_ip, dst_port).

Диапазоны портов по RFC 6335:

  • 0-1023 — well-known ports (системные): требуют прав root/Administrator для прослушивания.
  • 1024-49151 — registered ports: зарегистрированы IANA для конкретных сервисов.
  • 49152-65535 — dynamic/ephemeral ports: используются клиентами как временные порты.

Стандартные порты широко известных сервисов: 21 — FTP, 22 — SSH, 25 — SMTP, 53 — DNS, 80 — HTTP, 110 — POP3, 143 — IMAP, 443 — HTTPS, 3306 — MySQL, 5432 — PostgreSQL, 6379 — Redis, 27017 — MongoDB.

История

Концепция портов появилась в начальных спецификациях TCP (RFC 793, 1981) и протоколе DARPA. До этого ARPANET использовал «socket» — аналогичную концепцию. IANA (Internet Assigned Numbers Authority) централизованно регистрирует назначения портов с 1980-х. RFC 6335 (2011) актуализировал правила регистрации портов.

Порты в хостинге

Сервер прослушивает (listen) один или несколько портов. Проверить: ss -tlnp или netstat -tlnp показывают все активные сокеты. Iptables/firewalld фильтруют трафик по номерам портов. Типичная конфигурация файрвола разрешает входящие соединения только на 22, 80, 443 и закрывает остальное.

Смена стандартных портов (например, SSH с 22 на 2222) даёт минимальную защиту (security through obscurity) — боты продолжают сканировать все порты. Реальная защита — Fail2ban и ключевая аутентификация SSH.

При NAT хостер проброшивает конкретные порты из публичного IP на внутренний IP сервера (port forwarding). В Docker флаг -p 8080:80 связывает порт 8080 хоста с портом 80 контейнера.

На что обращать внимание

Конфликт портов — распространённая ошибка: если порт уже занят другим процессом, сервис не запустится с ошибкой Address already in use. Диагностика: ss -tlnp | grep :PORT. В VPS-среде панели управления (cPanel, ISPmanager) сами занимают ряд портов — это нужно учитывать при ручной установке сервисов.

История портов

Концепция портов появилась в NCP (Network Control Program) в 1970 году как часть ARPANET. TCP/IP с портами стандартизированы в RFC 793 (TCP, 1981) и RFC 768 (UDP, 1980). IANA — организация, ведущая реестр Well-Known Ports с 1994 года. Сегодня реестр содержит более 10 000 зарегистрированных портов. Диапазон Ephemeral ports на Linux по умолчанию: 32768–60999 (настраивается в /proc/sys/net/ipv4/ip_local_port_range).

Другие термины