1.本文讨论的问题仅在 OS X Yosemite 10.10.2 上测试过,按照理论应该不会造成你的系统崩溃,但是如果造成了,本文以及本人不负任何直接、间接或者连带责任。
2.如果你需要指出本文的错误,请友善一些,因为我犯的错多了去了,不会吃你家饭的。
3.原则上本人不会牺牲个人时间对你的问题进行一对一的解答,如果你有问题,欢迎在评论里提出。
========================================
OS X Yosemite 是一个漂亮的系统,但是也是一个 bug 较多较为影响使用的系统。如果你升级上来并且用了一段时间想要退回 Mavericks 的话,你会发现有很多东西会用不了(iWorks 文档、iCloud Drive),真的没有回头路,所以遇到问题必须哭着解决。
在这么多问题中,出现得最多最讨厌的问题就是 WiFi 链接和上网的问题。你会发现在10.10.1里有一定几率 Safari 会完全失去响应或者上网的能力,这点出现得非常频繁,以我的 Mac 为例,我在10.10.1的时候是每天都要重启的,而苹果发布了10.10.2修复了一些问题,但也偶尔会很讨厌。
而且最糟糕的是,使用 ss 来科学上网的同学们,会发现 pac 偶尔会失效(读不懂这句没关系)
【nerd alert】OS X 在10.10使用了 discoveryd 来代替服务了苹果12年的 mDNSResponder 作为系统的 DNS 服务。discoveryd 是C艹来重写的,不是苹果最喜欢用的语言,并且 discoveryd 也没出现在苹果的开源项目上。这个新的 DNS 服务管理器是有一定的 Bug 的。具体的我不赘述了。大家可以 follow 下面这个链接观看:
http://arstechnica.com/apple/2015/01/why-dns-in-os-x-10-10-is-broken-and-what-you-can-do-to-fix-it/
我们下面要做的事情是用 10.9 的 mDNSResponder 来替换漏洞百出的 discoveryd,这个操作是完全可逆的、不会有 bug 的,当然,在系统更新的时候,你可能需要重新应用一下这个操作。
1.在http://pan.baidu.com/s/1nt0xhd3下载这个链接的 zip 并且解压,这个 zip 文件里包括了10.9.5中提取的 mDNSResponder ,helper 程序和相应的 plist,还有一个 shell script 用来快捷替换。
2.将解压的文件夹放在你的桌面上。
3.打开 Finder,按住 Shift+Command+G,在文件路径里输入一个斜杠 / ,进入这个文件夹之后,你可以看到 系统 应用程序 用户 和资源库几个文件夹,这个时候把桌面上刚解压的 mDNSResponder 复制进去,你会被要求输入密码,输入。
4.打开终端,终端可以在 Launchpad 里通过搜索来找到。打开之后输入 cd /mDNSResponder
5.别怕,你现在继续运行两条指令:chmod +x ./mdnsresponder.sh 这条指令是把这个 shell script 变成可执行的文件。
6.然后执行 sudo ./mdnsresponder.sh install,这个时候会让你输入你的管理员密码,输入的时候并不会有任何提示,圆点也没有,输入之后回车就执行了。
7.出现我这上面这样的提示,就重启电脑,完成!在/这个目录下的文件夹可以不用删除,可以方便重新执行。
注意:如果你需要移除这个脚本并重新恢复10.10的默认 DNS 服务,那你则需要在完成第五步之后,不要执行第六步,然后 执行 sudo ./mdnsresponder.sh remove 之后重启电脑。
就这些。