В прошлых уроках мы освоили файловую систему и управление процессами в Linux. Сегодня погрузимся в сетевые настройки — это фундамент для любого DevOps-инженера. Ведь большинство приложений общаются между собой по сети. Ещё разберём основы мониторинга, чтобы вы всегда знали, что всё работает как часы.
Сетевые интерфейсы и IP-адреса
Каждое устройство в сети имеет уникальный IP-адрес. В Linux за сетевые подключения отвечают сетевые интерфейсы.
Смотрим сетевые настройки
Чтобы увидеть информацию о сетевых интерфейсах и их IP-адресах, используйте команду ip a (или ip address).
ip a
В выводе вы увидите список всех сетевых интерфейсов. Обычно это:
lo: Loopback-интерфейс. Нужен для связи внутри самого устройства.eth0илиenpXsY: Основной сетевой интерфейс, через который ваше устройство выходит в интернет.
💡 Совет: Ищите поля
inet(IPv4-адрес) иinet6(IPv6-адрес). Это и есть IP-адреса вашего интерфейса.
Настраиваем IP-адрес (временно)
Вы можете временно назначить IP-адрес интерфейсу командой ip address add. Это удобно для тестов, но после перезагрузки системы настройки сбросятся.
sudo ip address add 192.168.1.100/24 dev eth0
Что здесь что:
192.168.1.100: IP-адрес, который мы назначаем./24: Маска подсети, определяет размер сети.dev eth0: Указывает, какому интерфейсу назначаем адрес.
Чтобы удалить временный адрес, используйте ip address del:
sudo ip address del 192.168.1.100/24 dev eth0
⚠️ Важно: Для постоянной настройки сети в современных Linux-дистрибутивах используют
netplan(Ubuntu) или конфигурационные файлы в/etc/sysconfig/network-scripts/(CentOS/RHEL). Эти методы требуют глубокого понимания и будут в продвинутых курсах.
DNS и маршрутизация
Разрешение доменных имён (DNS)
Когда вы набираете yandex.ru в браузере, ваш компьютер не знает, куда идти. Он обращается к DNS-серверу, который переводит доменное имя в IP-адрес.
Чтобы узнать, какие DNS-серверы использует ваша система, посмотрите файл /etc/resolv.conf:
cat /etc/resolv.conf
Вы увидите строки вроде nameserver 8.8.8.8, где 8.8.8.8 — это IP-адрес DNS-сервера (в данном случае, Google Public DNS).
Проверить разрешение доменного имени можно командами dig или nslookup:
dig yandex.ru
nslookup yandex.ru
Таблица маршрутизации
Таблица маршрутизации — это карта, которая показывает, куда отправлять сетевые пакеты. Когда ваш компьютер хочет отправить данные на другой IP-адрес, он сверяется с этой таблицей, чтобы найти нужный путь.
Посмотреть таблицу маршрутизации можно командой ip r (или ip route):
ip r
Вы увидите записи, которые показывают:
- Default gateway (шлюз по умолчанию): IP-адрес маршрутизатора, через который идут все пакеты, если для них нет более конкретного маршрута.
- Прямые маршруты: Пути к сетям, которые напрямую доступны через один из ваших сетевых интерфейсов.
Базовый мониторинг сети
Мониторинг сети помогает убедиться, что связь между серверами стабильна и нет потерь пакетов.
Проверяем доступность хоста (ping)
Команда ping отправляет небольшие пакеты данных на указанный IP-адрес или доменное имя и измеряет время ответа. Это ваш основной инструмент для проверки сетевой доступности.
ping yandex.ru
ping 8.8.8.8
Нажмите Ctrl+C, чтобы остановить. В выводе вы увидите:
- Время ответа (latency) в миллисекундах.
- Количество отправленных и полученных пакетов.
- Процент потерь пакетов.
📊 Практика: Попробуйте пропинговать несколько известных ресурсов (
google.com,vk.com) и ваш собственный шлюз по умолчанию. Заметьте разницу во времени ответа.
Трассировка маршрута (traceroute)
traceroute показывает весь путь, который проходят сетевые пакеты от вашего устройства до цели, отображая все промежуточные узлы (маршрутизаторы). Очень полезно для диагностики проблем с маршрутизацией.
traceroute yandex.ru
Вы увидите список IP-адресов маршрутизаторов, через которые проходит ваш запрос, и время ответа от каждого из них.
Смотрим сетевые соединения (ss / netstat)
Команды ss (Socket Statistics) или netstat (Network Statistics) показывают активные сетевые соединения, открытые порты и статистику сетевых интерфейсов. ss — более современная и быстрая альтернатива netstat.
Чтобы увидеть все открытые порты и активные соединения:
ss -tuln # TCP, UDP, Listening, Numeric
t: Показать TCP-соединения.u: Показать UDP-соединения.l: Показать только слушающие (listening) сокеты.n: Не разрешать имена хостов и портов (показывать числовые значения).
Это поможет вам понять, какие сервисы запущены и доступны по сети на вашем сервере.
Что дальше?
Теперь, когда вы освоили основы работы с сетью в Linux, пора двигаться к автоматизации. Следующий шаг — погружение в мир Bash-скриптинга. Там вы научитесь писать свои первые скрипты для автоматизации рутинных задач. Это станет вашей отправной точкой к настоящему DevOps!