Что такое порт (компьютерный) и для чего он нужен?
Поскольку различные компьютерные приложения могут использовать различные процессы и/или службы, операционная система ПК на программном уровне создает своеобразные виртуальные точки для сетевых соединений. Эти виртуальные точки и являются портами, и они помогают сделать сетевые подключения более эффективными. Поскольку через одно сетевое соединение с/на компьютер происходит обмен различными типами данных, с помощью порта компьютер лучше понимает, что делать с этими данными. Порт позволяет машине легко различить разные типы трафика: например, электронную почту, работу веб-браузера, сервер базы данных, обмен по FTP и т.п. Также с помощью порта можно блокировать трафик от определенных программ/служб брандмауэром.
В этом отношении порт имеет сходство с концепцией IP-адреса: IP-адрес идентифицирует компьютер в интернет-сети, а с помощью номера порта происходит идентификация определенной программы в локальной системе. На сегодняшний день существует более 65 тысяч номеров портов, которые определенным образом классифицированы Интернет-корпорацией по присвоению имен и номеров или же Администрацией адресного пространства Интернета (IANA — Internet Assigned Numbers Authority) .
Формат записи номера порта: {IP-адрес}:{номер порта}
. Например, для локального веб-сервера Apache номер порта может иметь значение 127.0.0.1:80
или localhost:80
. Здесь 80 — это номер порта, который закреплен не только за локальным веб-сервером, но и по протоколу HTTP и WWW. Комбинацию IP-адреса и номера порта также называют адресом сокета (Socket Address).
Основные типы портов
Все программные порты можно условно разделить на три общие категории:
- Хорошо известный порт (общий; ограниченный). Находится в диапазоне от 0 до 1023 и зарезервирован для стандартных сервисов, протоколов и служб (например, HTTP, FTP, DNS, SSH и т.д.).
- Зарегистрированный порт. Находится в диапазоне от 1024 до 49151, используется приложениями или службами организаций, зарегистрировавшими его в IANA. Здесь в основном представлены порты разработчиков программного обеспечения. Если вам нужен порт из этого диапазона, подайте заявку на регистрацию в IANA.
- Динамический порт (также Эфемерный или Частный порт). Находится в диапазоне от 49152 до 65535; применяется для временных или кратковременных соединений. Он не зарегистрирован и не зарезервирован и может использоваться любым процессом.
Примеры популярных номеров портов
Вот некоторые из известных и популярных номеров портов, наиболее часто используемых сервисами/службами в программировании.
Номер порта | Порт используется следующей службой/сервисом |
20/21 | FTP (File Transfer Protocol). FTP используется для передачи файлов между клиентом и сервером. |
22 | SSH (Secure Shell Access). Один из протоколов туннелирования, используемый для создания безопасных сетевых соединений. Позволяет подключаться к серверу и вносить на нем изменения. |
25 | SMTP(Simple Mail Transfer Protocol) обычно используется для электронной почты. ДОПОЛНИТЕЛЬНО: безопасный SMTP с шифрованием по SSL протоколу, использует порты 465 и 587. |
53 | DNS (Domain Name System). Система доменных имен сопоставляет понятные человеку доменные имена с IP-адресами, которые больше нравятся машине. |
80 | HTTP (Hyper Text Transfer Protocol), World Wide Web HTTP. Локальный сервер. Сервер APACHE, Internet Information Services (IIS) и т.д. ДОПОЛНИТЕЛЬНО: порт 8080. Также используется для веб-серверов |
110 | POP3 (Post Office Protocol version 3). Протокол определяет сервер электронной почты и способ получения почты из него. ДОПОЛНИТЕЛЬНО: POP3 по SSL протоколу использует порт 995. |
143 | IMAP (Internet Messaging Access Protocol). К примеру, используется для почты GMAIL. ДОПОЛНИТЕЛЬНО: IMAP3 использует порт 220. IMAP по TLS протоколу использует порт 993. |
443 | HTTPS (Hyper Text Transfer Protocol Secure). HTTP-Secure Sockets Layer (SSL). Безопасное HTTP соединение. |
1433 | Microsoft SQL Server. Сервер базы данных Microsoft SQL |
3306 | MySQL. Сервер базы данных MySQL |
5222 | XMPP Client (Extensible Messaging and Presence Protocol). Сетевой протокол для быстрого обмена сообщениями. Порт также используется мессенджерами типа Telegram, WhatsApp и т.д. |
5432 | PostgreSQL. Сервер базы данных PostgreSQL |
27017 | MongoDB. Сервер базы данных MongoDB |
Как узнать используемые порты (номера портов) на компьютере?
Прежде всего, давайте узнаем свои IP адреса в системе. Если вы используете локальный сервер, значит ваш IP-адрес 127.0.0.1
или localhost
. Чтобы узнать свой общедоступный IP-адрес маршрутизатора, воспользуйтесь нашим бесплатным онлайн сервисом получения информации по IP адресу, который подскажет вам ответ на вопрос «каков мой IP?». Роутер (маршрутизатор) для выхода в сеть Интернет обычно имеет свой IP-адрес: 192.168.0.0
или 192.168.0.1
. Итак, у вас может быть по крайней мере 3 различных IP-адреса: локальный, роутер и общедоступный в сети Интернет.
Если у вас операционная система Windows, вы можете просмотреть список всех имеющихся IP-адресов через консоль (терминал, командная строка). Откройте терминал: клик правой кнопки мыши по значку Пуск → Терминал. Затем введите следующую команду и нажмите Enter:
ipconfig
Это покажет вам настройку IP в системе Windows. В Linux-системах аналогом является команда ifconfig
.
Теперь давайте просмотрим используемые номера портов.
Если у вас WindowsOS:
- Откройте терминал.
- Введите команду
netstat -a
, чтобы получить список всех номеров портов.
Если у вас macOS:
- Перейдите к системным настройкам (System Preferences).
- Далее перейдите в Сеть → Дополнительно (Network → Advanced).
- Перейдите на вкладку «Сканирование портов» (Port Scan) и введите IP-адрес, который хотите проверить.
- (в более новых версиях системы macOS сканирование портов возможно только через Spotlight).
Надеюсь, что сегодняшняя информация пригодилась вам. Благодарю за внимание!