Ubuntu16.04域名解析慢排查

环境

* Ubuntu Desktop 16.04.3

现象

* ping t.cn 需等待数秒钟才开始正常显示ping包列表。

排查

* 确保网络正常,ping <ip>

* Google找答案,可能是 /etc/nsswitch.conf 中hosts字段配置有问题,经多次修改,发现无任何改善,因此可能此处有问题,

  1. hosts:  files mdns4_minimal [NOTFOUND=return] dns

* Ubuntu Desktop默认使用NetWork Manager管理网络,因此分析其配置,发现最后一个配置出错。

确保/etc/network/interfaces文件中只有本地环回的内容,例如

  1. auto lo  
  2. iface lo inet loopback  
保证network-manager处于开启状态,打开配置文件/etc/NetworkManager/NetworkManager.conf, 配置文件的内容为:
  1. [main]  
  2. plugins=ifupdown,keyfile  
  3. dns=dnsmasq  

 

  1. [ifupdown]  
  2. managed=true # true 说明处于开启状态,false表明处于未开启状态。本次问题就出在此,需要将其设置为true

修改后重启网络相关。

  1. sudo systemctl restart NetworkManager.service
  2. sudo systemctl restart networking.service   #非必需

背景知识

dnsmasq的作用

因为 ubuntu下有一个本地的dns服务叫做dnsmasq,它是由NetworkManager控制的

ps -ef | grep dnsmasq

你就可以看到它监听的本地地址,--listen-address=127.0.1.1 (ubuntu12.04及之前的版本 是 127.0.0.1), 这个地址是一个本地回环地址

而你真实的dns服务器地址,是被这个服务管理维护着的

  1. local process -> local dnsmasq -> router -> ISP dns
 
posted @ 2017-12-27 17:39  Honghe  阅读(2263)  评论(0编辑  收藏  举报