我正在运行 Xubuntu……
$ cat /etc/issue
Ubuntu 17.04
$ uname -a
Linux intrepid 4.10.0-33-generic #37-Ubuntu SMP Fri Aug 11 10:55:28 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
…并通过无线网络连接。
然而,DNS系统行为异常,偶尔会出现无法解析域名的情况。
当我尝试手动解析某些域名时,出现以下错误:
$ nslookup google.com
Server: 127.0.0.53
Address: 127.0.0.53#53
** server can't find google.com: REFUSED
以下是我的计算机上配置的所有 DNS 服务器的列表:
$ nmcli device show wlp3s0 | grep IP4.DNS
IP4.DNS[1]: 192.168.1.1
IP4.DNS[2]: 8.8.4.4
IP4.DNS[3]: 8.8.8.8
但是,当我尝试解析域名并告诉它直接使用我的路由器作为 DNS 服务器(首先应该自动使用)时,它可以完美地运行:
$ nslookup google.com - 192.168.1.1
Server: 192.168.1.1
Address: 192.168.1.1#53
Non-authoritative answer:
Name: google.com
Address: 173.194.122.238
…
为什么无法解析域名?它默认尝试使用哪个服务器?
我的resolve.conf
看起来像这样:
$ cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
# 127.0.0.53 is the systemd-resolved stub resolver.
# run "systemd-resolve --status" to see details about the actual nameservers.
nameserver 127.0.0.53
如能得到任何提示我将非常感谢!
这是输出$ systemd-resolve --status
。我使用的界面是wlp3s0
。
答案1
我按照@jringoot 在他的评论中所建议的做了:
mv /etc/resolv.conf /etc/resolv.conf_orig
ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
基本上复制了原始的 resolv.conf 文件并创建了另一个文件。
我检查了一下,发现它仍在使用路由器 DNS。
因此我打开文件
vim /etc/resolv.conf
并将名称服务器从路由器 DNS 编辑为 1.1.1.1(CloudFlare DNS),
即填写以下内容:
nameserver 1.1.1.1
当我使用它进行检查时
nslookup google.com
,显示它正在使用我指定的 DNS:
nslookup google.com
Server: 1.1.1.1
Address: 1.1.1.1#53
Non-authoritative answer:
Name: google.com
Address: 172.217.160.14