SystemdDoctor
мешает работе dns сеть

systemd-resolved: resolv.conf заменён обычным файлом

Правильная схема — это ссылка /etc/resolv.conf на файл заглушки resolved. Если её заменили обычным файлом со списком внешних серверов, имена разрешаются, но часть возможностей теряется: поиск по домену, разные серверы для разных интерфейсов, кеш.

Вероятные причины

По порядку: сверху то, что встречается чаще.

  1. Файл заменён вручную или средством управления конфигурацией

    Замена выглядит безобидной и даже решает разовую проблему. Но после неё resolved фактически не используется программами.

  2. Серверы имён заданы не там, где ожидается

    При управлении сетью через resolved серверы задаются в его настройках или приходят от DHCP, а не в resolv.conf.

  3. Отключена заглушка, но ссылка осталась

    При DNSStubListener=no заглушки на 127.0.0.53 нет, и ссылка на её файл ведёт в пустоту: разрешение имён перестаёт работать совсем.

Диагностика

Команды идут в том порядке, в котором их стоит выполнять: каждая следующая проверяет то, что осталось после предыдущей.

Ссылка или обычный файл — от этого зависит вся схема.

ls -l /etc/resolv.conf

Серверы имён по интерфейсам и домены поиска.

resolvectl status | head -20

Запрос через resolved с указанием ответившего сервера.

resolvectl query имя-узла

Решение

Решение своё для каждой причины. Сначала определите, какая из них ваша, — иначе правки наложатся друг на друга.

1. Файл заменён вручную или средством управления конфигурацией
Почему происходит
Замена выглядит безобидной и даже решает разовую проблему. Но после неё resolved фактически не используется программами.
Как проверить
Посмотрите, ссылка это или файл.
ls -l /etc/resolv.conf
head -5 /etc/resolv.conf
Как исправить
Верните ссылку на файл заглушки resolved и задавайте серверы через его настройки.
sudo ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
2. Серверы имён заданы не там, где ожидается
Почему происходит
При управлении сетью через resolved серверы задаются в его настройках или приходят от DHCP, а не в resolv.conf.
Как проверить
Посмотрите действующие серверы.
resolvectl status | head -20
grep -i "^DNS" /etc/systemd/resolved.conf
Как исправить
Задайте серверы в настройках resolved или в настройках сетевого подключения — тогда они попадут и в заглушку.
3. Отключена заглушка, но ссылка осталась
Почему происходит
При DNSStubListener=no заглушки на 127.0.0.53 нет, и ссылка на её файл ведёт в пустоту: разрешение имён перестаёт работать совсем.
Как проверить
Посмотрите настройку и наличие заглушки.
grep -i DNSStubListener /etc/systemd/resolved.conf
sudo ss -ulnp | grep 127.0.0.53
Как исправить
При отключённой заглушке используйте ссылку на другой файл resolved или откажитесь от него в пользу локального DNS-сервера.

Пример вывода

Файл заменён обычным списком серверов. Пример показательный: он собран на тестовой машине специально для этой страницы, а не взят из чужого журнала.

$ ls -l /etc/resolv.conf
-rw-r--r-- 1 root root 45 Sep 10 11:20 /etc/resolv.conf

$ head -2 /etc/resolv.conf
nameserver <адрес>
nameserver <адрес>

Связанные ошибки

Где встречается чаще всего

Источники

  • systemd-resolved.service(8)
    Схема с заглушкой и варианты resolv.conf.
    официальная документация, systemd 255
    сверено 15 сентября 2026
  • Воспроизведено на тестовой машине, systemd 255 (Ubuntu 24.04)
    Проверено на Ubuntu 24.04: с обычным файлом поиск по домену не работает.
    собственная проверка, systemd 255
    сверено 15 сентября 2026