Ответ
Номера портов в TCP и UDP — это 16-битные беззнаковые целые числа. Следовательно, общий диапазон составляет от 0 до 65535, что дает 65536 возможных портов.
Они разделены на три категории:
- Well-known ports (0-1023): Закреплены за системными службами (например, 22-SSH, 80-HTTP, 443-HTTPS). Для их использования обычно требуются права root.
- Registered ports (1024-49151): Могут быть зарегистрированы IANA для приложений (например, 3306 для MySQL, 5432 для PostgreSQL).
- Dynamic/Private ports (49152-65535): Используются клиентами для временных (ephemeral) соединений. Когда клиент инициирует соединение с сервером, ОС обычно выбирает свободный порт из этого диапазона.
Практическое значение для DevOps:
- При настройке Security Groups в облаке или файрволов (iptables, nftables) вы явно разрешаете трафик на определенные порты.
- В Kubernetes Service определяет порт, на котором он доступен внутри кластера и снаружи (NodePort — также из диапазона 30000-32767).
- Утилита
netstatилиssпомогает диагностировать, какие порты слушаются.
Пример проверки открытых портов на хосте:
# Показать все слушающие TCP-порты
ss -tlnp
# Показать процессы, использующие порт 80
sudo lsof -i :80