我不知道为什么他们要做出这样的改变,但这使我发疯了一段时间。
我不知道为什么主机能正常运行,但无法ping通,但我认为这与这两个实用程序的性质有关。Ping是一个简单(尽管非常有用)的诊断实用程序,用于将应回送给您的数据包丢到网上。主机名查找功能只是这项工作的副作用,已移交给系统的递归解析器(我相信-我尚未通过检查链接库或任何此类的内容来进行验证)。主机的主要工作是进行DNS名称解析,因此它实现了自己的递归解析器。
苹果的递归解析器是mDNSResponder。出于某种原因,Lion中的mDNSResponder版本需要“ -AlwaysAppendSearchDomains”命令行选项才能像在Snow Leopard中一样运行(至少)。
这是修复它的快速方法:
sudo sed -i .orig '/ProgramArguments/,/<\/array>/ {
s/\(<string>-launchd<\/string>\)/\1\
<string>-AlwaysAppendSearchDomains<\/string>/
}' /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
(上面倒数第二行的开头应该有两个制表符,但是我不知道如何让这个小小的编辑器插入制表符,所以我添加了16个空格。这两个都应该可以,但是制表符更适合原始文件的间距。)
这会将“ -AlwaysAppendSearchDomains”参数添加到mDNSResponder启动plist文件中(并保存备份副本),但是由于这是由启动控制的,因此需要告知该系统重新启动mDNSResponder。
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
现在,如果您检查正在运行的mDNSResponder进程,则应该看到它使用新参数运行:
ps auxww | grep mDNSResponder
(有关http://www.makingitscale.com/2011/fix-for-broken-search-domain-resolution-in-osx-lion.html和http://kavassalis.com/2011/07/wtf-bug的道具,-in-os-x-10-7 /,我找到了这个问题的答案。)