解决 Ubuntu 16.10 上频繁的 DNS 解析失败

更新日期: 2017-01-18 阅读次数: 16612 分类: DNS

最近一个月,在 Ubuntu 16.10 上使用 Chrome 浏览网页,经常出现 DNS 解析失败的情况。错误信息诸如

  • DNS_PROBE_FINISHED_NXDOMAIN
  • ERR_NAME_NOT_RESOLVED

奇怪的是,只有部分域名会出现该错误。例如,baidu.com 及其所有子域名。

通过 dig +trace 排除了授权 DNS 的问题。

将 network connections 里的 DNS 服务器修改成了 114.114.114.114, 8.8.8.8 还是无济于事。

又尝试了修改 /etc/resolv.conf ,但是会被系统自动还原成 127.0.0.1

Google 了一下类似问题,发现都是通过禁用掉 dnsmasq 来解决的。。。难道 Ubuntu 已经内置了 dnsmasq?

  • 禁用 dnsmasq 这种方案很傻逼
  • Ubuntu 为何要内置 dnsmasq?

先确认一下

ps axwu | grep dns 
dnsmasq   2560  0.0  0.0  54828  2936 ?        S    07:54   0:00 /usr/sbin/dnsmasq -x /run/dnsmasq/dnsmasq.pid -u dnsmasq -r /run/dnsmasq/resolv.conf -7 /etc/dnsmasq.d,.dpkg-dist,.dpkg-old,.dpkg-new --local-service --trust-anchor=.,19036,8,2,49AAC11D7B6F6446702E54A1607371607A1A41855200FD2CE1CDDE32F24E8FB5
nobody    3393  0.0  0.0  54828  4212 ?        S    07:54   0:00 /usr/sbin/dnsmasq --no-resolv --keep-in-foreground --no-hosts --bind-interfaces --pid-file=/var/run/NetworkManager/dnsmasq.pid --listen-address=127.0.1.1 --cache-size=0 --conf-file=/dev/null --proxy-dnssec --enable-dbus=org.freedesktop.NetworkManager.dnsmasq --conf-dir=/etc/NetworkManager/dnsmasq.d

果然如此,打开 /etc/dnsmasq.conf 发现,里面啥也没有配置。。。那默认的 upstream servers 是啥???

想起之前因机房内 DNS 服务器负载过高,使用 dnsmasq 解决的案例,使用 dnsmasq 保证本地 DNS 服务的稳定性

参考之前写的自动脚本,把 Ubuntu 16.10 Desktop 内置的 dnsmasq 调整了一下

cat <<DNSMASQ_CONF > /etc/dnsmasq.conf
listen-address=127.0.0.1
resolv-file=/etc/dnsmasq.resolv.conf
all-servers
cache-size=1000
local-ttl=60
clear-on-reload
no-negcache
DNSMASQ_CONF

cat <<DNSMASQ_RESOLV_CONF > /etc/dnsmasq.resolv.conf
nameserver 114.114.114.114
nameserver 182.254.116.116
nameserver 119.29.29.29
DNSMASQ_RESOLV_CONF

/etc/init.d/dnsmasq start

182.254.116.116,119.29.29.29 是腾讯的 public DNS。这3个 nameserver 的组合我还是非常放心的,在腾讯的时候用过一年,没有出现过问题。

解析失败问题暂时不见了,再观察一段时间。

领取阿里云/腾讯云服务器优惠券

关于作者

我是来自山东烟台的一名开发者,喜欢瞎折腾,顺便记记笔记。有敢兴趣的话题,欢迎加微信 zhongwei 聊聊, 查看更多联系方式。 白天写程序,晚上哄熊孩子,可能回复有点慢,见谅。同时也欢迎关注我的微信公众号“大象工具”: 大象工具微信公众号

相关文章

谈笑风生

qingliu

感谢,这个问题困扰了我很久啊。按照此方法修改后再看看情况,谢谢!

大象腿

客气!dnsmasq 是个神器,不过放在桌面系统有点让人意外了

爱评论不评论

近期节日

2020年11月26日 感恩节
2020年12月01日 世界艾滋病日
2020年12月03日 国际残疾人日
2020年12月07日 大雪
2020年12月09日 "一二九"运动纪念日
2020年12月09日 世界足球日
2020年12月10日 世界人权日
2020年12月12日 西安事变纪念日
2020年12月13日 南京大屠杀
2020年12月20日 澳门回归日
2020年12月21日 国际篮球日
2020年12月21日 冬至
查看更多节日