Сеть в Linux Linux (NetworkManager, systemd-networkd)

Сеть Linux: Ubuntu: DNS через systemd-resolved отличается от DNS в NetworkManager

  • Обновлено
  • Чтение ≈ 2 минуты

Краткий ответ

На Ubuntu или другой системе с systemd-resolved адрес DNS, показываемый в NetworkManager, не совпадает с /etc/resolv.conf. Это может быть штатный локальный stub 127.0.0.53, а не ошибка.

В этой статье
  1. Что происходит и когда это важно
  2. Возможные причины и как их отличить
  3. Пошаговая диагностика и исправление
  4. Команды из инструкции с пояснениями
  5. Как проверить результат
  6. Если проблема не устранена

#Что происходит и когда это важно

Пользователь видит DNS сервер провайдера в интерфейсе сети и 127.0.0.53 в resolv.conf, либо разные ответы на домены через VPN и обычную сеть.

#Возможные причины и как их отличить

Возможная причинаКак узнатьЧто делать
Локальный резолвер работает штатноsystemd-resolved слушает 127.0.0.53 и пересылает запросы к серверам сетевых соединений.resolvectl status показывает реальные DNS на интерфейсах.Не заменять stub DNS случайным адресом.
Раздельная маршрутизация доменовVPN использует собственный DNS для корпоративных имён.У VPN есть маршрутизируемые домены вида ~example.org.Проверить DNS именно активного линка.
Неправильная привязка resolv.confФайл перестал ссылаться на управляемую конфигурацию или записан другой службой.ls -l /etc/resolv.conf не соответствует ожидаемому механизму.Установить владеющий менеджер, не перетирать файл без копии.

#Пошаговая диагностика и исправление

  1. Проверьте, действительно ли есть ошибкаОткройте терминал. Выполните resolvectl status и cat /etc/resolv.conf. Если в файле указан nameserver 127.0.0.53, а resolvectl status показывает DNS для Wi-Fi/Ethernet, это может быть нормальной схемой локального резолвера.
  2. Проверьте реальное разрешение имениВыполните resolvectl query example.com. Команда должна вернуть адреса и использованную информацию, если DNS работает; example.com — нейтральный тестовый домен. Если ответ есть, простое несовпадение цифр с NetworkManager не требует исправления.
  3. Найдите DNS в профилеЕсли используется NetworkManager, выполните nmcli device show. Найдите раздел нужного интерфейса и IP4.DNS, IP6.DNS. Сравните с resolvectl status; при VPN часть DNS может относиться к виртуальному интерфейсу, и такое различие ожидаемо.
  4. Проверьте состояние сервиса и ссылкуВведите systemctl status systemd-resolved --no-pager и ls -l /etc/resolv.conf. Если служба active и ссылка указывает на предусмотренный путь, не пересоздавайте resolv.conf вручную. Если служба отсутствует, выясните, какая программа реально управляет DNS.
  5. Отделите DNS от сетевой связностиПроверьте, есть ли адрес и маршрут (ip -br addr, ip route). Если нет доступа по IP, замена DNS не вернёт отсутствующий маршрут. Если IP работает, а resolvectl query выдаёт ошибку, изучите сервер и маршрутизацию доменов.
  6. Согласуйте точечную правкуДля корпоративной сети уточните у администратора, какие домены должны идти к DNS VPN. Для домашнего подключения параметры меняйте в профиле NetworkManager через «Настройки» → «Сеть» → шестерёнка соединения → вкладка IPv4/IPv6, только если проблема подтверждена. Запишите прежние DNS и верните их при ухудшении.
  7. Проверьте стабильность после переподключенияПосле повторного подключения сети выполните resolvectl query для общедоступного и, если разрешено, внутреннего имени. Сверьте адрес, не меняя сервис resolv.conf целиком. Если исходный сбой повторился, верните записанные DNS-настройки и сохраните вывод диагностики.

#Команды из инструкции с пояснениями

Linux · Терминал (Bash)Команда
Список DNS и доменов по интерфейсам.
resolvectl status
Linux · Терминал (Bash)Команда
Проверка разрешения тестового домена.
resolvectl query example.com
Linux · Терминал (Bash)Команда
DNS и IP NetworkManager, когда он активен.
nmcli device show
Linux · Терминал (Bash)Команда
Проверка ссылки на файл DNS.
ls -l /etc/resolv.conf

#Как проверить результат

Обычные и предназначенные для VPN имена разрешаются через нужные DNS-серверы, а изменение настроек не нарушило доступ к сети.

#Если проблема не устранена

Если resolvectl отсутствует, выясните действующий резолвер через сетевую службу. Не исправляйте файл stub, пока не установлено, что DNS на самом деле не работает.

Источники и обновления

Последнее обновление статьи: 2 ноября 2026. Версии программ и интерфейсы меняются — если шаги не совпадают с вашей версией, сверяйтесь с документацией производителя.