← 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.

Спойлер: это не макароны.