Лекція 38. Мережеві порти: номер дверей
Лекція 38. Мережеві порти: номер дверей
Section titled “Лекція 38. Мережеві порти: номер дверей”Рівень 6: Мережевий слідопит
Марко, сьогодні ми не просто вивчимо новий термін — ми відкриємо ще один шар того, як насправді працює комп’ютер.
Що ми сьогодні розкриємо
Section titled “Що ми сьогодні розкриємо”- зрозуміти мережевий порт як логічний номер служби
- побачити зв’язок IP + port
- переглянути слухаючі сокети через
ss
Зв’язок з попередніми лекціями
Section titled “Зв’язок з попередніми лекціями”У цій лекції ми використаємо розуміння пари client/server з лекції 37, щоб розібратися, як порти розрізняють мережеві служби.
Однієї IP-адреси замало
Section titled “Однієї IP-адреси замало”На одному комп’ютері одночасно можуть працювати вебсервер, SSH та інші служби. IP-адреса допомагає знайти хост, а порт — потрібну мережеву службу/кінцеву точку транспортного з’єднання.
Дитяча аналогія:
IP-адреса = адреса будинкупорт = номер дверей/офісуАле пам’ятай: це логічний номер, не фізичний роз’єм.
graph LR
A["Запит: IP + порт<br/>(напр. 203.0.113.5:443)"] --> B["Мережа доставляє
на хост за IP"]
B --> C["На хості: яка служба?
Вибір за номером порту"]
C -->|"порт 443"| H["HTTPS-сервер"]
C -->|"порт 22"| S["SSH-сервер"]
C -->|"порт 80"| W["HTTP-сервер"]
style A fill:#fff3e0
style B fill:#e1f5fe
style C fill:#e8f5e9
Порт — число від 0 до 65535
Section titled “Порт — число від 0 до 65535”У TCP та UDP порт кодується 16 бітами, тому можливі значення 0–65535. Деякі порти мають відомі стандартні призначення: 80 для HTTP, 443 для HTTPS, 22 для SSH. Але служба технічно може слухати й інший порт, якщо це налаштовано.
Слухати порт — чекати вхідних з’єднань/датаграм
Section titled “Слухати порт — чекати вхідних з’єднань/датаграм”Коли ми запускали http.server 8000, Python створив мережевий сокет і почав слухати порт 8000. Інструмент ss дозволяє побачити такі сокети.
Приклади
Section titled “Приклади”Приклад 1
Section titled “Приклад 1”http://127.0.0.1:8000 явно задає хост 127.0.0.1 і порт 8000.
Приклад 2
Section titled “Приклад 2”Якщо сервер слухає 8000, а клієнт звертається на 8001, це інша «двері» й відповіді від нашого сервера там не буде.
Приклад 3
Section titled “Приклад 3”Порт 443 типовий для HTTPS, тому браузер зазвичай не показує :443 у звичайному HTTPS URL.
Linux-лабораторія: знайди свої двері
Section titled “Linux-лабораторія: знайди свої двері”У першому терміналі знову:
cd ~/marko-lab/webpython3 -m http.server 8000 --bind 127.0.0.1У другому:
ss -ltnШукай локальну адресу з :8000. Після Ctrl+C повтори ss -ltn і перевір, що слухаючий порт зник.
Місія для Марка
Section titled “Місія для Марка”Виконай місію по черзі. Якщо щось не виходить — спочатку перечитай приклад вище й спробуй знайти, на якому кроці результат відрізняється.
- запусти локальний сервер на 8000
- знайди його через
ss -ltn - спробуй браузером
localhost:8000і потімlocalhost:8001та порівняй - зупини сервер і переконайся, що порт 8000 більше не слухається
- поясни різницю між USB-портом із лекції 15 і TCP-портом 8000
Перевір себе
Section titled “Перевір себе”- Навіщо потрібен мережевий порт?
- Який діапазон номерів має TCP/UDP port?
- Який порт типовий для HTTPS?
- Що означає «сервер слухає порт»?
- Яка команда показує слухаючі TCP-сокети?
Терміни однією фразою
Section titled “Терміни однією фразою”- Порт (port) — логічний номер «дверей», через які сервер приймає запити.
- IP + port — пара, яка адресує конкретну мережеву службу на хості.
- Типові порти — 80 (HTTP), 443 (HTTPS), 22 (SSH).
- Слухати порт — чекати вхідних з’єднань або даних на певному порту.
- Сокет — кінцева точка мережевого з’єднання; те, звідки/ куди «йдуть» дані.
ss -ltn— команда для перегляду слухаючих TCP-сокетів.
Чек-лист перед наступною лекцією
Section titled “Чек-лист перед наступною лекцією”- Чи можеш ти пояснити, що таке порти та сокети?
- Чи вмієш ти переглядати відкриті порти за допомогою
ss -ltn? - Чи розумієш ти, як мережеві програми використовують порти для з’єднань?
Що потрібно винести з лекції
Section titled “Що потрібно винести з лекції”- IP і port разом допомагають адресувати мережеву службу
- мережевий порт — логічний номер, не фізичний роз’єм
ssдозволяє побачити, які служби слухають мережу
Хакерський принцип: не запам’ятовуй магічні слова. Намагайся пояснити своїми словами, що відбулося і чому.