工作桌面刚刚迁移到Ubuntu,遇到一个怪异到问题,Ubuntu解析外网正常,但不能解析内网域名(.local结尾的域名)。下面是我解决问题的过程。
已知的现象,如下:
1.由于我在Ubuntu上安装到XP,在XP上通过NAT网络链接可以正常解析内网域名。
2.在Ubuntu用dig命令可以正常解析到内网域名
3.ping 内网域名无法ping通
通过以上三点可以看出内网DNS解析是ok的(XP虚拟机能解析内网)。但是Ubuntu上ping内网域名不能解析,而dig能正常解析。域名解析顺序:本地hosts文件解析,DNS服务器解析。可以判定很可能是Ubuntu系统在解析域名相关记录。猜想有可能所域名解析被系统服务给劫持了。但不知道如何下手,于是google了下关键字 Ubuntu local 。得到该文章
文中提到可能和avahi相关。avahi什么东东?搜之得一下结果:Avahi 是 zeroconf 协议的实现。它可以在没有 DNS 服务的局域网里发现基于 zeroconf 协议的设备和服务。它跟 mDNS 一样。除非你有兼容的设备或使用 zeroconf 协议的服务,否则应该关闭它。
用ps -ef|grep avahi 查看了下。果然有该服务。利用sudo service avahi-daemon stop 关闭该服务后,ping 内网域名,能够ping通。