升級到 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 伺服器,且第一個有用的伺服器在連結 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,但至少它有效...

相關內容