NetPlan в Ubuntu: имена серверов DNS, интерфейсы и отладка
Quick Links
Changing NameServers in NetPlan
Bringing Interfaces Up and Down
Debugging NetPlan
Conclusion

До Ubuntu 18.04 DNS-серверы часто задавались прямо в файле /etc/resolv.conf. Этот файл позволял быстро указывать nameserver, например:
nameserver 1.1.1.1
nameserver 1.0.0.1
Начиная с Ubuntu 18.04, сетевые настройки (включая nameserver) управляются через NetPlan. Редактирование /etc/resolv.conf вручную могло временно сработать, но файл часто обновлялся процессами вроде NetworkManager. NetPlan ввёл единый, человеко-читаемый YAML для описания сложных конфигураций — проще редактировать, тестировать и отлаживать.
Что такое NetPlan — кратко
NetPlan — это конфигуратор сети в Ubuntu, который переводит YAML-файлы в настройки для backend’ов (systemd-networkd или NetworkManager). Простой 1‑строчный термин: NetPlan хранит декларативную сеть в YAML и генерирует системные конфигурации.
Важно: NetPlan не “выполняет” сети напрямую — он генерирует файлы для renderer’ов (networkd/NetworkManager).
Изменение nameserver в NetPlan
Где править: вместо /etc/resolv.conf откройте /etc/netplan и редактируйте существующие *.yaml или создайте новый файл в формате с предшествующим номером, например 01-netconfig.yaml. NetPlan загружает файлы по порядку:
- /run/netplan/*.yaml
- /etc/netplan/*.yaml
- /lib/netplan/*.yaml
Найти текущую конфигурацию интерфейсов
Перед изменением полезно посмотреть, какие интерфейсы активны и какие у них адреса:
user> ip a
Вывод будет отличаться по системе, но мы ищем имя интерфейса (например eth0) и его состояние.

Пример статической конфигурации с DNS
Выберите YAML-файл и вставьте соответствующий блок, отредактировав под свою сеть. Пример для статического IP и интерфейса eth0:
network:
version: 2
ethernets:
eth0:
addresses:
- 10.10.10.2/24
gateway4: 10.10.10.1
nameservers:
addresses:
- 1.1.1.1
- 1.0.0.1
- 2606:4700:4700::1111
- 2606:4700:4700::1001
search: []
Здесь в качестве примера используются публичные DNS Cloudflare; вы можете подставить свои IP.
Если вы используете DHCP вместо статического адреса, замените блок адресов на:
dhcp4: yes
И если хотите, чтобы DHCP не перезаписывал DNS, задайте override:
dhcp4-overrides:
use-dns: false
Также адреса можно указывать массивом в одной строке:
addresses: [1.1.1.1, 1.0.0.1, "2606:4700:4700::1111", "2606:4700:4700::1001"]
Renderers
В YAML-инструкции может встречаться ключ renderer: NetworkManager или networkd. По умолчанию используется networkd. NetworkManager — это GUI/фоновый менеджер (обычно для десктопов), а systemd-networkd — лёгкий renderer для серверов. Обычно менять не нужно.
Проверка изменений
Перед применением в финал можно временно протестировать настройки командой:
sudo netplan try

Программа применит настройки временно и откатит их через 120 секунд, если вы не подтвердите. Пока тест идёт, можно открыть вторую сессию и проверить доступность.
Важно: netplan try — безопасная команда для удалённых серверов, потому что откат произойдёт автоматически при ошибке.
Применение изменений
Если всё работает, примените конфигурацию окончательно:
sudo netplan apply
При смене только nameserver перезагрузка обычно не требуется. Для крупных изменений (например, смена renderer или изменения внизу стека) может потребоваться перезагрузка.
Поднимание и опускание интерфейсов
Ранее использовался ifconfig, теперь предпочтительнее ip:
ip link set eth0 down
ip link set eth0 up
Осторожно: если это единственный интерфейс и вы работаете удалённо, опускать его нельзя без альтернативного доступа.
Отладка NetPlan
Когда что‑то пошло не так, полезно посмотреть, какие конфигурации были сгенерированы. NetPlan транслирует YAML в файлы для systemd-networkd/NetworkManager — обычно они появляются в /run/systemd/network или /run/NetworkManager. Проверьте соответствующий *.network или другой файл и убедитесь, что содержимое совпадает с ожидаемым.
Для подробного вывода используйте:
sudo netplan --debug generate
Это покажет, как NetPlan интерпретировал YAML и какие файлы собирается записать. Сравните вывод с тем, что вы ожидаете.

Практическое руководство: безопасный SOP для изменения DNS на удалённом сервере
- Откройте вторую SSH-сессию (или консоль сервера), чтобы иметь запасное соединение.
- Посмотрите текущие интерфейсы: ip a
- Создайте новый YAML в /etc/netplan/01-netconfig.yaml или отредактируйте существующий. Не забудьте про отступы. Сохраните.
- Запустите sudo netplan try и проверьте работоспособность: ping по IP шлюза, ping 1.1.1.1, nslookup/ dig по домену.
- Если всё в порядке — нажмите Enter, чтобы подтвердить, затем sudo netplan apply.
- Если не работает — дождитесь автоматического отката через 120 сек и исправьте YAML.
Критерии приёмки:
- Команда ping до шлюза отвечает.
- Разрешение DNS возвращает корректные IP.
- Службы, зависящие от сети, успешно стартуют.
Чек‑лист для отладки (системный администратор)
- Проверил имя интерфейса через ip a
- Проверил содержимое /etc/netplan/*.yaml (валидный YAML)
- Запустил sudo netplan –debug generate и изучил вывод
- Проверил сгенерированные файлы в /run/systemd/network или /run/NetworkManager
- Тестировал через sudo netplan try перед apply
- Убедился, что обратного отката не требуется (или есть резервный доступ)
Ролевые подсказки
- Новичок: не меняйте основные настройки сервера без второй сессии. Используйте netplan try.
- Системный администратор: держите примечание с заранее проверенной конфигурацией и быстрым планом отката.
- DevOps/CI инженер: автоматизируйте в репозитории конфигурации /etc/netplan и тестируйте шаблоны через lint YAML.
Альтернативные подходы
- NetworkManager GUI: удобен на десктопе, но для серверов лучше networkd.
- Сторонние инструменты управления конфигурацией (Ansible/Chef/Puppet): храните netplan-файлы в репозитории и деплойте атомарно.
- Ручное редактирование /etc/resolv.conf: временно возможно, но изменения могут быть перезаписаны.
Когда NetPlan может не подойти (контрпример)
- Сценарии с очень динамическими изменениями сетей на десктопах, где удобнее GUI NetworkManager.
- Очень специфичные сетевые драйверы/сценарии, не поддерживаемые автоматически генерируемыми файлами — тогда нужен ручной контроль рендерера.
Быстрые методики и принятие решений (ментальные модели)
- «Декларативный шаблон»: опишите желаемое состояние в YAML и позвольте NetPlan сгенерировать конфигурацию.
- «Тест прежде чем применять»: netplan try — ваш первый фильтр на ошибки.
- «Разделяй и властвуй»: сначала тестируйте сеть по IP (пинг шлюза), затем DNS (dig/nslookup).
Решение проблем — пошаговый план
- Проверить синтаксис YAML (lint), минимально: отступы, двоеточия.
- sudo netplan –debug generate — изучить результат.
- Сравнить с файлами в /run (systemd-network или NetworkManager).
- Проверить логи systemd-journalctl -u systemd-networkd или логи NetworkManager.
- Если после apply потерян доступ — используйте консоль провайдера или автоматический откат (если использовали try).
Мини‑факто‑бокс
- NetPlan появилась в Ubuntu 17.10, стала стандартом в 18.04
- Команда netplan try откатывает изменения через 120 секунд по умолчанию
- Основные backends: systemd-networkd и NetworkManager
Glossary — 1‑строчные определения
- NetPlan: декларативный YAML-конфиг для сети в Ubuntu.
- renderer: компонент (networkd или NetworkManager), который применяет настройки.
- dhcp4-overrides.use-dns: флаг, отключающий замену DNS от DHCP.
Примеры тестов/критерии приёмки
- Сценарий: после apply nslookup example.com возвращает IP и curl по домену проходит.
- Acceptance: службы, зависящие от сети, не упали; SSH доступ сохранён (если применимо).
Заключение
NetPlan упрощает и стандартизирует сетевые настройки в Ubuntu, позволяя описывать конфигурацию декларативно. Для безопасных правок используйте netplan try и отладочные команды, проверяйте сгенерированные файлы и всегда имейте запасной доступ к серверу. Для автоматизации держите YAML в системе управления версиями и применяйте через CI/CD.
Краткие рекомендации:
- Всегда делайте резервный доступ при правке удалённых серверов.
- Используйте netplan try для безопасного тестирования.
- Линтуйте и проверяйте YAML перед применением.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента