Гид по технологиям

NetPlan в Ubuntu: имена серверов DNS, интерфейсы и отладка

• 6 min read • Сеть • Обновлено 16 Nov 2025
NetPlan в Ubuntu: DNS, интерфейсы и отладка
NetPlan в Ubuntu: DNS, интерфейсы и отладка

Quick Links

  • Changing NameServers in NetPlan

  • Bringing Interfaces Up and Down

  • Debugging NetPlan

  • Conclusion

Схема NetPlan и сетевых файлов конфигурации

До 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 и какие файлы собирается записать. Сравните вывод с тем, что вы ожидаете.

Проверка сгенерированной конфигурации NetPlan

Практическое руководство: безопасный SOP для изменения DNS на удалённом сервере

  1. Откройте вторую SSH-сессию (или консоль сервера), чтобы иметь запасное соединение.
  2. Посмотрите текущие интерфейсы: ip a
  3. Создайте новый YAML в /etc/netplan/01-netconfig.yaml или отредактируйте существующий. Не забудьте про отступы. Сохраните.
  4. Запустите sudo netplan try и проверьте работоспособность: ping по IP шлюза, ping 1.1.1.1, nslookup/ dig по домену.
  5. Если всё в порядке — нажмите Enter, чтобы подтвердить, затем sudo netplan apply.
  6. Если не работает — дождитесь автоматического отката через 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).

Решение проблем — пошаговый план

  1. Проверить синтаксис YAML (lint), минимально: отступы, двоеточия.
  2. sudo netplan –debug generate — изучить результат.
  3. Сравнить с файлами в /run (systemd-network или NetworkManager).
  4. Проверить логи systemd-journalctl -u systemd-networkd или логи NetworkManager.
  5. Если после 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 перед применением.
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро