Я еще один пользователь, пытающийся развернуть systemd-resolved, NetowrkManager и dnsmasq horror с добавлением проприетарного vpn, который мешает с /etc/resolve.conf.
хочу, чтобы dnsmasq был моим единственным преобразователем. Поэтому я отключил конфигурацию dns как systemd-resolved, так и NetworkManager:
● systemd-resolved.service - Network Name Resolution
Loaded: loaded (/usr/lib/systemd/system/systemd-resolved.service; disabled; vendor preset: enabled)
Active: inactive (dead)
# Configuration file for NetworkManager.
# See "man 5 NetworkManager.conf" for details.
[main]
dns = none
dnsmasq, очевидно, включен в systemd:
● dnsmasq.service - dnsmasq - A lightweight DHCP and caching DNS server
Loaded: loaded (/usr/lib/systemd/system/dnsmasq.service; enabled; vendor preset: disabled)
Проблема в том, что dnsmasq работает только до того момента, когда я переведу свой ноутбук в режим сна. После этого процесс dnsmasq все еще присутствует в списке процессов, время ожидания всех запросов истекает (я не уверен, принимает ли их dnsmasq вообще), и его нельзя перезапустить до полной перезагрузки по непонятной причине:
Sep 27 10:59:05 varmint systemd[1]: dnsmasq.service: Scheduled restart job, restart counter is at 4.
Sep 27 10:59:05 varmint systemd[1]: Stopped dnsmasq - A lightweight DHCP and caching DNS server.
Sep 27 10:59:05 varmint systemd[1]: Starting dnsmasq - A lightweight DHCP and caching DNS server...
Sep 27 10:59:05 varmint dnsmasq[9896]: dnsmasq: syntax check OK.
Sep 27 10:59:05 varmint dnsmasq[9897]: dnsmasq: failed to create listening socket for 127.0.0.1: Cannot assign requested address
Sep 27 10:59:05 varmint dnsmasq[9897]: failed to create listening socket for 127.0.0.1: Cannot assign requested address
Sep 27 10:59:05 varmint dnsmasq[9897]: FAILED to start up
Sep 27 10:59:05 varmint systemd[1]: dnsmasq.service: Main process exited, code=exited, status=2/INVALIDARGUMENT
Sep 27 10:59:05 varmint systemd[1]: dnsmasq.service: Failed with result 'exit-code'.
Sep 27 10:59:05 varmint systemd[1]: Failed to start dnsmasq - A lightweight DHCP and caching DNS server.
Sep 27 10:59:05 varmint systemd[1]: dnsmasq.service: Scheduled restart job, restart counter is at 5.
Sep 27 10:59:05 varmint systemd[1]: Stopped dnsmasq - A lightweight DHCP and caching DNS server.
Sep 27 10:59:05 varmint systemd[1]: dnsmasq.service: Start request repeated too quickly.
Sep 27 10:59:05 varmint systemd[1]: dnsmasq.service: Failed with result 'exit-code'.
Sep 27 10:59:05 varmint systemd[1]: Failed to start dnsmasq - A lightweight DHCP and caching DNS server.
Согласно netstat и ss, 127.0.0.1:53 ничего не слушает, что и ожидается, поскольку процесс dnsmasq в данный момент не запущен. Я не могу найти ничего, связанного с выводом journalctl. Я наблюдаю такое же поведение, если переключаюсь на dnsmasq, управляемый NetworkManager.
update: я пробовал выполнить привязку, чтобы посмотреть, является ли проблема шире, чем просто dnsmasq. вот что я вижу после пробуждения:
Sep 27 12:16:44 varmint named[6605]: no longer listening on 127.0.0.1#53
Sep 27 12:16:44 varmint named[6605]: no longer listening on ::1#53
думаю, это может быть ключом ко всему
Что не так? Как я могу это отладить? Кто-нибудь видел что-то подобное и имел какие-нибудь подсказки?
Дополнительная информация:
Операционная система: Manjaro 20 KDE
Ядро: 5.8.6-1-MANJARO
dnsmasq установлен как официальный пакет 2.82-2
dnsmasq systemd unit:
[Unit]
Description=dnsmasq - A lightweight DHCP and caching DNS server
Documentation=man:dnsmasq(8)
After=network.target
Before=network-online.target nss-lookup.target
Wants=nss-lookup.target
[Service]
Type=dbus
BusName=uk.org.thekelleys.dnsmasq
ExecStartPre=/usr/bin/dnsmasq --test
ExecStart=/usr/bin/dnsmasq -k --enable-dbus --user=dnsmasq --pid-file
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
PrivateDevices=true
ProtectSystem=full
[Install]
WantedBy=multi-user.target
Похоже, это был ад, вызванный самим собой. Вся настройка нужна только для работы с какой-то средой, требующей отлова специальных имен и разрешения их в предопределенные локальные адреса в 172, которые тоже приходится привязывать вручную. Последнее было сделано через systemd-networkd через пользовательский файл в /etc/systemd/network/
; после удаления все начинает нормально работать.