OS X下能访问网页但ping不通域名

昨晚碰到一个奇葩的问题,所有网页的浏览都正常,QQ也正常,明明可以打开网站,但是ping那个网站就是显示不通,无法解析。一看就知道本地的DNS查找有问题,修改了reslov.conf加了8.8.8.8还是没用,这我就纳闷了。还有奇怪的,QQ音乐和AppStore也打不开,都是无法连接网络。但是我用nslookup都是可以的,直接pingIP也是没问题。这真是诡异了,今天无意中发现了mDNSResponder
这个东西,这个东西估计是MAC OS X自定义的一个DNS解析,linux下是没这个的,直接就是根据hosts和resolv.conf来解析的。我ps aux了下没发现有这个程序在跑,我就找到/System/Library/LaunchDaemons/com.apple.mDNSResponder.plist,发现里面是启动/usr/sbin/mDNSResponder的设置,我手动运行了还是不对。然后查看了下系统日志,/var/log/system.log

Nov 29 10:22:42 localhost configd[18]: DNSServiceCreateConnection(&dnsMain) failed, error = -65563
Nov 29 10:22:42 localhost configd[18]: dnssd_clientstub ConnectToServer: connect()-> No of tries: 1
Nov 29 10:22:42 localhost SafariDAVClient[258]: dnssd_clientstub ConnectToServer: connect() failed Socket:10 Err:-1 Errno:2 No such file or directory
Nov 29 10:22:42 localhost SafariDAVClient[258]: tcp_connection_host_start 2 DNSServiceGetAddrInfo failed: -65563

这下子就找到问题了,就是/System/Library/LaunchDaemons/com.apple.mDNSResponder.plist这个配置文件有问题,我拿别人的diff了一下,没什么问题。后来才发现是所有者有问题
chown root:wheel /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist

这时候mDNSResponder立马就起来了。。。所有的ping都正常了。

我觉得这个设计真心好坑爹,和unix的一个模块做一个功能的设计不怎么符合。linux有hosts和resolv已经能全部解决了,而MAC OS X下的ping则是根据mDNSResponder去查找的。。。一旦这个挂了,用户就很难发现。

标签:none

评论已关闭