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

З поверненням.
У попередньому уроці ти навчився дивитися процеси і моніторити систему.
Тепер виходимо за межі твого комп’ютера.
У мережу.
Бо твоя машина не живе сама. Вона говорить з роутерами, серверами, сайтами, API, репозиторіями пакетів і іноді з принтером, який відмовляється співпрацювати, бо принтери — це прокляті меблі.
Що Ти Вивчиш
У цьому уроці ти навчишся:
- перевіряти доступність хоста через
ping; - тестувати сайти й API через
curl; - дивитися IP-адреси через
ip; - перевіряти основний шлюз;
- дивитися відкриті порти через
ss; - розуміти базовий DNS;
- діагностувати прості мережеві проблеми.
Місія
Твоя місія проста:
Використати термінал, щоб відповісти на питання:
- Я підключений?
- Я можу відкрити сайт?
- Яка моя IP-адреса?
- Які порти відкриті?
- Проблема в комп’ютері, роутері чи інтернет просто влаштував драму?
Перевірка З’єднання через 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.
Якщо не працює, це може означати:
- ти офлайн;
- DNS не працює;
- сервер блокує ping;
- мережа має поганий день.
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
Поширені значення:
lo— loopback interface;wlan0часто означає Wi-Fi;eth0абоenp...часто означає Ethernet.
Шукай щось таке:
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
Це показує, які сервіси слухають порти.
Приклади:
3000може бути Next.js dev server;5432часто PostgreSQL;8080часто локальний вебсервер;22зазвичай SSH.
Це дуже корисно, коли твоя програма каже:
“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
Потім дай відповіді:
- Що перевіряє
ping? - Що показує
curl -I? - Яка команда показує IP-адреси?
- Яка команда показує основний маршрут?
- Яка команда показує порти, які слухають?
Міні-Завдання
Запусти локальний dev server, якщо він у тебе є.
Наприклад, у Next.js проєкті:
npm run dev
Потім в іншому терміналі:
ss -tuln | grep 3000
curl http://localhost:3000
Якщо твоя програма використовує інший порт, заміни 3000 на правильний.
Вітаю.
Ти перевіряєш локальний вебсервер як серйозна людина.
Небезпечний прогрес.
Підсумок
Сьогодні ти дізнався, що:
pingперевіряє доступність;curlробить вебзапити;curl -Iпоказує HTTP headers;ip addrпоказує IP-адреси;ip routeпоказує маршрути;ss -tulnпоказує порти, які слухають;getent hostsможе перевірити DNS;- локальна IP і публічна IP — різні речі;
- порти є частиною адреси.
Мережа з термінала — це потужна навичка.
Вона допомагає зрозуміти, де проблема: в коді, сервері, роутері, DNS або в загадковому болоті під назвою “інтернет”.
Наступний Урок
У наступному уроці ми вивчимо архіви й стиснення.
Будемо пакувати файли, розпаковувати їх і нарешті зрозуміємо, що таке .tar.gz.
Спойлер: це не макарони.