Що таке порт (комп’ютерний) і навіщо він потрібен?
Оскільки різні комп’ютерні програми можуть використовувати різні процеси та/або служби, для їх розрізнення операційна система ПК на програмному рівні створює своєрідні віртуальні точки для мережевих з’єднань. Ці віртуальні точки і є портами, і вони допомагають зробити мережеві підключення ефективнішими. Оскільки через одне мережеве з’єднання з/на комп’ютер відбувається обмін різними типами даних, з допомогою порту комп’ютер краще розуміє, що робити з цими даними. Порт дозволяє машині легко розрізнити різні типи трафіку: наприклад, електронну пошту, роботу веб-браузера, сервер бази даних, обмін по 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
.
Тепер давайте переглянемо доступні номери портів.
Якщо у вас Windows OS:
- Відкрийте термінал.
- Введіть команду
netstat -a
, щоб отримати список усіх номерів портів.
Якщо у вас macOS:
- Перейдіть до системних налаштувань (System Preferences).
- Далі перейдіть до Мережа → Додатково (Network → Advanced).
- Перейдіть на вкладку «Сканування портів» (Port Scan) і введіть IP-адресу, яку хочете перевірити.
- (в новіших версіях системи macOS сканування портів можливе лише через Spotlight).
Сподіваюся, що сьогоднішня інформація стала вам в нагоді. Дякую за увагу!