今天打开 iTunes,提示我有更新,是否下载,点了下载之后,Mac 的软件更新程序开始运行。但是过了一会它告诉我,你的软件已经是最新的,刚才明明 iTunes 自己说有更新的!于是我突然想起前几天在 twitter 上好像有人说 Mac 软件更新不了。我第一反应就是软件更新需要连接的 apple 服务器被封掉了 (事实证明不是),决定花点时间弄清楚这个问题。
懒得往下看的直接使用解决办法:
在 /etc/hosts 文件添加一行: 80.67.74.160 swcdn.apple.com 有兴趣的请继续……
首先 Google 这个问题,确实已经有不少用户开始在各个论坛上抱怨了,包括苹果的官方论坛,但是似乎没有让人满意的答复,大多数人都说把几个 com.apple.SoftwareUpdate.plist 文件删掉然后重启 Mac 试试 – 你不用试了,没用的。
从苹果官方网站的文章看到,Mac 软件更新需要连接的服务器有:
http://swscan.apple.com http://swquery.apple.com http://swdownload.apple.com http://swcdn.apple.com Google swscan.apple.com, 第一条结果即是重要线索,该页面可以正常打开,说明此域名没有问题。页面上有好多 URL,域名都是 swcdn.apple.com,随便复制一个打开,都会首先显示 page not found, 然后跳到该域名的首页。这是一个 domain parking page,顶部还显示“您的域名已经到期,请联系您的服务商续费”。
dig 的结果很有趣:
$ dig swcdn.apple.com ; <<>> DiG 9.6.0-APPLE-P2 <<>> swcdn.apple.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 18722 ;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 2, ADDITIONAL: 2 ;; QUESTION SECTION: ;swcdn.apple.com. IN A ;; ANSWER SECTION: swcdn.apple.com. 1178 IN CNAME swcdn.apple.com.akadns.net. swcdn.apple.com.akadns.net. 279 IN CNAME swcdn.apple.com.edgesuite.net. swcdn.apple.com.edgesuite.net. 19178 IN CNAME swcdn.apple.com.edgesuite.net.globalredir.akadns.net. swcdn.apple.com.edgesuite.net.**globalredir**.akadns.net. 279 IN CNAME a1562.ce.w.ytcdn.net. a1562.ce.w.ytcdn.net. 1179 IN A 74.63.75.122 ;; AUTHORITY SECTION: ytcdn.net. 59910 IN NS **dns6.expirenotification.com**. ytcdn.net. 59910 IN NS **dns5.expirenotification.com**. ;; ADDITIONAL SECTION: dns5.expirenotification.com. 2803 IN A 67.159.44.159 dns6.expirenotification.com. 377 IN A 67.159.44.159 ;; Query time: 6 msec ;; SERVER: 124.207.160.106#53(124.207.160.106) ;; WHEN: Sat May 15 23:33:33 2010 ;; MSG SIZE rcvd: 305 看来应该不是常见的 DNS 投毒。我没搞清楚 ytcdn.net 到底是谁的,可能是属于 akamai 的,也有可能是 Akamai 在中国的合作伙伴。在域名解析之后,我们的请求被分配给 ytcdn.net 的服务器了。注意 dig 结果加粗的部分,然后查 ytcdn.net 的 whois 信息,哇,XIN NET 出现了:
...