← Back to course

Мережа з Термінала

Мережа з Термінала

З поверненням.

У попередньому уроці ти навчився дивитися процеси і моніторити систему.

Тепер виходимо за межі твого комп’ютера.

У мережу.

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

Що Ти Вивчиш

У цьому уроці ти навчишся:

Місія

Твоя місія проста:

Використати термінал, щоб відповісти на питання:

Перевірка З’єднання через ping

Команда ping перевіряє, чи доступний хост.

Спробуй:

ping -c 4 example.com

Опція -c 4 означає “надіслати 4 пакети”.

Можеш побачити щось таке:

64 bytes from example.com: icmp_seq=1 ttl=56 time=22.4 ms
64 bytes from example.com: icmp_seq=2 ttl=56 time=21.9 ms
64 bytes from example.com: icmp_seq=3 ttl=56 time=22.1 ms
64 bytes from example.com: icmp_seq=4 ttl=56 time=22.0 ms

Це означає, що комп’ютер може дістатися до example.com.

Якщо не працює, це може означати:

ping не ідеальний, але це хороший перший тест.

Ніби питаєш: “Привіт, інтернет, ти живий?”

Ping до IP-Адреси

Спробуй ping до публічної IP-адреси:

ping -c 4 1.1.1.1

Якщо це працює, а це ні:

ping -c 4 example.com

тоді інтернет може працювати, але DNS може бути зламаний.

DNS перетворює імена типу example.com на IP-адреси.

Без DNS інтернет стає містом, де всі будівлі мають тільки координати і жодних назв.

Дуже технічно.

Дуже дратує.

Отримати Вебсторінку через curl

curl дозволяє робити вебзапити з термінала.

Спробуй:

curl https://example.com

Ти побачиш HTML сторінки.

Може виглядати хаотично.

Це нормально.

HTML — це те, з чого зроблені сайти. Іноді красиві в браузері, страшні в терміналі.

Показати Тільки Headers

Щоб показати тільки HTTP headers, використай:

curl -I https://example.com

Можеш побачити:

HTTP/2 200
content-type: text/html
server: ...

Status code важливий.

Поширені приклади:

200 = OK
301 = переміщено назавжди
403 = заборонено
404 = не знайдено
500 = помилка сервера

Якщо ти працюєш із сайтами або API, curl стає маленькою машиною правди.

Браузери можуть щось приховувати.

curl не переживає за почуття.

Перевірка IP-Адрес

Щоб побачити мережеві інтерфейси й IP-адреси, використай:

ip addr

Можеш побачити інтерфейси типу:

lo
wlan0
eth0
enp3s0

Поширені значення:

Шукай щось таке:

inet 192.168.1.35/24

Це твоя локальна IP-адреса.

Локальна IP-адреса використовується всередині домашньої або офісної мережі.

Зазвичай це не твоя публічна IP-адреса в інтернеті.

Перевірка Основного Маршруту

Щоб побачити, куди йде трафік за замовчуванням, використай:

ip route

Можеш побачити:

default via 192.168.1.1 dev wlan0

Це означає, що комп’ютер відправляє інтернет-трафік через 192.168.1.1.

Зазвичай це роутер.

Роутер — це маленька коробка, яка прикидається простою, але таємно контролює все твоє цифрове життя.

Відкриті Порти через ss

Команда ss показує sockets і мережеві з’єднання.

Щоб побачити TCP і UDP порти, які слухають:

ss -tuln

Можеш побачити:

Netid State  Local Address:Port
tcp   LISTEN 0.0.0.0:3000
tcp   LISTEN 127.0.0.1:5432

Це показує, які сервіси слухають порти.

Приклади:

Це дуже корисно, коли твоя програма каже:

“Server is running.”

а браузер каже:

“Ні.”

Хтось бреше.

ss допомагає розслідувати.

Перевірити Локальний Сервер

Якщо твоя програма працює на порту 3000, спробуй:

curl http://localhost:3000

Або перевір порт:

ss -tuln | grep 3000

Якщо бачиш результат, щось слухає порт 3000.

Якщо нічого не бачиш, сервер, скоріш за все, не запущений.

Термінал сказав своє слово.

Холодно, але ясно.

Базова Перевірка DNS

Щоб перевірити, чи домен розв’язується, можна використати:

getent hosts example.com

Можеш побачити:

93.184.216.34 example.com

Це означає, що система може розв’язати домен.

Якщо не працює, проблема може бути в DNS.

DNS-проблеми особливі: інтернет може працювати, але імена — ні.

Це як мати телефон, але забути імена всіх контактів.

Типові Помилки

Думати, що ping доводить усе

Деякі сервери блокують ping.

Тому якщо це не працює:

ping -c 4 example.com

це не завжди означає, що сайт не працює.

Спробуй також:

curl -I https://example.com

Завжди тестуй кількома способами.

Мережа — це не одні двері.

Це будівля з надто великою кількістю коридорів.

Плутати локальну і публічну IP-адресу

Твоя локальна IP може виглядати так:

192.168.1.35

Публічна IP — це те, що бачить зовнішній інтернет.

Це не одне й те саме.

Роутер зазвичай стоїть між ними.

Як охоронець у клубі, тільки з миготливими лампочками.

Забувати, що порти важливі

Сервер може працювати, але на іншому порту.

Наприклад:

http://localhost:3000
http://localhost:8080
http://localhost:5173

Це різні адреси, бо порти різні.

Номери портів мають значення.

Браузер не телепат.

Практика

Спробуй:

ping -c 4 example.com
ping -c 4 1.1.1.1
curl -I https://example.com
ip addr
ip route
ss -tuln
getent hosts example.com

Потім дай відповіді:

  1. Що перевіряє ping?
  2. Що показує curl -I?
  3. Яка команда показує IP-адреси?
  4. Яка команда показує основний маршрут?
  5. Яка команда показує порти, які слухають?

Міні-Завдання

Запусти локальний dev server, якщо він у тебе є.

Наприклад, у Next.js проєкті:

npm run dev

Потім в іншому терміналі:

ss -tuln | grep 3000
curl http://localhost:3000

Якщо твоя програма використовує інший порт, заміни 3000 на правильний.

Вітаю.

Ти перевіряєш локальний вебсервер як серйозна людина.

Небезпечний прогрес.

Підсумок

Сьогодні ти дізнався, що:

Мережа з термінала — це потужна навичка.

Вона допомагає зрозуміти, де проблема: в коді, сервері, роутері, DNS або в загадковому болоті під назвою “інтернет”.

Наступний Урок

У наступному уроці ми вивчимо архіви й стиснення.

Будемо пакувати файли, розпаковувати їх і нарешті зрозуміємо, що таке .tar.gz.

Спойлер: це не макарони.