Замените systemd-resolved на dnsmasq

Следующий Как отключить systemd-resolved и разрешить DNS с помощью dnsmasq?

Тем не менее, я следовал этому столько, сколько мог, но все еще не мог должным образом заменить systemd-resolved на dnsmasq -

Если я положу dns=dnsmasq под [main] в /etc/NetworkManager/NetworkManager.confтогда nameserver в моем /etc/resolv.conf будет моим провайдером, а не моим dnsmasq, Если удалить его, то nameserver в моем /etc/resolv.conf останется, чтобы быть systemd-resolved, т. е. 127.0.0.53

В общем, как правильно заменить systemd-resolved на dnsmasq?

PS.

$ lsb_release -a 
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 18.04.1 LTS
Release:        18.04
Codename:       bionic

2 ответа

Решение

Я не знаю, почему вы пытаетесь заменить systemd-resolved, но если вам нужно запустить их одновременно...

относительно dnsmasq а также systemd-resolved ...

Сделать ps auxc | grep -i dns а также ps auxc | grep -i resolv и искать dnsmasq а также systemd-resolved и если оба работают, вам нужно отключить часть DNS systemd-resolved редактируя /etc/systemd/resolved.conf а также...

менять:

#DNSStubListener=yes

чтобы:

DNSStubListener=no

затем перезапустите systemd-resolver и dnsmasq или перезагрузите компьютер.

Вам МОЖЕТ потребоваться сбросить символическую ссылку, которая является /etc/resolv.conf (если dnsmasq не запущен)...

sudo mv /etc/resolv.conf /etc/resolv.conf.OLD # сохранить старую символическую ссылку

sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf # создать новую символическую ссылку

Примечание: оригинальная символическая ссылка...

sudo ln -s /run/resolvconf/resolv.conf /etc/resolv.conf

Я использую маршрутизатор Ubuntu (только что установленный) 18.04.03 для своих домашних компьютеров. Маршрутизатор получает сервер имен от интернет-провайдера. я используюdnsmasqдля dns и dhcp в моей домашней сети. Начать с

systemctl stop systemd-resolved

Изменить /etc/systemd/resolved.conf:

...
#DNSStubListener=yes
DNSStubListener=no

Проверьте, связан ли /etc/resolv.conf. Затем измените ссылку /etc/resolv.conf на /run/systemd/resolve/resolv.conf вместо /run/systemd/resolve/stub-resolv.conf

rm /etc/resolv.conf
ln -s /etc/resolv.conf /run/systemd/resolve/resolv.conf

потом

systemctl start dnsmasq

После перезагрузки и днс сервер должен быть прямо в /etc/resolv.conf.

У меня была такая же проблема, но только на 16.04 системы обновлены до 18.04. Я также использую dnsmasq в качестве DNS-сервера и DHCP-сервера локальной сети. На только что установленном 18.04 он работает из коробки, без необходимости изменять /etc/systemd/resolved.conf (DNSStubListener).

Это и другие различия раздражают особенно при использовании таких инструментов управления конфигурацией, как ansible (например, определение сети, которое определено в /etc/network/interfaces для 16.04 или ниже /etc/netplan/01-netcfg.yaml на 18.04)

Поэтому я, наконец, решил переустановить все мои серверы с новым 18.04 вместо обновления.

Другие вопросы по тегам