Представь, что ты только что развернул свежий сервер Ubuntu 22.04 или 24.04 и первое, с чем сталкиваешься — это необходимость настроить сеть. Старые добрые /etc/network/interfaces ушли в прошлое. Теперь всем заправляет Netplan — современный, декларативный инструмент для управления сетью через YAML-конфиги. Давай разберем, как им пользоваться от и до.
Что такое Netplan и почему он в Ubuntu?
Netplan — это утилита для настройки сети, представленная Canonical. Вместо прямого управления демонами вроде ifupdown или NetworkManager (на серверах), ты описываешь желаемое состояние сети в YAML-файле. Netplan затем транслирует эту конфигурацию в нативные настройки для выбранного рендерера (обычно systemd-networkd или NetworkManager). Это делает конфигурацию более переносимой и понятной.
Где хранятся конфигурационные файлы Netplan?
Конфиги Netplan лежат в директории /etc/netplan/. При установке системы там уже может быть файл с именем вида 00-installer-config.yaml или 01-netcfg.yaml. Именно его мы и будем редактировать.
# Посмотрим, что уже есть в системе
ls -la /etc/netplan/
# Вывод может быть таким:
# -rw-r--r-- 1 root root 104 Apr 15 10:00 00-installer-config.yaml
Базовый синтаксис YAML-конфига Netplan
Перед тем как погружаться в настройку сети в Ubuntu через Netplan, запомни несколько правил YAML:
- Отступы делаются пробелами (не табами!).
- Чувствителен к регистру.
- Структура строится на ключах и значениях.
Структура файла конфигурации
Каждый файл Netplan содержит словарь верхнего уровня network. Внутри него определяются версия, рендерер и, самое главное, сетевые устройства (Ethernet, WiFi) и их настройки.
Настройка Netplan Ubuntu 22.04: Практические примеры
Давай перейдем к практике. Все примеры актуальны как для настройки сети Netplan в Ubuntu 22.04, так и для 24.04.
Пример 1: Динамический IP (DHCP)
Самый простой случай — когда твой сервер получает адрес автоматически от роутера.
# /etc/netplan/00-installer-config.yaml
network:
version: 2
renderer: networkd # Используем systemd-networkd (стандарт для серверов)
ethernets:
enp3s0: # Имя интерфейса. Узнать его можно командой `ip link`
dhcp4: true
optional: true # Позволяет загружаться, даже если интерфейс не активен
Пример 2: Статический IP-адрес
Чаще всего на серверах требуется фиксированный адрес.
network:
version: 2
renderer: networkd
ethernets:
enp3s0:
dhcp4: no
addresses:
- 192.168.1.100/24 # IP-адрес и маска сети в формате CIDR
routes:
- to: default
via: 192.168.1.1 # Шлюз по умолчанию
nameservers:
addresses:
- 8.8.8.8
- 8.8.4.4 # DNS-серверы Google
search: [localdomain] # Домен для поиска
enp3s0 на имя своего сетевого интерфейса. Узнать его можно командой ip a или ls /sys/class/net.
Пример 3: Настройка двух IP-адресов на одном интерфейсе
network:
version: 2
ethernets:
enp3s0:
addresses:
- 192.168.1.100/24
- 10.0.0.10/24 # Вторичный адрес
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 1.1.1.1]
Настройка WiFi через Netplan (Ubuntu 24.04 / 22.04)
Для работы с WiFi в Netplan в качестве рендерера обычно используется NetworkManager. Убедись, что он установлен (sudo apt install network-manager).
network:
version: 2
renderer: NetworkManager
wifis:
wlp2s0: # Имя беспроводного интерфейса
dhcp4: yes
access-points:
"MyHomeWiFi":
password: "s3cr3tp@ssw0rd"
optional: true
Проверка и применение конфигурации Netplan
После редактирования YAML-файла недостаточно просто сохранить его. Нужно применить изменения.
- Проверка синтаксиса: Эта команда покажет, как Netplan интерпретирует твой файл, без применения.
bash
sudo netplan generate - Пробный запуск (dry-run): Покажет, какие команды будут выполнены.
bash
sudo netplan tryУ тебя будет 120 секунд на проверку соединения. Если нажать Enter — конфигурация применится. Если соединение пропало — изменения откатятся.
- Немедленное применение: Применяет конфигурацию сразу.
bash
sudo netplan apply
Продвинутые сценарии: мосты и бондинг
Netplan отлично справляется со сложными конфигурациями, необходимыми для виртуализации или отказоустойчивости.
Создание сетевого моста (bridge)
network:
version: 2
renderer: networkd
ethernets:
enp3s0:
dhcp4: no
bridges:
br0:
interfaces: [enp3s0]
addresses: [192.168.1.100/24]
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8]
parameters:
stp: false # Отключаем Spanning Tree Protocol для простых сетей
Объединение каналов (bonding) для отказоустойчивости
network:
version: 2
bonds:
bond0:
interfaces: [enp3s0, enp4s0]
addresses: [10.0.0.10/24]
gateway4: 10.0.0.1
parameters:
mode: active-backup # Режим активный-резервный
primary: enp3s0 # Основной интерфейс
ethernets:
enp3s0: {}
enp4s0: {}
Откат конфигурации и диагностика проблем
Если что-то пошло не так после netplan apply и ты потерял связь с сервером:
- Если у тебя есть физический доступ, Netplan сохраняет предыдущую рабочую конфигурацию. Перезагрузка вернет старые настройки.
- Используй
sudo netplan --debug applyдля подробного вывода. - Проверь логи рендерера:
sudo journalctl -u systemd-networkdилиsudo journalctl -u NetworkManager.
Сравнение рендереров: networkd vs NetworkManager
| Критерий | systemd-networkd | NetworkManager |
|---|---|---|
| Назначение | Серверы, минимальные системы | Десктопы, ноутбуки, системы с WiFi |
| Сложность | Минималистичный, меньше зависимостей | Более функциональный, управляет соединениями |
| WiFi | Базовая поддержка (через wpa_supplicant) | Полноценная поддержка, GUI |
Часто задаваемые вопросы (FAQ) по Netplan
Q: Я изменил конфиг, но сеть не работает. В чем дело?
A: 1) Проверь отступы в YAML-файле. 2) Убедись, что имя интерфейса указано верно (ip link). 3) Выполни sudo netplan --debug apply и изучи вывод. 4) Проверь, не блокирует ли брандмауэр (ufw) соединение.
Q: Можно ли использовать старый файл /etc/network/interfaces вместе с Netplan?
A: Нет, это взаимоисключающие методы. Netplan игнорирует старые конфиги. Убедись, что пакет ifupdown удален или не мешает.
Q: Как настроить статический IPv6-адрес в Netplan?
A> Аналогично IPv4, но используй ключ addresses с IPv6-адресом и gateway6.
addresses:
- 192.168.1.100/24
- 2001:db8::1/64 # IPv6 адрес
gateway6: 2001:db8::fffe
Q: Есть ли различия в настройке Netplan между Ubuntu 22.04 и 24.04?
A: Базовый синтаксис и принципы работы идентичны. Ubuntu 24.04 может содержать более новую версию утилиты с исправлениями багов и, возможно, расширенной поддержкой новых функций ядра или протоколов. Все примеры из этой статьи будут работать в обеих версиях.
netplan try на production-серверах!