TCP-порт — что это такое простыми словами: диапазоны и как проверить порт на сервере
Разбираемся, что такое TCP-порт, зачем серверу нужны тысячи пронумерованных «дверей» и как узнать, какие из них открыты. Материал входит в словарь терминов и пригодится, если вы настраиваете firewall, SSH или веб-сервер на своём VPS впервые.

Коротко
Главные выводы статьи о теме «TCP-порт» в семи пунктах:
- Всего существует 65 536 номеров TCP-портов — от 0 до 65 535
- Известные (well-known) порты занимают диапазон 0–1023
- Динамические порты выделяются из диапазона 49 152–65 535
- TCP-соединение устанавливается за 3 шага: SYN, SYN-ACK, ACK
- Порт 22 по умолчанию используется для SSH, порт 443 — для HTTPS
- Заголовок TCP-пакета занимает минимум 20 байт против 8 байт у UDP
- Порты ниже 1024 на Linux требует прав root для запуска сервиса
Что такое TCP-порт простыми словами
TCP-порт — это числовой идентификатор, который указывает, какая программа на сервере должна принять входящее соединение. Протокол TCP (Transmission Control Protocol) отвечает за гарантированную доставку данных: пакеты приходят в исходном порядке и без потерь, в отличие от протокола UDP, который данные не проверяет и не пересылает повторно. Всего существует 65 536 номеров портов — от 0 до 65 535.
Удобная аналогия: IP-адрес сервера — это адрес дома, а порт — номер конкретной квартиры в этом доме. Почтальон (сетевой пакет) находит дом по адресу, а квартиру — по номеру, и именно туда попадает письмо, а не к соседям. Так и данные приходят на сервер по IP-адресу, а порт определяет, какому именно сервису их передать.
За надёжность TCP платит размером заголовка: он занимает минимум 20 байт против 8 байт у заголовка UDP. Эти дополнительные байты хранят номера пакетов, контрольные суммы и данные для подтверждения доставки. Часть портов закреплена за конкретными сервисами по умолчанию, и три из них встречаются чаще всего:
- Порт 22 — используется для
SSH, удалённого подключения к серверу - Порт 80 — используется для обычного HTTP-трафика
- Порт 443 — используется для HTTPS, защищённого соединения по протоколу
TLS
Если вы настраиваете сервер впервые и не хотите разбираться в тонкостях портов вручную, проще заказать VPS с готовой настройкой и начать с уже открытых нужных портов.
Как работает TCP-порт: сокет и рукопожатие
Сам по себе TCP-порт — это просто число. Чтобы данные дошли до нужной программы, операционная система связывает вместе IP-адрес, номер порта и протокол — эта тройка называется сокетом. Например, сокет 192.0.2.10:443/tcp однозначно указывает на конкретный процесс на конкретном сервере, а не просто на машину в сети.
Перед обменом данными по протоколу TCP (Transmission Control Protocol, протокол управления передачей) две стороны договариваются о соединении за 3 шага — это называется тройным рукопожатием (three-way handshake). Клиент отправляет пакет с флагом SYN, сервер отвечает пакетом SYN-ACK, после чего клиент подтверждает связь пакетом ACK. Только после этого начинается передача данных, а служебный заголовок каждого TCP-пакета занимает минимум 20 байт.
Установленные соединения видно в выводе утилиты ss или устаревшей netstat. Строка вида tcp ESTAB 0 0 192.0.2.10:22 198.51.100.5:51422 показывает локальный порт 22, который на Linux требует прав root, и удалённый порт 51422, выбранный клиентом из динамического диапазона. Точно так же выглядит соединение по порту 443 для HTTPS.
Несколько важных деталей о нумерации:
- Номер порта — это одно и то же число независимо от версии протокола IP, разница между IPv4 и IPv6 на порты не влияет.
- Локальный порт в примере выше — 22, удалённый — 51422.
- Рукопожатие всегда состоит именно из трёх пакетов: SYN, SYN-ACK, ACK.

Какие бывают TCP-порты: диапазоны и популярные номера
Всего существует 65 536 номеров TCP-портов — от 0 до 65 535. Их делят на три диапазона по правилам назначения. Понимать эту разбивку полезно, чтобы не занять чужой порт и не запускать сервис там, где его не ждут.
Известные (well-known) порты занимают диапазон 0–1023. Их закрепили за конкретными службами: например, порт 22 по умолчанию используется для SSH, а порт 443 — для HTTPS. Registered-порты идут с 1024 по 49 151 — их регистрируют разработчики конкретных приложений, например баз данных. Динамические порты выделяются из диапазона 49 152–65 535 и обычно достаются клиентским соединениям на время сессии.
Ниже — таблица с портами, которые встречаются чаще всего. Диапазон и назначение помогают быстро понять, к какой категории относится нужный вам порт.
| Порт | Служба | Диапазон |
|---|---|---|
| 22 | SSH (Secure Shell, удалённый доступ) | well-known |
| 25 | SMTP (Simple Mail Transfer Protocol, отправка почты) | well-known |
| 53 | DNS (Domain Name System) | well-known |
| 80 | HTTP | well-known |
| 443 | HTTPS | well-known |
| 3306 | MySQL | registered |
| 5432 | PostgreSQL | registered |
| 6379 | Redis | registered |
Подробнее о конкретном номере читайте в разборе порта 443 и его назначения. Порты ниже 1024 на Linux требуют прав root для запуска сервиса — обычным пользователем поднять веб-сервер на порту 80 не получится. Если нужен сервер с полным доступом к таким портам, выберите подходящий VPS.
Подобрать сервер для тестирования портов
Проверить работу портов на практике удобнее на собственном VPS — сравните тарифы и характеристики в подборке.
Как проверить и открыть TCP-порт на сервере
На сервере порт может быть в одном из трёх состояний: его слушает сервис, его никто не слушает или его блокирует файрвол (межсетевой экран). Клиент подключится, только если выполнены оба условия: программа запущена на нужном номере порта, а правило файрвола пропускает трафик.
Начинайте проверку на самом сервере, а заканчивайте с внешнего компьютера. Так вы сразу поймёте, где проблема: в сервисе, в локальном файрволе или в сетевых правилах провайдера. Команды ниже подходят для Ubuntu и Debian. Для них нужен доступ по SSH (Secure Shell) и права sudo.
Если своего сервера у вас пока нет, выберите VPS с root-доступом. VPS (Virtual Private Server) — это виртуальный выделенный сервер. На обычном виртуальном хостинге настроить файрвол не получится.
Как проверить и открыть TCP-порт по шагам:
- Посмотрите, какие порты слушает сервер:
sudo ss -tulnp. Что значат ключи:-t— TCP,-u— UDP,-l— только слушающие порты,-n— номера вместо имён,-p— процесс. Запись0.0.0.0:443значит, что порт доступен на всех сетевых интерфейсах, а127.0.0.1:5432— что он принимает только локальные подключения. На старых системах используйтеnetstat -tulnpиз пакетаnet-tools. - Проверьте конкретный порт:
nc -zv -w 5 127.0.0.1 443. Ответsucceededзначит, что сервис принимает соединения. Ключ-w 5ограничивает ожидание 5 секундами. Еслиncнет, подойдётtelnet 127.0.0.1 443. - Откройте порт в UFW (Uncomplicated Firewall):
sudo ufw allow 22/tcp, затем остальные нужные порты, напримерsudo ufw allow 443/tcp. Разрешите порт 22 до командыsudo ufw enable, иначе потеряете доступ по SSH. - Проверьте правила:
sudo ufw status verbose. Статус должен бытьactive, а в списке — строка443/tcp ALLOW Anywhere. - Если UFW не установлен, выведите правила iptables:
sudo iptables -L INPUT -n --line-numbers. Если политика цепочки —DROPи разрешающего правила нет, трафик блокируется. Добавьте правило:sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT. Затем сохраните его командойsudo netfilter-persistent saveиз пакетаiptables-persistent, иначе после перезагрузки правило пропадёт. - Повторите проверку с домашнего компьютера:
nc -zv -w 5 203.0.113.10 443, где вместо203.0.113.10укажите IP-адрес вашего сервера. Если на сервере порт отвечает, а снаружи нет, откройте его в панели провайдера: у многих хостеров есть отдельный сетевой файрвол.

Ошибки при работе с TCP-портами
Большинство проблем с TCP-портами повторяются от новичка к новичку: чаще всего это заблокированный провайдером порт 25 или правило ufw, которое забыли применить. Ошибку легко принять за сбой сервера, хотя причина — в паре забытых команд или путанице между протоколами. Ниже разберём все по порядку.
Первая ошибка: заблокирован исходящий порт 25
Письма с сервера не доходят, хотя почтовый сервис запущен и настроен верно. Многие хостинг-провайдеры по умолчанию блокируют исходящий TCP-порт 25, чтобы сервер не использовали для рассылки спама.
Как решить: напишите в поддержку с просьбой открыть порт или отправляйте почту через порт 587 с аутентификацией.
Вторая ошибка: правило ufw не применено
После команды ufw allow 8080/tcp соединение всё равно не проходит, потому что правило не применилось к активной сессии файрвола.
Как решить: выполните ufw reload или systemctl restart ufw.
Третья ошибка: путаница TCP и UDP
TCP и UDP — разные протоколы с раздельной нумерацией портов, и один номер может использоваться независимо. Например, DNS (система доменных имён) работает на порте 53 сразу по обоим: UDP — для обычных запросов, TCP — для больших ответов и синхронизации зон. Открыв только TCP 53, вы не решите проблему с UDP-запросами.
Четвёртая ошибка: Permission denied на порте 80
На Linux все порты из диапазона 0–1023 считаются известными (well-known) и требуют прав root, поэтому запуск сервиса от обычного пользователя заканчивается ошибкой.
Как решить: запускайте сервис через sudo или из-под systemd-юнита с правами root, выдайте бинарнику право слушать привилегированные порты командой setcap 'cap_net_bind_service=+ep' либо используйте порт выше 1024 с пробросом через обратный прокси.
Почти все эти ошибки решаются одной-двумя командами. Если разбираться с портами и файрволом каждый раз некогда, проще взять готовый VPS с преднастроенным файрволом и не тратить время на такие мелочи.
TCP-порт и UDP-порт: в чём разница
У TCP (Transmission Control Protocol) и UDP (User Datagram Protocol) одинаковые номера портов: от 0 до 65 535. Но это два независимых набора. Служба, которая слушает порт 53/TCP, не примет запрос на 53/UDP. Поэтому в правилах файрвола всегда указывайте протокол: команда ufw allow 53/udp откроет только UDP.
Разница видна уже в заголовке пакета. Заголовок TCP занимает минимум 20 байт, а с опциями — до 60 байт. В нём хранятся номера последовательности, подтверждения и размер окна. Заголовок UDP весит всего 8 байт и содержит 4 поля: порт отправителя, порт получателя, длину и контрольную сумму.
Перед передачей данных TCP устанавливает соединение за 3 шага, нумерует байты и ждёт от получателя подтверждения ACK (acknowledgement). Потерянный пакет отправляется повторно, а данные собираются в исходном порядке. UDP отправляет датаграммы без соединения, подтверждений и повторов, поэтому работает быстрее и меньше нагружает сеть. Потери и перестановки пакетов при этом обрабатывает само приложение.
Как выбрать протокол:
- TCP — когда важен каждый байт: HTTP (HyperText Transfer Protocol) на порту 80, HTTPS (HTTP Secure) на 443, SSH (Secure Shell) на 22, FTP (File Transfer Protocol) на 21.
- UDP — когда важна скорость: DNS-запросы (Domain Name System) на порту 53, VoIP (Voice over IP) — голосовые звонки через интернет, онлайн-игры, видеотрансляции.
- В звонке или игре пакет, который опоздал на 200 мс, уже бесполезен: проще пропустить его, чем ждать повторной отправки.
- Чтобы узнать, какие порты слушает сервер, выполните
ss -tlnpдля TCP иss -ulnpдля UDP.

Когда разбираться в номерах TCP-портов не обязательно
Глубокое понимание TCP-портов нужно не всем. Обычный пользователь браузера открывает сайты через порт 443 (HTTPS) или 80 (HTTP) автоматически — операционная система и браузер сами выбирают порт для соединения, вручную указывать номер не приходится.
На shared-хостинге без root-доступа управлять портами тоже не нужно: провайдер уже настроил веб-сервер, базу данных и почту, а межсетевой экран (firewall) администрирует хостинг-компания. То же касается управляемого VPS (виртуального выделенного сервера) с панелью управления вроде ISPmanager или cPanel — при установке приложения панель сама открывает нужный TCP-порт в файрволе и связывает его с сервисом. Вмешиваться в эти настройки вручную не только не обязательно, но и рискованно: одна ошибка в правиле файрвола способна закрыть доступ по SSH (порт 22) или остановить сайт.
Разбираться в портах стоит начать, когда возникает конкретная задача: запустить нестандартный сервис на произвольном порту, поднять несколько приложений на одном сервере или настроить проброс портов для собственного проекта. Для этого нужен полный доступ к firewall и правам root, которого нет на shared-хостинге и managed-тарифах.
Признаки того, что пора разобраться в портах:
- Нужен свой сервис на порту вне диапазона 0–1023 — например, игровой сервер или API
- Требуется одновременно несколько приложений на разных портах одного сервера
- Хочется гибко настраивать правила iptables или ufw под свои задачи
- Нужны права root для запуска сервисов на портах ниже 1024
Если вы узнали свою ситуацию в этом списке, пора переходить на сервер с полным контролем — подобрать VPS с root-доступом.
Частые вопросы
Что такое TCP порт простыми словами?
Чем TCP-порт отличается от UDP-порта?
Какой порт использовать для SSH?
Как узнать, какие порты открыты на сервере?
Можно ли использовать один порт для нескольких программ?
Что такое порт 80 и порт 443?
Как открыть порт в файрволе на Ubuntu?
Сколько всего TCP-портов существует?
Что делать, если порт не открывается?
Нужно ли менять порт SSH для безопасности?
Что такое проброс портов (port forwarding)?
Влияет ли номер порта на скорость соединения?
Итоговый чек-лист
Используйте этот список как финальную проверку: каждый пункт — короткий вывод из статьи выше. Отметьте для себя, что уже сделано, а что осталось.
- Проверили, что номер порта входит в диапазон 0–65535
- Определили нужный протокол: TCP или UDP
- Открыли порт в firewall командой вида ufw allow
- Проверили доступность порта изнутри через ss/netstat
- Проверили доступность порта снаружи через nc или telnet
- Убедились, что порт не занят другим процессом
- Закрыли неиспользуемые порты для безопасности сервера
Если какой-то пункт пока не выполнен, вернитесь к нужному разделу статьи — там разобрано, как это сделать и на чём чаще всего ошибаются.
Источники
На сайте есть партнёрские ссылки: если вы оформите заказ по ним, мы получим вознаграждение от провайдера. Это не влияет на цену для вас и на место в рейтинге.