Отключение systemd-resolved в Ubuntu


В версиях Ubuntu 16.04 и ниже отключение локального маскарадинга DNS выполнялось комментированием строки в /etc/NetworkManager/NetworkManager.conf:

# dns=dnsmasq

и последующим рестартом Network Manager:

service network-manager restart

В более свежих версиях Ubuntu 16.10 и выше, разработчики, стремясь полностью перевести системное окружение в systemd, используют сервис systemd-resolved для локального DNS маскарадинга. В силу того, что в локальном кешировании DNS записей нет необходимости, и зачастую это только мешает оперативной диагностике записей или работы DNS в целом - предпочитаю корректно отключать локальный маскарадинг DNS. Останавливаю и отключаю сервис system-resolved:

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

В секцию [main] файла /etc/NetworkManager/NetworkManager.conf добавляю:

dns=default

Удаляю симлинк resolv.conf:

rm /etc/resolv.conf

Вношу записи DNS серверов в файл resolv.conf:

echo "nameserver 8.8.8.8" > /etc/resolv.conf
echo "nameserver 8.8.4.4" >> /etc/resolv.conf

И в завершении рестартую Network Manager:

service network-manager restart

Собственно, всё.