Заощадьте 15% на всіх хостингових послугах

Перевірте свої навички і отримайте Знижку на будь-який план хостингу

Використовуй код: Skills Почати
Рубрики
Адміністрація Операційні системи

Пояснення мережевих портів: IP, протоколи та кінцеві точки служб простою мовою

Чому мережеві порти мають значення

Якщо ви коли-небудь бачили 22, 80, 443 або 3306 в документації або на панелі брандмауера VPS, ви вже зіткнулися з мережевими портами. Звичайне розчарування приходить кілька хвилин пізніше: додаток працює на localhost, сервер онлайн, але ніхто ззовні не може до нього дістатися. Це той момент, коли номери портів перестають виглядати як фонова інформація і починають здаватися важливими.

intro

Вони мають значення, тому що стоять за дуже звичайними завданнями. Веб-сайту потрібні правильні публічні порти для завантаження. SSH потребує правильного порту, щоб дозволити вам керувати сервером віддалено. База даних може потребувати спілкування з додатком, але не з усім інтернетом. Це робить порти актуальними для розробників, самохостерів, покупців хостингу та технічних команд — не тільки для інженерів мереж.

Цей посібник створений, щоб розібратися в темі без перетворення її на курс сертифікації мережі. Основна обіцянка проста: IP знаходить машину; порт знаходить сервіс. Коли ця модель стане зрозумілою, числа перестануть здаватися випадковими, і рішення щодо хостингу стануть набагато легшими для аналізу.

Швидкі ключові терміни перед початком

keywords

Вам не потрібен великий словниковий запас, щоб слідувати решті цієї статті. Невеликого глосарію достатньо, щоб зберегти пояснення швидким і простим, замість того щоб занурюватися в абревіатурний суп.

ТермінЗначення простою мовоюЧому це важливо тут
🌐 IP адресаМережева адреса машини в IP мережі.Вона вказує трафіку, яку машину знайти першою.
📜 ПротоколПравила, які використовуються для певного виду мережевої розмови.Номер порту має сенс тільки в контексті протоколу.
🔗 TCPТранспортний протокол, побудований на надійних, впорядкованих з’єднаннях.Звичайні сервіси, такі як HTTPS, SSH та пошта, часто його використовують.
📡 UDPЛегший транспортний протокол, який не використовує той же стиль з’єднання, що й TCP.Деякий трафік, наприклад багато DNS запитів, часто його використовує.
🔥🧱 БрандмауерШар контролю трафіку, який дозволяє або блокує певні мережеві шляхи.Він впливає на те, чи дійсно доступний порт.
👂 ПрослуховуванняСервіс чекає на певному порту на відповідний трафік.Якщо нічого не прослуховує, порт не веде до корисного сервісу.
🚪 Відкритий / закритийМітки для того, чи виглядає сервіс доступним або ні з певного мережевого шляху.Вони описують доступність, а не те, чи безпечний трафік на цьому порту.

Цей останній рядок важливіший, ніж він може здатися. У цій статті слова на кшталт відкритий, закритий і пізніше відфільтрований стосуються того, чи працює мережевий шлях. Вони не є мітками довіри і самі по собі не говорять вам, чи є трафік на цьому порту законним.

Що таке мережевий порт насправді

Мережевий порт — це логічна, пронумерована точка входу, яку операційна система використовує для спрямування трафіку до правильного сервісу на машині. Це програмне забезпечення, а не щось, що ви можете торкнути. Коли люди кажуть, що веб-сервер знаходиться на порту 443 або SSH на порту 22, вони мають на увазі, що ці сервіси чекають на цих пронумерованих точках входу на відповідний трафік.

whatis

💡 Порада: Найпростіший спосіб уявити це — з однією послідовною аналогією: IP-адреса — це адреса вулиці будинку, а порт — це номер квартири всередині цього будинку.

Знайти правильний будинок недостатньо, якщо ви все ще не знаєте, якій квартирі належить доставка. Так само досягнення правильної машини недостатньо, якщо операційна система все ще повинна знати, який сервіс повинен обробити запит.

Ось чому одна машина може одночасно запускати багато сервісів без змішування. Один і той же сервер може мати веб-сервер, що слухає на 443, сервіс SSH, що слухає на 22, і сервіс бази даних, що слухає на 5432 або 3306. IP-адреса приносить трафік на машину; порт тримає ці сервіси окремо після прибуття.

Це також місце, де дуже поширена плутанина виправляється: мережевий порт — це не фізичний роз’єм як USB, HDMI або гніздо Ethernet на пристрої. Це апаратні інтерфейси. Мережевий порт — це логічна точка входу сервісу, яку операційна система використовує для сортування трафіку після його прибуття на машину.

Як реальне з’єднання використовує вихідні та цільові порти

Статичне визначення стає набагато легшим для розуміння, коли ви спостерігаєте реальне з’єднання. Уявіть, що браузер відкриває HTTPS веб-сайт. Браузер вже знає цільову машину з DNS та IP маршрутизації, і він очікує HTTPS на цільовому порту 443. Цей цільовий порт — це підказка на стороні сервісу, яка повідомляє серверу: «цей запит належить веб-сервісу».

how

Але сторона сервера — це лише половина історії. Клієнт також використовує порт: тимчасовий вихідний порт, зазвичай високонумерований, автоматично вибраний операційною системою. Це дозволяє вашій машині відстежувати свою сторону розмови без необхідності вручну вибирати номер.

Client browser
198.51.100.24:53144  ───── HTTPS request ─────▶  203.0.113.10:443
(temporary source port)                         (destination port)

203.0.113.10:443     ───── HTTPS response ────▶  198.51.100.24:53144
(web service listening)                        (same temporary client port)

Коли люди говорять, що сервіс прослуховує порт, вони мають на увазі саме це: сервіс чекає на цьому пронумерованому кінцевому пункті трафік, призначений для нього. Якщо сервер отримує трафік для 203.0.113.10:443, операційна система передає його HTTPS сервісу, який там прослуховує. Якщо на цьому цільовому порту нічого не прослуховує, трафік не досягає робочого сервісу, навіть якщо сама машина в мережі.

На високому рівні, це чистий поділ, який варто запам’ятати: IP ідентифікує машину, а TCP або UDP несуть номери портів, які ідентифікують кінцевий пункт сервісу. Ось чому порти вважаються концепцією транспортного рівня, а не концепцією IP. Це також пояснює, чому один і той же номер порту може існувати під різними протоколами і все ще означати різні розмови.

📝 Примітка: Один і той же номер може існувати під різними транспортними протоколами, тому протокол все ще має значення. 53/UDP є звичайним для звичайних DNS запитів, тоді як 53/TCP також використовується в DNS для випадків, таких як більші відповіді або операції, пов’язані з зоною.

Практичний висновок полягає в тому, що порти — це не лише концепція на стороні сервера. Сервери використовують цільові порти, щоб клієнти могли знайти сервіси, але пристрої клієнтів також використовують тимчасові вихідні порти. Ось чому високонумеровані ефемерні порти так часто з’являються в реальних з’єднаннях.

Діапазони портів та загальні номери, які варто розпізнавати

Коли механіка стає зрозумілою, система нумерації починає виглядати організованою замість довільної. Загалом порти поділяються на три діапазони:

  • Well-Known/System порти (0–1023)
  • Registered/User порти (1024–49151)
  • Dynamic/Private порти (49152–65535)

Вам не потрібно запам’ятовувати діапазони точно, але корисно знати, що низькі номери часто є встановленими ідентифікаторами сервісів, а найвищий діапазон зазвичай використовується для тимчасового трафіку на стороні клієнта.

recognize

Цей останній діапазон особливо корисно розуміти, оскільки він розвіює поширене непорозуміння новачків. Dynamic або private порти часто є тимчасовими портами-джерелами, які ваш браузер, поштовий клієнт або інша програма використовує при підключенні до стабільного порту сервісу, як-от 443. Іншими словами, порти з високими номерами часто є частиною клієнтської сторони розмови, а не публічними ідентифікаторами, які ви повинні запам’ятати.

Мета, отже, полягає в розпізнаванні, а не в запам’ятовуванні. Це номери портів, які більшість читачів насправді отримують користь від розпізнавання в документації, панелях управління, зворотних проксі та панелях хостингу:

ПортПротоколТиповий сервісДе читачі насправді його бачать
22TCPSSHВіддалений адміністративний доступ до VPS, хмарного екземпляра або виділеного сервера
53TCP / UDPDNSРозпізнавання доменів, DNS-сервери та трафік резолвера
80TCPHTTPПублічні веб-сайти, перенаправлення та стандартні налаштування веб-сервера
443TCPHTTPSЗахищені веб-сайти, API, панелі управління та зворотні проксі
25TCPSMTPДоставка пошти від сервера до сервера
587TCPMail submissionПоштові клієнти або програми, що надсилають через автентифіковану поштову службу
3306 / 5432TCPMySQL / PostgreSQLТрафік від програми до бази даних у стеках хостингу або самостійного розміщення
3389TCPRDPВіддалений доступ до робочого столу на системах Windows

Вам не потрібно запам’ятовувати цю таблицю, щоб стати ефективним. Вам потрібно лише достатньо розпізнавання, щоб задавати хороші питання, коли ви бачите номер. Одне застереження перед тим, як рухатися далі: загальний або зареєстрований порт говорить вам, який трафік там очікується, а не те, чи є цей трафік надійним.

Де порти з’являються в хостингу, хмарі та самостійному хостингу

shwosup

Це місце, де концепція стає операційною. У реальній інфраструктурі порти — це не просто ярлики, прикріплені до сервісів. Це рішення про що повинно бути публічно доступним, що повинно залишатися приватним і що взагалі не повинно бути доступним. Веб-сайти зазвичай публічні. SSH зазвичай обмежений. Бази даних зазвичай обслуговують додаток, а не весь інтернет.

Якщо ви запускаєте VPS на AlexHost — або насправді на будь-якому провайдері — типова конфігурація виглядає так.

  • Порти 80 та 443 відкриті для публіки, тому що сайту потрібні відвідувачі.
  • SSH на 22 обмежений довіреними IP-адресами адміністратора або іншим контрольованим шляхом.
  • Трафік бази даних залишається тільки внутрішнім.

Мета проста: кожен сервіс повинен мати доступність, яка йому насправді потрібна, і не більше.

Зворотні проксі роблять це особливо легко побачити. З публічної сторони користувачі підключаються до 80 або 443. За цими передніми дверима зворотний проксі може передавати трафік до внутрішнього додатку, що працює на 3000 або 8080. Цей внутрішній порт додатку все ще важливий, але він є частиною приватного шляху всередині вашої архітектури, а не чимось, що весь інтернет зазвичай повинен досягати безпосередньо.

Public internet
   │
   ├── 80 / 443 ──▶ Reverse proxy or web server ──▶ internal app on 3000 / 8080
   │
   ├── 22 ───────▶ SSH reachable only from trusted admin IPs or VPN
   │
   └── 3306 / 5432 ──X not public; reachable only from the app/server network
СценарійПублічні портиТримати приватнимЧому
🌐💻 Публічний веб-сайт на одному VPS80, 4433306 / 5432, невикористовувані порти адміністратораВідвідувачам потрібен сайт; базам даних зазвичай не потрібна пряма публічна доступність
🔑🖥️ Веб-сайт з адмініструванням SSH80, 443Широкий публічний доступ до 22Веб-трафік публічний, але доступ адміністратора повинен залишатися вузьким
🔄🛡️ Установка зворотного проксі80, 443 на проксіВнутрішній порт додатку, як 3000 або 8080Один чистий публічний вхід легше захищати та маршрутизувати
📱🗄️ Додаток з окремою базою данихПорт веб-додатку/APIПорт бази даних з публічного інтернетуБаза даних зазвичай повинна відповідати тільки рівню додатку
🏠📡 Самостійно розміщений сервіс вдома з перенаправленням портівТільки сервіс, який ви навмисно розкриваєтеАдміністратор маршрутизатора, внутрішні сервіси, додаткові тестові портиПеренаправлення повинно створити один навмисний шлях, а не широке відкриття

Ось чому порти постійно з’являються у брандмауерах VPS та групах безпеки хмари: ці рівні вирішують, що може досягти сервера. Ви також бачите їх у панелях керування хостингом, зворотних проксі та екранах перенаправлення портів маршрутизатора, тому що кожен з цих інструментів допомагає визначити, як трафік розкривається. Вони всі відповідають на одне й те саме питання: хто повинен мати можливість досягти якого сервісу звідки?

💡 Порада: Переміщення сервісу з його порту за замовчуванням може зменшити випадковий шум або низькозатратне зондування, але це не повна стратегія безпеки. Реальний захист все ще походить від вузького розкриття, сильної аутентифікації, патчування та розумного контролю доступу.

Як тільки ви бачите порти таким чином, тема стає набагато більш корисною. Ви починаєте читати номери портів як карту розкриття вашої інфраструктури, а не просто як ярлики на сторінці налаштувань. Цей зсув робить правила брандмауера, зворотні проксі та дизайн приватних та публічних сервісів набагато легшими для розуміння.

Відкритий, закритий та відфільтрований: чому змінюється доступність

whychanges

Однією з причин, чому порти здаються заплутаними, є те, що люди часто говорять про них так, ніби вони мають один фіксований глобальний стан. На практиці слова відкритий, закритий та відфільтрований описують, як служба виглядає з певного мережевого шляху. Вони розповідають вам про доступність з точки зору спостерігача, а не про вічну істину про машину.

СтанЗначення простою мовою
✅ ВідкритийСлужба видається доступною на цьому шляху та відповідає на цьому порту.
❌ ЗакритийМашина доступна, але ніщо корисне не відповідає на цьому порту.
🚧 ВідфільтрованийЩось на шляху блокує або приховує результат, тому доступність обмежується.

Ось чому “це працює локально, то чому інтернет не може до цього дістатися?” є такою поширеною проблемою для початківців. Служба може бути доступною всередині сервера або приватної мережі та все ще блокуватися з публічного інтернету. Блокування може походити від брандмауера, NAT, групи безпеки, правила маршрутизації або просто від того, як служба прив’язана. Якщо додаток слухає тільки на localhost (127.0.0.1), він може працювати ідеально на самій машині та все ще залишатися недоступним ззовні.

Ключовий нюанс полягає в тому, що одна й та ж служба може виглядати відкритою з одного місця та відфільтрованою з іншого. Це нормально. Приватна база даних може бути навмисне доступною з сервера додатків, але прихована від публічного інтернету. Веб-служба може бути публічною на 443, тоді як її інтерфейс адміністратора залишається доступним тільки через VPN або корпоративну мережу. Номер порту сам по собі ніколи не розповідає вам всю історію; шлях розповідає.

Поширені помилкові уявлення про мережеві порти

misconceptions

На цьому етапі більшість плутанини з портами зводиться до кількох повторюваних категоріальних помилок. Найшвидший спосіб розвіяти туман — це порівняти міф, який люди приносять, з більш точною ментальною моделлю, з якою вони повинні піти.

Помилкове уявленняКраща ментальна модель
Порт — це фізичний розʼєм.Мережевий порт — це логічна, пронумерована точка входу служби всередині операційної системи.
Номер порту — це те саме, що протокол.Протокол і порт працюють разом; номер має сенс лише в контексті транспорту.
Загальний або зареєстрований порт автоматично безпечний.Він може бути стандартним або очікуваним, але це нічого не говорить про те, чи є трафік законним.
Відкриття порту створює службу.Порт має значення лише якщо щось насправді прослуховує за ним.
Переміщення служби на інший порт захищає її.Це може зменшити випадковий шум, але це не замінює реальний контроль доступу або посилення безпеки.

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

Часті питання

faq

1) Що таке переадресація портів?
Це правило, яке перенаправляє трафік, що надходить на одну мережеву границю — часто маршрутизатор або шлюз — на конкретну внутрішню машину та порт. Простіше кажучи, це створює навмисний шлях від зовні до служби всередині.

2) Чи можуть дві служби використовувати один і той же порт?
Ні, на одній комбінації IP-адреси та протоколу одночасно у звичайному випадку для початківців. Якщо одна служба вже прослуховує 203.0.113.10:443/TCP, інша служба зазвичай не може претендувати на цю саму точку доступу, якщо архітектура не змінюється.

3) Чи завжди порт 443 безпечний?
Зазвичай це означає, що використовується HTTPS, що стосується зашифрованого веб-трафіку під час передачі. Це не означає, що сайт сам по собі є надійним, вільним від помилок або безпечним. Шифрування та легітимність пов’язані, але це не одне й те саме.

4) Чи потрібно мені запам’ятовувати номери портів?
Ні. Впізнавання достатньо для більшості людей. Якщо ви пам’ятаєте, для чого потрібні порти, знаєте найпоширеніші номери та можете запитати, чи повинна служба бути публічною чи приватною, у вас уже є корисна частина.

5) Чому щось працює локально, але не в мережі?
Тому що запущена програма — це лише половина історії. Зовнішній шлях все ще повинен бути відкритим і правильно маршрутизованим. Правила брандмауера, параметри прив’язки, NAT або групи безпеки все ще можуть його заблокувати.

Практичний висновок

end

Найстійкіший спосіб думати про порти — це коротка контрольна перелік, а не числовий тест. Коли ви бачите порт на панелі управління, у файлі конфігурації або на панелі хостингу, запитайте себе:

  1. Яка машина? IP-адреса або хост, до якого ви намагаєтеся отримати доступ.
  2. Який сервіс? Номер порту, який визначає призначену мету.
  3. Який протокол? Зазвичай TCP або UDP.
  4. Хто повинен отримати доступ? Брандмауер, NAT, група безпеки, проксі або приватний шлях, який визначає експозицію.

Як тільки ви це зрозумієте, 22, 80, 443 та інші перестають здаватися таємничими числами. Вони стають відповідями на практичні питання інфраструктури. І якщо ви хочете піти на один крок глибше звідси, природними наступними темами є брандмауери, переспрямування портів, зворотні проксі та посилення безпеки сервісів.