解决 Ubuntu 16.10 上频繁的 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 聊聊,或者关注我的个人公众号“大象工具”, 查看更多联系方式