为什么DNS解析在第一次尝试时不起作用?
自从升级到16.04后,DNS解析在第一次尝试任何网站时失败(返回Host Not Found)。 然后我可以立即尝试第二次,它工作得很好。
一点背景:
- 我的网络上有一台运行旧版Ubuntu的服务器和一台Windows PC。 这两个都不受影响(使用与问题计算机相同的DNS服务器)。
- 在网上闲逛之后,我接受了某人的建议
删除并清除resolvconf。 这解决了问题…直到我
重新启动。 然后DNS解析根本不起作用(我修复了它,但现在回到原点)。
在我有限的理解中,似乎正在发生的事情是,当一个新网站的查询进入本地DNS缓存(resolvconf?)时,它不在缓存中,因此回复为空。 然后,当同一个查询再次出现时,某个进程同时解析了地址并更新了缓存,因此缓存会回复该地址。
我想要的是,如果请求的地址不在缓存中,它将在第一次回复之前找到它。 任何人都可以告诉我如何实现这一目标吗?
这是dig(第一次)的输出:
~$ dig www.foo.com ; <> DiG 9.10.3-P4-Ubuntu <> www.foo.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 6505 ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;www.foo.com. IN A ;; Query time: 23 msec ;; SERVER: 127.0.1.1#53(127.0.1.1) ;; WHEN: Thu Jun 02 13:44:49 JST 2016 ;; MSG SIZE rcvd: 34
几秒钟后,这里是dig的输出(第二次):
~$ dig www.foo.com ; <> DiG 9.10.3-P4-Ubuntu <> www.foo.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 53490 ;; flags: qr rd ra ad; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;www.foo.com. IN A ;; ANSWER SECTION: www.foo.com. 14310 IN CNAME foo.com. foo.com. 210 IN A 192.0.79.33 foo.com. 210 IN A 192.0.79.32 ;; Query time: 0 msec ;; SERVER: 127.0.1.1#53(127.0.1.1) ;; WHEN: Thu Jun 02 13:46:19 JST 2016 ;; MSG SIZE rcvd: 92
我面临同样的问题。 我现在使用的解决方法是:
-
打开网络管理器配置文件:
sudo nano /etc/NetworkManager/NetworkManager.conf
-
修改以下行:
#dns=dnsmasq
-
保存并重新启动管理器:
sudo service NetworkManager restart
我面临同样的问题。 我现在使用的解决方法是在我的/etc/resolv.conf中添加辅助DNS服务器:
# 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 nameserver 127.0.0.1 nameserver 192.168.1.1 search lan
另外我安装了dnsmasq来缓存任何dns查询。 因此所有请求首先转到dnsmasq(127.0.0.1),如果域没有缓存,请求转到192.168.1.1(我的路由器也运行dns服务器,你当然可以使用像8.8.8.8这样的东西)
我知道这种解决方法并不理想 – 但它现在有效。 顺便说一句,我还使用了全新安装的Ubuntu 16.04
- 如何使用USB将Android 7.1连接到Ubuntu Linux?
- 我从我的统一发射器解锁了“文件”按钮/图标,现在它消失了,我无法恢复或取回它
- 如何让Apache使用PHP 7.0(而不是7.1)?
- 在Apache上安装auth_mellon模块时出现语法错误
- Ubuntu 4K准备好了吗?
- 使用RTL8723BE无线网络适配器从Ubuntu 16.04创建的Hotspot速度很慢
- PulseAudio无法将卡配置文件设置为“a2dp_sink”。 我怎样才能看到日志并弄清楚什么是错的?
- 启动错误pch转码器上未清除的pch fifo underrun
- 在Ubuntu 16.04中安装ubuntu-gnome-desktop之后如何将unity设置为默认值?