Что такое TCP- и UPD-порты

Редактор: Дмитрий Сокол 48739 10 мин Аудио

Транспортный протокол TCP/IP - это сетевая модель для передачи данных (набор правил обмена информацией) от одного источника к другому, является основой Интернета. Термин “порт”, который часто встречается в описаниях интернет-сервисов, связан с особенностями работы этого протокола.

Сервисы и порты

На подключенном к сети сервере могут одновременно работать различные программы, которые принимают и обрабатывают данные, например, запросы к web-серверу или сообщения электронной почты. Эти программы называются сетевыми сервисами.

Каждая приходящая на сервер порция данных предназначена для обработки определенным сервисом. 

Для того, чтобы сетевая подсистема сервера различала данные, адресованные определенным сервисам, и правильно распределяла их, в протокол TCP/IP было введено понятие номера порта. 

Пакеты данных и их заголовки

Протокол TCP/IP передает данные отдельными порциями - “пакетами данных”. 

Каждый пакет данных имеет специальный заголовок, содержащий служебную информацию.

Технически номер порта - это просто цифры в определенном месте заголовка пакета данных, приходящего на сервер.

Сетевая подсистема сервера анализирует заголовок пакета, находит номер порта и, согласно его значению, направляет данные той или иной работающей на сервере программе-сервису.

Каждая принимающая сетевые данные программа на сервере при запуске сообщает операционной системе, что готова получать и обрабатывать данные, адресованные на определенный порт. 

Специалисты используют выражение “программа слушает конкретный порт на сервере”. Например, входящие пакеты данных с номером порта 80 передаются на обработку web-серверу, с номером порта 25 - почтовому серверу, номер 22 адресуется серверу SSH и так далее.

Распределение пакета данных IP по сервисам в соответствии с номером порта

TCP- и UDP-порты

Порты используются протоколами TCP или UDP. 

TCP - это основной транспортный протокол интернета, который обеспечивает доставку данных через соединение, предварительно установленное между двумя компьютерами. Соединение работает на протяжении всего сеанса связи. 

Протокол UDP предназначен для быстрой передачи порции данных без гарантии доставки и без предварительной установки соединения.

Оба протокола в заголовке пакета данных указывают порт получателя, а также исходящий номер порта. Протокол TCP устанавливает соединение, при котором данные между сервером и клиентом обмениваются между исходящим портом клиента и входящим портом сервера.

Диапазоны портов

Номер порта может находиться в диапазоне от 0 до 65535. Как и другие используемые в сети Интернет ресурсы, номера портов стандартизированы. Все порты в диапазоне 1-1023 называются “системными портами” и распределены, согласно списку, от координационного центра Internet организации IANA. 

Порты в диапазоне 1024-49151 называются “пользовательскими”, и они предназначены для настройки дополнительных сервисов по выбору пользователя. 

Оставшиеся порты из диапазона 49152-65535 называются “динамическими” и предназначены для использования операционной системой для установки соединений в рамках протокола TCP/IP.

Система Linux применяет в качестве динамических портов диапазон 32768-60999.

Список портов и протоколов

Исторически самые распространенные протоколы обмена данными в сети Интернет используют определенные порты для получения данных. Например, 80 - это порт протокола HTTP, 443 - протокол HTTPS, 21 - FTP и так далее. 

Технически администратор сервера может гибко настраивать используемые порты для каждого из запускаемых на сервере сетевых сервисов. Например, при желании он может изменить номер порта, на котором работает web-сервер, с 80 на 8080. Но при этом, если пользователи не знают, что номер порта изменен, то они не смогут присоединиться к web-серверу. Поэтому для публичных сетевых сервисов принято применять стандартные номера портов. 

Если вы работаете с интернет-сервисами, то будет лучше выучить наизусть номера портов, используемых для наиболее часто встречающихся сервисов: HTTP, HTTPS, FTP, SSH, почтовых протоколов. 

Таблица наиболее важных и распространенных номеров портов выглядит так:

Номер порта Протокол Название сервиса
20 TCP FTP - данные
21 TCP FTP - контрольное соединение
22 TCP SSH-сервер
23 TCP Telnet-сервер
25 TCP SMTP - отправка почты
53 TCP, UPD DNS - сервер доменных имен
69 UPD TFTP-сервер
80 TCP HTTP - web-сервер
110 TCP POP3 - прием почты
145 TCP IMAP - прием почты
161 UPD SNMP - протокол управления сетевыми устройствами
443 TCP HTTPS - защищенный шифрованием протокол HTTP
587 TCP Защищенный шифрованием протокол SMTP
993 TCP Защищенный шифрованием протокол IMAP
995 TCP Защищенный шифрованием протокол POP3
1500 TCP Панель ISPManager
2083 TCP Панель cPanel
3306 TCP Сервер базы данных MySQL
8083 TCP Панель Vesta

Порты и URL

Номер порта можно указывать в ссылках на web-ресурсы, то есть в URL (Universal Resource Locator). Это делается с помощью двоеточия, за которым следует номер порта. Если используется стандартный порт протокола HTTP (80) или HTTPS (443), то тогда он не указывается в URL.

Пример URL с указанным номером порта: HTTP://www.myserver.ru:1500/manager 

Как просмотреть список используемых портов на сервере

Для пользователей виртуальных и выделенных серверов может понадобиться просмотреть список применяемых на сервере портов TCP и UDP. Для этой задачи в операционной системе Linux имеется утилита Netstat.

Утилита Netstat работает из командной строки. Чтобы просмотреть список используемых для входящих соединений портов, прослушиваемых запущенными на сервере сетевыми сервисами, примените следующую команду:

netstat -n -l -4 -p

Netstat выводит информацию в несколько колонок. Номер порта, на который принимаются соединения, можно увидеть в колонке “Local address”. Также в колонке “PID/Program name” можно увидеть, какая программа на сервере слушает конкретный порт.

Порты и безопасность сервера

Порты TCP и UDP используются для соединения с сервером, а значит, могут подвергаться атакам. Например, протокол SSH работает по умолчанию на порте 22, и злоумышленники часто ведут атаку на этот порт, пытаясь подобрать пароль от сервера.

Для повышения уровня безопасности вы можете изменить номер порта для SSH. Например, замените порт 22 на 2222.

Конкретно в случае с SSH, смена номера порта - хорошее решение. В случае, если вы измените номер порта, для злоумышленников не будет даже выводиться окно, в котором нужно вводить пароль. Соединение с сервером будем прервано, так как номер порта будет изменен.

1. Отредактируйте на сервере файл /etc/ssh/sshd_config.

2. Найдите в файле строку “Port 22” и измените ее на “Port 2222”.

3. Перезагрузите программу-сервис sshd командой:

service sshd restart

Теперь сервер будет принимать SSH-соединения по нестандартному порту 2222, который не известен злоумышленникам.

В других случаях порты менять не нужно, так как большинство плагинов, модулей, почтовых программ и другого стороннего ПО для работы с сайтами и серверами настроено по умолчанию для работы по стандартным портам.

Выводы

1. TCP и UPD- протоколы транспортного уровня:

  • обеспечивают доставку данных от одного адресата другому;
  • сохраняют правильную последовательность передачи данных.

2. Для просмотра списка используемых на сервере портов TCP и UDP используйте утилиту Netstst в операционной системе Linux.

3. Номера портов сервисов HTTP, HTTPS, FTP, SSH и почтовых протоколов лучше выучить наизусть для более комфортной работы.

Дмитрий Сокол
Не нашли ответ на свой вопрос?
Задайте его экспертам! Ответ приходит очень быстро и прямо на ваш email.

Добавляя подтверждение "Я не робот" вы так же даете согласие получать сообщения от ru.hostings.info и принимаете его Политику конфиденциальности, позволяя ru.hostings.info хранить и обрабатывать вашу личную информацию, указанную выше, для предоставления вам запрашиваемого контента.

Рейтинги хостинг-провайдеров по задачам сайта
Апреля
Панель управления

От панели управления зависит ваше удобство в настройке хостинге\сайта.

Большинство качественных хостингов из нашего ТОПа используют удобные панели управления, поэтому рекомендуем больше внимания уделить другим параметрам при выборе.

Вид хостинга

Облачный хостинг - распределение нагрузки на несколько серверов, если сервер с вашим сайтом перегружен или не работает. Это гарантия того что пользователи в любом случае смогут видеть ваш сайт. Но это дорогая, более сложная опция, которую предоставляют далеко не все провайдеры.

Виртуальный хостинг - подходит для большинства проектов начального уровня с посещаемостью до 1000 человек в сутки. В таком хостинге мощность сервера делится между несколькими хостинговыми аккаунтами. Услуга проста в настройке даже для новичков.

VPS - подходит для более сложных проектов с достаточно большой нагрузкой и посещаемостью до 10000 человек в сутки. Здесь мощность сервера фиксированная для каждого виртуального сервера, при этом сложность настройки увеличивается.

Выделенный сервер - нужен для очень сложных и ресурсоемких проектов. Для вас выделяют отдельный сервер,мощность которого будете использовать только вы. Дорого и сложно настраивать.

Размещение и обслуживание вашего собственного сервера в дата-центре хостинга - это не очень популярная услуга и требуется в исключительных случаях.

CMS

CMS - это система управления контентом сайта. Хостеры стараются для каждой из них делать отдельный тариф или упрощать установку. Но в целом это больше маркетинговые ходы, т.к. у большинства популярных CMS нет специальных требований к хостингу, а те что есть - поддерживаются на большинстве серверов.

Тип виртуализации

Виртуализация - это создание виртуальной среды на физическом сервере, позволяющая запускать требуемые ПО без затрагивания процессов, совершаемых другими пользователями сервера.  С её помощью ресурсы физического сервера распределяются между виртуальными (VPS/VDS). Основные виды: аппаратная (KVM), паравиртуализация, виртулизация на уровне ОС (OpenVZ).

Прочее

Абузоустойчивый хостинг - компании, которые разрешают размещать практически любой контент, даже запрещенный (спам, варез, дорвеи, порнографические материалы). Такие компании не удаляют контент вашего веб-сайта при первой же жалобе (“абузе”).

Безлимитный хостинг - хостинг у которого отсутствуют лимиты на количество сайтов, БД и почтовых ящиков, трафик, дисковое пространство и т.д. Обычно это больше маркетинговый трюк, но можно найти что-то интересное для себя.

Безопасный хостинг - тот, где администрация постоянно обновляет ПО установленное на серверах, устанавливает базовую защиту от DDoS-атак, антивирус и файерволлы, блокирует взломанные сайты и помогает их "лечить".

Защита от DDOS - компании, которые предоставляют хостинг с защитой от DDoS-атак. Такие пакеты ощутимо дороже обычных, но они стоят своих денег, так как ваш сайт будет защищен от всех видов сетевых атак.

Бесплатный тест

Тестовый период - предоставляется хостером бесплатно на 7-30 дней, чтобы вы могли удостовериться в его качестве.

Moneyback - период на протяжении которого хостер обязуется вернуть деньги, если вам не понравится хостинг.

Региональные
Цена

Настоятельно рекомендуем не покупать слишком дешевый хостинг! Как правило с ним очень много проблем: сервер иногда не работает, оборудование старое, поддержка долго отвечает или не может решить проблему, сайт хостера глючит, ошибки в регистрации, оплате и т.д.

Также мы собрали тарифы от тысяч хостеров, чтобы вы могли выбрать хостинг по конкретной цене.

Технологии и ОС

На языке программирования PHP и базах данных MySQL сейчас работает большинство сайтов. Они же поддерживаются практически всеми современными хостингами.

ASP.NET - платформа для разработки веб-приложений от Майкрософт.

ОС - операционная система, установленная на сервере хостинга. Мы рекомендуем размещать на серверах с Linux, если нет особых требований у разработчиков сайта.

Тип диска