Как отключить systemd-разрешения в Ubuntu?
Как я могу отключить systemd-resolved в Ubuntu 17.04?
Отключение с помощью systemctl disable
не работает, служба перезапускается (Networkmanager?)
5 ответов
Этот метод работает в выпусках Ubuntu 17.04 (Zasty), 17.10 (Artful), 18.04 (Bionic) и 18.10 (Cosmic):
Отключите и остановите службу с разрешением systemd:
sudo systemctl disable systemd-resolved.service
sudo systemctl stop systemd-resolved
Затем поместите следующую строку в [main]
раздел вашего /etc/NetworkManager/NetworkManager.conf
:
dns=default
Удалить символическую ссылку /etc/resolv.conf
rm /etc/resolv.conf
Перезагрузите сетевой менеджер
sudo service network-manager restart
Также учтите, что отключение systemd-resolvd может нарушить разрешение имен в VPN для некоторых пользователей. Смотрите эту ошибку на панели запуска (спасибо, Винсент).
Если вы используете Ubuntu 18.04 Server, ни один из этих ответов не подходит. Самый близкий вариант - от user2427436.
Проблема в том, что systemd-resolved - это / запускает преобразователь заглушек, и мне просто нужно полностью отключить его (по вопросу). Мне нужно это сделать, потому что Zimbra 8.8.15 (FOSS) поставляется с собственным встроенным преобразователем (без привязки).
В моей ситуации я начинаю со стандартной (наивной) установки сервера 18.04 с минимальными параметрами на голом железе (ну, фактически, с виртуальной машины).
так вот рецепт:
vi /etc/systemd/resolved.conf
edit line #DNSStubListener=yes
to be DNSStubListener=no
systemctl stop systemd-resolved
systemctl status systemd-resolved
rm /etc/resolv.conf
reboot to test...
Вот как теперь выглядит /etc/systemd/resolved.conf:
# See resolved.conf(5) for details
[Resolve]
#DNS=
#FallbackDNS=
#Domains=
#LLMNR=no
#MulticastDNS=no
#DNSSEC=no
#Cache=yes
#DNSStubListener=yes
DNSStubListener=no
это все, что нужно.
После этого вы можете установить любой другой резольвер, который захотите.
Я недавно обновился до (k)Ubuntu 17.04 и также наткнулся на переход на systemd.
Я считаю, что мои настройки довольно типичны, поскольку в моем широкополосном концентраторе есть провайдер DNS, и это мой основной источник информации для всех устройств в моей сети (из которых у меня есть несколько).
В systemd есть некоторая красота, но не все так плохо, но что действительно плохо, так это документация, отсутствие связи со стороны команды Ubuntu и фанатичное "давайте просто изменим это, несмотря на то, что это ломает все".
Решением для меня после того, как вырвать волосы, было отредактировать /etc/systemd/resolved.conf:
[Resolve]
DNS=192.168.1.254 # <-- change to your router address
#FallbackDNS=8.8.8.8 8.8.4.4 2001:4860:4860::8888 2001:4860:4860::8844
Domains=lan # <-- change to your localdomain name (maybe .local)
#LLMNR=yes <-- I dabbled with this for a while but it doesn't matter
#DNSSEC=no
#Cache=yes
#DNSStubListener=udp
После того, как я не понял, почему это не сработало, я понял, что нужно также переключить /etc/resolv.conf на тот, что предоставлен systemd. Это не относится к установке из коробки (по неизвестным мне причинам).
sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
Локальный DNS-сервер не используется, и все DNS-запросы отправляются на мой HUB.
Я думаю, что это гораздо лучшее решение, чем вырезать и вставить какое-то другое решение, поскольку systemd-resolv теперь используется по умолчанию.
Связанная проблема, между прочим, заключается в том, что /etc/nsswitch.conf кастрирован.
Следует читать:
hosts: файлы mdns4_minimal dns [NOTFOUND= возвращение], разрешение [!UNAVAIL= возврат] днс
Это запутанная конфигурация, поскольку [NOTFOUND=return] означает, что обработка на этом заканчивается. Записи после него никогда не будут использованы.
Если у вас есть проблемы с утечками в вашей VPN и вы не можете понять, как настроить systemd (как я), вы можете удалить его, как описано в первом ответе, но не добавляйте dns=default
линии, потому что это активирует сервер имен 127.0.0.1. Чтобы установить роутер как днс, создайте файл "tail" в вашем /etc/resolvconf/resolv.conf.d/
папка с добавлением строки nameserser 192.168.1.1
делать ln -sf /var/run/resolved/resovl.conf /etc/resolv.conf
если вы испортили этот файл
Я чувствую себя обязанным добавить этот отличный ответ, появившийся на двойнике, он охватывает случай, когда вам нужна минимальная настройка ifupdown + dhclient + resolvconf (да, это все еще возможно в 2021 году в Ubuntu Focal).
Этот вариант использования не распространяется на другие ответы. Возможно, нам следует стремиться предоставить настройки, не разрешенные systemd, для большинства различных комбинаций, которые мы могли бы захотеть использовать в нашем сетевом стеке (на основе netplan, networkmanager, wicd и т. д.).