Короткий ответ
Порт — 16-битный номер (0–65535), который вместе с IP-адресом и протоколом (TCP/UDP) однозначно идентифицирует конечную точку сетевого соединения на хосте; well-known порты (0–1023) закреплены за стандартными сервисами, например 22 — SSH, 80 — HTTP, 443 — HTTPS, 53 — DNS.
Как это работает подробнее
Операционная система ведёт таблицу открытых сокетов, где каждому слушающему или установленному соединению соответствует пара (локальный адрес:порт, удалённый адрес:порт) и протокол; это позволяет на одном IP-адресе одновременно обслуживать множество разных сервисов и соединений, различая их по номеру порта.
Пример кода
commands.sh
ss -tlnp | grep ':443'Что использовать на практике
- Практика. знание стандартных портов ускоряет первичную диагностику (если порт 443 не отвечает — скорее всего проблема с HTTPS-сервисом или файрволом), а в продакшене для непривилегированных процессов обычно используют порты выше 1024, так как для биндинга на порты ниже 1024 на Linux нужны повышенные привилегии (capability CAP_NET_BIND_SERVICE).
Подводные камни
- Риск. Частая ошибка — путать номер порта с самим сервисом: один и тот же порт можно переназначить любому процессу, поэтому для точной диагностики всегда стоит проверять, какой именно процесс слушает порт, а не полагаться только на номер.