Как отключить systemd-resolve в Linux

  • 01.05.2019
  • 21 361
  • 7
  • 30.01.2021
  • 30
  • 29
  • 1
Как отключить systemd-resolve в Linux

В данной статье мы рассмотрим вопрос отключения systemd-resolve в ОС семейства Linux, таких как Ubuntu или Mint.

Отключаем systemd-resolve

Для этого необходимо выполнить следующие команды:

sudo systemctl disable systemd-resolved.service
sudo systemctl stop systemd-resolved

Первая команда отключает автостарт сервиса systemd-resolved, а вторая - прерывает его работу.

Вносим правки в resolv.conf

Т.к. мы выключили сервис, который позволял разрешать доменные имена, то нам необходимо отредактировать конфиг /etc/resolv.conf, чтобы у нас все работало как надо без него, используя внешние DNS сервера.

Если этого не сделать, то возможны проблемы в работе и получение различных ошибок, например:

Temporary failure in name resolution

Чтобы исправить это безобразие, сначала удаляем симлинк для конфига:

sudo rm /etc/resolv.conf
Если вы захотите вернуть обратно данный симлинк, то оригинальный файл можно найти по следующему пути: /run/systemd/resolve/stub-resolv.conf

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

nameserver 8.8.8.8
nameserver 8.8.4.4
search example.com domain.local

nameserver 8.8.8.8 и nameserver 8.8.4.4 - адреса DNS серверов, к которым будут делаться обращения для разрешения доменных имен.
search example.com domain.local - возможные суффиксы для адресов, в том случае, если не удалось обнаружить адрес в том виде, как он был изначально задан. Т.е. при попытке разрешить доменное имя sysadmin, будут последовательно к нему дописаны указанные выше суффиксы и предпринята попытка разрешить их в виде sysadmin.example.com, а в случае неудачи, то sysadmin.domain.local. Если для вас это не актуально, то данную строчку можно не прописывать вообще.

Вносим правки в NetworkManager.conf (Опционально)

Если вы пользуетесь каким-либо окружением рабочего стола, а не голой консолью, то необходимо еще внести правки в конфиг /etc/NetworkManager/NetworkManager.conf, чтобы и в графической среде у вас все работало как следует. Для этого открываем для редактирования указанный конфиг и вносим в секцию [main] следующую строку:

dns=default

Целиком, это может выглядеть примерно так:

[main]
plugins=ifupdown,keyfile
dns=default

[ifupdown]
managed=false

[device]
wifi.scan-rand-mac-address=no

После того, как вы внесли правки в конфиг и сохранили его, необходимо перезапустить network-manager следующей командой:

sudo service network-manager restart

После чего, все должно нормально работать.

Была ли эта статья Вам полезна?

Комментарии к статье (7)

    • Гость

    Не понятно как вносить правки.

    • В таком случае, очень странно, что вы беретесь за выключение systemd-resolve, если даже не умеете вносить правки в текстовый файл из под Linux.

    • Pavel

    А какие причины отключать systemd-resolved ?

      • Евгений

      Некорректно работал. Так и не разобрался, как его починить. К тому же на серверах не особо нужен.
      За статью огромное спасибо! Все получилось.

    • Дмитрий

    Спасибо! Долго искал как отключить подмену resolv.conf в Ubuntu 18

    Теперь бы еще понять почему суфикс local не дописывается при пинге по имени
    приходиться выполнять команду
    ping ubn1.local

    • Александр

    Не работает, так как в файле resolv.conf изменения не сохраняются.

      • AJIekceu4

      Вы его удалили сначала, как в инструкции сказано? Изменения в файле вы пытаетесь делать с помощью sudo?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Напоминаем Вам, что Ваше сообщение будет опубликовано только после проверки администратором сайта. Обычно это занимает 1-2 рабочих дня.