我正在运行Arch,设置了NetworkManager和dnsmasq。这一切似乎都很好,除了我尝试使用新的CloudFlare 1.1.1.1 DNS,但是解析器继续使用由我的路由器广告的DNS。名称服务器似乎是添加的,包括我的路由器的IP,请参见下面的内容:
Apr 04 20:02:56 tdewolff dnsmasq[22337]: setting upstream servers from DBus
Apr 04 20:02:56 tdewolff dnsmasq[22337]: using nameserver 2606:4700:4700::1001#53
Apr 04 20:02:56 tdewolff dnsmasq[22337]: using nameserver 2606:4700:4700::1111#53
Apr 04 20:02:56 tdewolff dnsmasq[22337]: using nameserver 1.0.0.1#53
Apr 04 20:02:56 tdewolff dnsmasq[22337]: using nameserver 1.1.1.1#53
Apr 04 20:02:56 tdewolff dnsmasq[22337]: using nameserver 192.168.1.254#53(via wlp4s0)
Apr 04 20:02:56 tdewolff dnsmasq[22337]: using nameserver fe80::1%wlp4s0#53
Apr 04 20:02:56 tdewolff dnsmasq[22337]: cleared cache使用nmcli dev show一致显示:
IP4.DNS[1]: 192.168.1.254
IP6.DNS[1]: fe80::1但是我想使用CloudFlare DNS而不管本地网络(而不必更改每个网络的连接设置)。如何更改DNS查找的顺序,或禁用路由器的解析器?我尝试过将strict-order添加到/etc/NetworkManager/dnsmasq.d/local中,但没有结果。
发布于 2018-04-10 20:24:15
我不使用dnsmasq,但我也有类似的问题。对我来说,解决办法是:
/etc/resolv.conf (参考) # IPv4名称服务器:IPv4 1.1.1.1名称服务器1.0.0.1 # IPv6名称服务器:名称服务器2606:4700:4700:1111名称服务器2606:4700:4700:4700::1001/etc/NetworkManager/NetworkManager.conf (参考) main dns=none来修改您的/etc/resolv.conf可能会重新启动NetworkManager等。如果使用nmcli dev show,它将显示路由器报告的DNS服务器:
IP4.DNS[1]: 192.168.50.1但是,如果您使用nslookup (来自bind-tools in Arch),那么看起来1.1.1.1实际上用于查询:
» nslookup google.com
Server: 1.1.1.1
Address: 1.1.1.1#53
Non-authoritative answer:
Name: google.com
Address: 172.217.9.238
Name: google.com
Address: 2607:f8b0:4006:801::200e配置
我用dnsmasq测试了配置。NetworkManager有一个dnsmasq插件,您可以通过将以下内容放入/etc/NetworkManager/NetworkManager.conf来使用该插件:
[main]
dns=dnsmasq这将从dnsmasq开始使用NetworkManager,并将127.0.0.1放入/etc/resolv.conf (参考)。但是,我没有这样做,因为dnsmasq不是由systemctl管理的,而且您不会自动地以日志记录结束(也许还有一些方法)。
相反,我使用了以下配置(参考):
/etc/NetworkManager/NetworkManager.conf:main dns=none/etc/resolv.conf:名称服务器127.0.0.1/etc/resolv.dnsmasq.conf:# IPv4名称服务器:名称服务器1.0.0.1 # IPv6名称服务器:命名服务器2606:4700:4700::1111命名服务器2606:4700:4700:4700:1001/etc/dnsmasq.conf:resolv-file=/etc/conv.dnsmasq.conf日志-查询重新启动NetworkManager和dnsmasq。现在,验证您的本地名称服务器没有被覆盖:
» cat /etc/resolv.conf
nameserver 127.0.0.1我们也可以质疑NetworkManager:
» cat /run/NetworkManager/resolv.conf
# Generated by NetworkManager
nameserver 192.168.50.1
» nmcli dev show
...
IP4.DNS[1]: 192.168.50.1但是,这些条目似乎只是表示路由器报告了什么,而不一定表示实际用于查询的内容,因为如果我们执行drill google.com,我们就会看到实际上使用了127.0.0.1:
;; Query time: 0 msec
;; SERVER: 127.0.0.1
;; WHEN: Fri Apr 20 11:32:59 2018
;; MSG SIZE rcvd: 44另外,如果如上面所示将log-queries放入/etc/dnsmasq.conf中,那么在运行drill stackoverflow.com两次之后,在journalctl中可以看到:
dnsmasq[27679]: query[A] stackoverflow.com from 127.0.0.1
dnsmasq[27679]: forwarded stackoverflow.com to 1.0.0.1
dnsmasq[27679]: reply stackoverflow.com is 151.101.1.69
dnsmasq[27679]: reply stackoverflow.com is 151.101.65.69
dnsmasq[27679]: reply stackoverflow.com is 151.101.129.69
dnsmasq[27679]: reply stackoverflow.com is 151.101.193.69
dnsmasq[27679]: query[A] stackoverflow.com from 127.0.0.1
dnsmasq[27679]: cached stackoverflow.com is 151.101.193.69
dnsmasq[27679]: cached stackoverflow.com is 151.101.129.69
dnsmasq[27679]: cached stackoverflow.com is 151.101.65.69
dnsmasq[27679]: cached stackoverflow.com is 151.101.1.69第一次询问1.0.0.1,第二次在缓存中找到结果。如果满意,可以从log-queries中删除dnsmasq.conf。
发布于 2018-04-12 22:03:34
一个稍微好一点的方法是为NetworkManager使用一个符号链接,因为它简化了/etc/resolv.conf管理。这是我的发行版(Fedora)中的默认选项,您可以通过查看dns选项在man 5 NetworkManager.conf中签入disto。
首先创建一个包含cloudflare DNS的文件(我使用了/usr/local/etc/resolv.cloudflare.conf),将cloudflare定义为权威DNS:
# IPv4 nameservers:
nameserver 1.1.1.1
nameserver 1.0.0.1
# IPv6 nameservers:
nameserver 2606:4700:4700::1111
nameserver 2606:4700:4700::1001然后将符号链接到该文件,删除现有文件。
sudo rm /etc/conv.conf sudo ln -s /usr/local/etc/conv.Cloudflre.conf/etc/surv.conf
此时,您可以通过以下方法验证名称服务器正在执行正确的操作:
$ dig google.com
; <<>> DiG 9.11.2-P1-RedHat-9.11.2-1.P1.fc26 <<>> google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41906
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1536
;; QUESTION SECTION:
;google.com. IN A
;; ANSWER SECTION:
google.com. 185 IN A 172.217.9.238
;; Query time: 10 msec
;; SERVER: 1.1.1.1#53(1.1.1.1)
;; WHEN: Thu Apr 12 18:00:37 EDT 2018
;; MSG SIZE rcvd: 55注意:如果发行版的NetworkManager对dns=变量有不同的默认设置,那么更新它以包括以下内容。
[main]
dns=symlink然后,如果您创建/etc/resolve.conf / Then符号链接,则resolve.conf将不会更新,
https://serverfault.com/questions/905903
复制相似问题