Dns

dnsmasq 重啟後不工作

  • July 17, 2019

重新啟動後,dnsmasq 服務正在執行,但不響應遠端請求(嘗試使用另一台機器上的“dig @10.0.0.1 stackexchange.com”)。我認為日誌看起來不錯:

Aug 11 17:41:04 srvname systemd[1]: Starting dnsmasq - A lightweight DHCP and caching DNS server...
Aug 11 17:41:04 srvname dnsmasq[488]: dnsmasq: syntax check OK.
Aug 11 17:41:04 srvname dnsmasq[530]: started, version 2.76 cachesize 150
Aug 11 17:41:04 srvname dnsmasq[530]: compile time options: IPv6 GNU-getopt DBus i18n IDN DHCP DHCPv6 no-Lua TFTP conntrack ips
Aug 11 17:41:04 srvname dnsmasq[530]: DNS service limited to local subnets
Aug 11 17:41:04 srvname dnsmasq[530]: using nameserver 208.67.222.222#53
Aug 11 17:41:04 srvname dnsmasq[530]: using nameserver 208.67.220.220#53
Aug 11 17:41:04 srvname dnsmasq[530]: read /etc/hosts - 5 addresses
Aug 11 17:41:04 srvname systemd[1]: Started dnsmasq - A lightweight DHCP and caching DNS server.
Aug 11 17:41:21 srvname dnsmasq[530]: Ignoring query from non-local network

我不知道最後一行是從哪裡來的,但在我做任何事情之前,它會在重新啟動後立即出現。

如果我重新啟動 dnsmasq 服務,除了最後一行之外,我會得到相同的日誌條目,然後網路上的所有機器都可以訪問它——一切都很好。

dnsmasq 配置:

domain-needed
bogus-priv
no-resolv
server=208.67.220.220
server=208.67.222.222
address=/homeserver.mydomain.com/10.0.0.99

最後一行是為了讓我本地網路上的機器能夠使用其域名找到伺服器本身。我的網際網路路由器不會自行將本地網路對 homeserver.mydomain.com 的請求轉發到 10.0.0.99(這是一些路由器具有的功能,而有些(如我的)則沒有)。

除了這個配置之外,我還從列表中過濾掉了惡意軟體伺服器。

相關的 iptables 配置(iptables-persistent 文件):

-A INPUT -p udp -m udp --dport 53 -j ACCEPT
-A OUTPUT -p udp -m udp --sport 53 -j ACCEPT

到目前為止,我已經找到了兩種可能的解決方案,但是我不知道如何實現它們:

  • 在較早的問題中,有人提到禁用 IPv6 幫助他們解決了類似的問題。但是,我不知道該怎麼做。
  • 一位朋友建議,服務啟動的順序可能是問題,並將 dnsmasq 移到最後,使其最後啟動。但是,我也不確定如何修改它。我已經嘗試將以下行放入 /etc/network/interfaces :“post-up /usr/sbin/service dnsmasq restart”(嘗試在網路啟動後強制重新啟動)。然而,這也無濟於事。

作業系統:Debian GNU/Linux 9 (stretch)

核心:Linux 4.9.0-8-amd64 #1 SMP Debian 4.9.110-3+deb9u4 (2018-08-21) x86_64 GNU/Linux

硬體:華碩 VivoMini Intel N3000

按照 mosvy 的建議添加interface=eth0到 dnsmasq.conf 解決了這個問題。

引用自:https://unix.stackexchange.com/questions/470745