升级到Bionic后Dnsmasq坏了:有效,但需要大约30秒来解决任何查询


1

从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服务器,第一个有用的服务器在链接2部分中定义,它指定我的默认网关(192.168.1.1)

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


如果resolv.conf是一个链接,那么它的目标文件包含什么?
grawity

它包含:nameserver 127.0.0.53(我也编辑了答案)
Palantir

您使用哪些工具来测试DNS查询?在/etc/nsswitch.conf中启用了哪些“主机”模块?
grawity

对不起,我点击太快了。我报告了nsswitch.conf的内容。至于测试,我只是对google.com进行ping操作。使用dnsmasq它会挂起30秒,没有它会立即返回。
Palantir

还添加了systemd-resolve --status
Palantir

Answers:


0

经过一夜的睡眠;-)这就是我想出来的。我只是手动添加了一些公共上游服务器(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,但至少它有效......

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.