Dns
dnsmasq 重啟後不工作
重新啟動後,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 解決了這個問題。