наглядным и менее подверженным ошибкам.
Основная задача Netplan — предоставить унифицированный способ описания сетевой конфигурации, которую затем он преобразует в настройки для низкоуровневых демонов (бэкендов), таких как systemd-networkd или NetworkManager. Такой подход позволяет абстрагироваться от конкретной реализации и гарантирует, что ваша конфигурация будет работать одинаково на разных версиях Ubuntu и других дистрибутивах.
Начиная с Ubuntu 24.04, Netplan 1.0 стал ещё более стабильным и получил ряд улучшений, что делает его стандартом для настройки сети в современных Linux-системах.
Основы работы с конфигурационными файлами YAML
Конфигурация Netplan хранится в файлах с расширением .yaml, которые располагаются в каталоге /etc/netplan/. Эти файлы обрабатываются в лексикографическом порядке, поэтому часто используется числовой префикс для управления приоритетом (например, 01-network-manager-all.yaml или 50-cloud-init.yaml).
Важнейшее правило YAML — строгое соблюдение отступов (пробелами, не табуляциями)!
Базовая структура любого конфигурационного файла выглядит так:
network:
version: 2
renderer: networkd # или NetworkManager
# Здесь будет описание ваших интерфейсов (ethernets, bridges, vlans, bonds)
-
network: Корневой элемент файла. -
version: 2: Текущая версия схемы конфигурации Netplan (используется только 2). -
renderer: Указывает, какой бэкенд будет применять настройки.networkdиспользуется по умолчанию в серверных редакциях, аNetworkManager— в десктопных версиях Ubuntu.
⚙️ Главные команды: netplan try и netplan apply
После создания или изменения YAML-файла, необходимо применить новую конфигурацию. Netplan предоставляет для этого две ключевые команды.
🔄 sudo netplan try — Безопасное тестирование
Эта команда — ваш лучший друг, особенно при настройке удалённого сервера. Она временно применяет новую конфигурацию и запускает таймер (по умолчанию 120 секунд). Если вы не подтвердите изменения, Netplan автоматически откатит их обратно, предотвращая потерю доступа к системе.
# Запускаем тестовое применение конфигурации
sudo netplan try
После выполнения команды вы увидите сообщение с предложением подтвердить изменения. Если сеть работает корректно, нажмите ENTER. Если что-то пошло не так, просто дождитесь окончания тайм-аута, и всё вернётся к предыдущему состоянию.
✅ sudo netplan apply — Применение на постоянной основе
Эта команда применяет текущую конфигурацию Netplan к работающей системе и делает её постоянной (она будет использоваться и после перезагрузки). Используйте её, когда полностью уверены в своих изменениях.
# Применяем конфигурацию
sudo netplan apply
Совет: Если netplan apply завершается ошибкой, проверьте синтаксис YAML с помощью команды sudo netplan generate или sudo netplan try
📝 Примеры конфигураций для всех случаев
Перейдём от теории к практике. Рассмотрим наиболее частые сценарии настройки сети с помощью Netplan.
Настройка статического IP-адреса и DHCP
Это самые базовые, но важные сценарии.
1. Получение IP-адреса по DHCP (автоматически)
network:
version: 2
renderer: networkd
ethernets:
enp0s3: # Имя вашего сетевого интерфейса
dhcp4: yes
dhcp6: no # Опционально, для IPv6
2. Назначение статического IP-адреса
⚠️ Важно: Начиная с Ubuntu 24.04, директива gateway4 считается устаревшей. Вместо неё необходимо использовать routes для указания маршрута по умолчанию.
network:
version: 2
renderer: networkd
ethernets:
enp0s3:
dhcp4: no
addresses:
- 192.168.1.100/24 # IP-адрес и маска подсети
routes:
- to: default # Маршрут по умолчанию
via: 192.168.1.1 # IP-адрес шлюза
nameservers:
addresses: [8.8.8.8, 8.8.4.4] # DNS-серверы
Настройка сетевого моста (Bridge)
Сетевой мост используется для объединения нескольких сетевых интерфейсов в один логический сегмент. Это часто применяется для виртуальных машин или контейнеров
network:
version: 2
renderer: networkd
ethernets:
enp0s3:
dhcp4: no
bridges:
br0: # Имя вашего моста
dhcp4: no
addresses:
- 192.168.1.101/24
routes:
- to: default
via: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
interfaces:
- enp0s3 # Добавляем физический интерфейс в мост
Настройка VLAN (виртуальной локальной сети)
VLAN позволяют разбить одну физическую сеть на несколько логических, что повышает безопасность и упрощает управление.
network:
version: 2
renderer: networkd
ethernets:
enp0s3:
dhcp4: no
vlans:
vlan10: # Имя VLAN-интерфейса
id: 10 # Номер VLAN
link: enp0s3 # Физический интерфейс-родитель
dhcp4: no
addresses:
- 10.10.10.10/24
routes:
- to: default
via: 10.10.10.1
Настройка агрегации каналов (Bonding)
Агрегация каналов (bonding) объединяет несколько физических сетевых интерфейсов в один логический для повышения пропускной способности или обеспечения отказоустойчивости.
network:
version: 2
renderer: networkd
ethernets:
enp0s3:
dhcp4: no
enp0s8:
dhcp4: no
bonds:
bond0:
dhcp4: no
interfaces:
- enp0s3
- enp0s8
parameters:
mode: active-backup # Режим работы: балансировка или отказоустойчивость
primary: enp0s3
addresses:
- 192.168.1.102/24
routes:
- to: default
via: 192.168.1.1
Настройка нескольких IP-адресов и продвинутая маршрутизация
Netplan позволяет гибко настраивать маршрутизацию и присваивать интерфейсу несколько IP-адресов.
network:
version: 2
renderer: networkd
ethernets:
enp0s3:
dhcp4: no
addresses:
- 192.168.1.100/24 # Первый IP-адрес
- 192.168.1.200/24 # Второй IP-адрес
routes:
# Маршрут по умолчанию
- to: default
via: 192.168.1.1
# Специфичный маршрут в другую сеть
- to: 10.0.0.0/8
via: 192.168.1.254
Netplan и его бэкенды: networkd и NetworkManager
Как уже упоминалось, Netplan — это всего лишь генератор конфигураций. Он транслирует YAML-файлы в настройки для двух основных бэкендов:
-
networkd: Это системный демон, который обычно используется на серверах, в облачных окружениях и контейнерах. Он хорошо интегрируется с systemd и не требует графического интерфейса. -
NetworkManager: Это более мощный и интерактивный демон, который чаще всего встречается на десктопах и ноутбуках. Он предоставляет удобные графические утилиты и CLI-инструменты (nmcli) для управления сетью.
Вы можете указать нужный бэкенд с помощью директивы renderer в вашем YAML-файле.
network:
version: 2
renderer: NetworkManager # Или networkd
🚀 Решение проблем и частые ошибки
Даже у опытных администраторов возникают проблемы. Вот несколько типичных ситуаций и способы их решения:
-
Ошибка синтаксиса YAML: Самая частая проблема. Используйте
sudo netplan tryперед применением, чтобы увидеть точное место ошибки. Проверьте отступы (только пробелы!) и кавычки. -
Предупреждение о
gateway4: Как мы уже отмечали, директиваgateway4устарела. Замените её на конструкцию сroutes. Это обеспечит совместимость с будущими версиями Ubuntu. -
Нет связи после применения настроек: Если вы потеряли доступ к удалённому серверу после
netplan apply, не паникуйте. Вероятно, вы не использовалиnetplan try. В этой ситуации поможет только доступ через консоль (например, VNC или IPMI). Подключившись, исправьте конфигурацию и снова выполнитеnetplan apply.
Заключение
Netplan — это мощный и современный инструмент, который упрощает настройку сети в Linux. Используя простые YAML-файлы и команды netplan try / netplan apply, вы можете безопасно управлять даже самыми сложными сетевыми конфигурациями. Освоив принципы, описанные в этом руководстве, вы сможете эффективно настраивать статические IP-адреса, DHCP, сетевые мосты, VLAN и агрегацию каналов на любых серверах под управлением Ubuntu и Debian.