我正在运行Debian Jessie,并且试图将dnsmasq配置为缓存DNS服务器。我使用了一个指南来提出以下内容/etc/dnsmasq.conf
:
listen-address=127.0.0.1
bind-interfaces
domain-needed
bogus-priv
no-hosts
dns-forward-max=150
cache-size=1000
neg-ttl=3600
resolv-file=/etc/resolv.dnsmasq
no-poll
这样做sudo service dnsmasq restart
失败,也不会启动,告诉我
Mar 26 17:13:01 user dnsmasq[26743]: dnsmasq: syntax check OK.
Mar 26 17:13:01 user dnsmasq[26746]: dnsmasq: only one resolv.conf file allowed in no-poll mode.
好的,很奇怪,直接从指南中进行的配置失败。我将仅删除该no-poll
选项以查看其是否有效。这次开始一切正常,但是DNS解析显然失败了。相关文件:
/etc/resolv.conf
:
nameserver 127.0.0.1
/etc/resolv.dnsmasq
:
nameserver 8.8.8.8
/var/run/dnsmasq/resolv.conf
:
nameserver 127.0.0.1
第三个文件似乎是dnsmasq的实时resolv.conf文件,因为在dnsmasq已经运行时向其添加名称服务器行会导致DNS解析立即开始工作。所以看起来它忽略了我的/etc/resolv.dnsmasq
。我还尝试了向其添加名称服务器行/etc/resolv.conf
并删除其中的resolv-file
行/etc/dnsmasq.conf
,但是这样做后,它立即被您上面看到的内容覆盖sudo service dnsmasq restart
。
dnsmasq怎么回事,我是否将dnsmasq配置为缓存DNS服务器?
no-poll
基本上说忽略了resolv-file
。在启动时,它将采用哪个较新的文件,/etc/resolv.conf
以您的情况为准(因为在某些更改时它会被重写)。
server=8.8.8.8
dnsmasq配置?