如何让 dnsmasq 遵守 resolv.conf 中的服务器顺序

xen*_*ide 6 dns dnsmasq

这是生成的resolv.conf

# Generated by resolvconf
nameserver 127.0.0.1
nameserver 208.67.222.222
nameserver 208.67.220.220
nameserver 192.168.1.1
Run Code Online (Sandbox Code Playgroud)

日志中发生的事情似乎是,resolv.conf在网络加载之前,然后是之后。

Dec 25 23:17:50 slave-vi dnsmasq[1051]: ignoring nameserver 127.0.0.1 - local interface
Dec 26 11:18:09 slave-vi dnsmasq[1051]: reading /etc/resolv.conf
Dec 26 11:18:09 slave-vi dnsmasq[1051]: using nameserver 208.67.220.220#53
Dec 26 11:18:09 slave-vi dnsmasq[1051]: using nameserver 208.67.222.222#53
Dec 26 11:18:09 slave-vi dnsmasq[1051]: ignoring nameserver 127.0.0.1 - local interface
Dec 26 11:18:23 slave-vi dnsmasq[1051]: reading /etc/resolv.conf
Dec 26 11:18:23 slave-vi dnsmasq[1051]: using nameserver 192.168.1.1#53
Dec 26 11:18:23 slave-vi dnsmasq[1051]: using nameserver 208.67.220.220#53
Dec 26 11:18:23 slave-vi dnsmasq[1051]: using nameserver 208.67.222.222#53
Dec 26 11:18:23 slave-vi dnsmasq[1051]: ignoring nameserver 127.0.0.1 - local interface
Run Code Online (Sandbox Code Playgroud)

我的问题是路由器 dns 正在成为系统的主要 dns,这不是我指定的。事实证明,opendns 甚至会为 BS 域返回 IP,但我不再得到它,这意味着它通常提供的保护也消失了。

Bru*_*ger 9

你想在 中取消对“严格顺序”的评论/etc/dnsmasq.con,就我所知。

# By  default,  dnsmasq  will  send queries to any of the upstream
# servers it knows about and tries to favour servers to are  known
# to  be  up.  Uncommenting this forces dnsmasq to try each query
# with  each  server  strictly  in  the  order  they   appear   in
# /etc/resolv.conf
#strict-order
Run Code Online (Sandbox Code Playgroud)

我不确定是否dnsmasq曾经重新读取其配置文件。您可能必须停止/重新启动dnsmasq

  • 当它收到 SIGHUP 时,dnsmasq 清除其缓存,然后重新加载 /etc/hosts 和 /etc/ethers 以及 --dhcp-hostsfile、--dhcp-hostsdir、--dhcp-optsfile、--dhcp 给出的任何文件-optsdir、--addn-hosts 或--hostsdir。为所有现有的 DHCP 租约调用 dhcp 租约更改脚本。如果设置了 --no-poll SIGHUP 还会重新读取 /etc/resolv.conf。**SIGHUP 不会重新读取配置** 文件。 (2认同)