Смотрит на меня, что мой systemd запускает dnsmasq прежде, чем запустить администратора сети. Как я могу подтвердить это? То, как я могу вызвать systemd, запускает dnsmasq после запуска администратора сети?
Причина позади этого, как объяснено в NetworkManager, не обновляющем/var/run/networkmanager/resolv.conf,
То, когда моя система запустилась, мой dnsmasq не работает, и я нашел, что причина - это, не слушает мои два IP-адреса вообще. Только после перезапуска его, он начал слушать мои два IP-адреса:
$ lsof -i tcp:53
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
systemd-r 544 systemd-resolve 13u IPv4 18667 0t0 TCP 127.0.0.53:domain (LISTEN)
dnsmasq 793 dnsmasq 5u IPv4 23719 0t0 TCP localhost.my.box.name:domain (LISTEN)
dnsmasq 793 dnsmasq 7u IPv6 23721 0t0 TCP ip6-localhost:domain (LISTEN)
/etc/init.d/dnsmasq restart
[ ok ] Restarting dnsmasq (via systemctl): dnsmasq.service.
$ lsof -i tcp:53
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
systemd-r 544 systemd-resolve 13u IPv4 18667 0t0 TCP 127.0.0.53:domain (LISTEN)
dnsmasq 17895 dnsmasq 5u IPv4 601091 0t0 TCP 192.168.0.10:domain (LISTEN)
dnsmasq 17895 dnsmasq 7u IPv4 601093 0t0 TCP 192.168.0.11:domain (LISTEN)
dnsmasq 17895 dnsmasq 9u IPv4 601095 0t0 TCP localhost...
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 18.04.1 LTS
Release: 18.04
Codename: bionic
# my systemd is not the latest but I think that shouldn't matter:
$ apt-cache policy systemd
systemd:
Installed: 237-3ubuntu10
Candidate: 237-3ubuntu10.9
Version table:
237-3ubuntu10.9 500
500 http://security.ubuntu.com/ubuntu bionic-security/main amd64 Packages
500 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages
*** 237-3ubuntu10 500
500 http://archive.ubuntu.com/ubuntu bionic/main amd64 Packages
100 /var/lib/dpkg/status
Обновление:
@heynnema, спасибо за systemd-analyze --no-pager blame
, Я подтвердил, что порядок запуска как ожидалось
NetworkManager-> systemd-разрешенный-> dnsmasq.
Так действительно это - о dnsmasq и systemd-разрешенном продвижении на каждого пальцы ног других. Я добавил DNSStubListener=no
с тех пор. У меня есть два вопроса о развитии теперь.
restart
работать просто великолепно? То, что это хорошо работало произвело мне впечатление, что нормально иметь их обоих работа. systemctl stop systemd-resolved
и systemctl disable systemd-resolved
полностью отключить systemd-разрешенный, вместо того, чтобы просто остановить его слушателя ранее. Я не знаю, почему это не сохраняется по перезагрузке. У меня была та же проблема, но только в 16,04 системах, обновленных к 18,04. Я также использую dnsmasq в качестве своего DNS LAN и сервера DHCP.
На недавно установленных 18.04 это работает из поля, не имея необходимость изменять /etc/systemd/resolved.conf
(DNSStubListener).
Неразрешенная ошибка в Ubuntu 18.04. Я покажу Вам, как я работал вокруг этого. Возможно, у других есть более изящное решение, но я начну дело со своим собственным.
Проблема живет в разделе [Unit] в After=
директива, которая должна быть изменена следующим образом для повышения dnsmasq.service, неповрежденного на начальной загрузке:
sed -i 's/After=network.target/After=NetworkManager-wait-online.service/' /lib/systemd/system/dnsmasq.service
При тестировании я первоначально попробовал After=NetworkManager.service
который казался разумным выбором. Но после перезагрузки dnsmasq все еще повышался поврежденный на начальную загрузку. Таким образом, я сделал:
systemd-analyze critical-chain
И найденный NetworkManager-wait-online.service
запущенный еще позже. Это - то, как я нашел соответствующий относительный порядок, в котором можно повысить dnsmasq.service. HTH Вы, если Вы споткнулись на эту проблему -