升级到 Bionic 后 Dnsmasq 损坏:可以工作,但需要大约 30 秒才能解决任何查询

升级到 Bionic 后 Dnsmasq 损坏:可以工作,但需要大约 30 秒才能解决任何查询

从 16.04 升级到 Ubuntu 18.04 后,我的 dnsmasq 配置损坏了。

  • systemd-resolved 已启用并正在运行
  • dnsmasq 已启用并正在运行

任何对外界的 DNS 查询都会挂起大约 30 秒才能成功。对我的本地主机 (anything.mylocal) 的查询将立即成功。

如果我停止 dnsmasq(即service dnsmasq stop),那么所有对外界的 DNS 查询将立即起作用(但 .mylocal 当然不会)。

在:/etc/dnsmasq.conf

listen-address=127.0.0.1
address=/.mylocal/127.0.0.1

在:/etc/NetworkManager/NetworkManager.conf

[main]
...
# dns=dnsmasq
...

取消注释 dns= 行将阻止任何 dns 查询。

在:/etc/systemd/resolved.conf

[Resolve]
#DNS=
#FallbackDNS=
#Domains=
#LLMNR=no
#MulticastDNS=no
#DNSSEC=no
#Cache=yes
#DNSStubListener=no

在:/etc/resolv.conf

该文件链接至:../run/resolvconf/resolv.conf,其中包含:

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
# 127.0.0.53 is the systemd-resolved stub resolver.
# run "systemd-resolve --status" to see details about the actual nameservers.

nameserver 127.0.0.53

在:/etc/nsswitch.conf

passwd:         compat systemd
group:          compat systemd
shadow:         compat

hosts:          files mdns4_minimal [NOTFOUND=return] dns myhostname
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis

与输出有一个明显的区别systemd-resolve --status

  • 在 dnsmasq 运行时,Global 中的第一行内容如下:DNS Servers: 127.0.0.1
  • 停止 dnsmasq 后,此行不存在,没有全局 DNS 服务器,第一个有用的服务器在 Link 2 部分中定义,它指定了我的默认网关(192.168.1.1)

任何帮助是极大的赞赏 :)

答案1

睡了一夜之后 ;-) 这就是我想到的。我只是手动添加了一些公共上游服务器(1.1.1.1 是 CloudFlare 的,8.8.8.8 是 Google 的)

在:/etc/dnsmasq.conf:

listen-address=127.0.0.1
address=/.mylocal/127.0.0.1
server=1.1.1.1
server=8.8.8.8

所有剩余文件都和我的问题一样。systemd-resolved 和 dnsmasq 都已启用并正在运行。

这使得 DNS 查询可以正常工作。

我仍然不认为这是正确答案,因为我更喜欢使用网络提供的 DNS,但至少它有效......

相关内容