RT, 最近Apple发布了macOS Mojave, 但在更新到macOS Majove时巨慢无比... Apple的这个CDN服务器应该在美国,再加上国内网络情况的各种设定变得十分有意思了。
截张图感受一下
FBEEE1ED-B8FA-4E64-B28B-1B6D0706D451.png
C6B24D4F-EF30-4D55-B7A4-ED6AEBCF4DF0.png
3天18小时... 其实之前有到五六十天,来不及截图了。

解决方法

看到知乎上流传的修改DNS方法,我也实践过。其原理是将Apple更新下载服务器的IP地址替换解析为中国内地的服务器。
但是实际上速度仍在一定程度上无法提升,我对网络进行抓包,发现在点击App Store中的更新按钮后,请求发向了如下地址:

http://222.20.147.168/swcdn.apple.com/content/downloads/49/44/041-08708/vtip954dc6zbkpdv16iw18jmilcqdt8uot/InstallESDDmg.pkg?wshc_tag=1&wsts_tag=5bae2cc1&wsid_tag=d3475ca6&wsiphost=ipdbm

App Store 在发送请求后,被DNS解析到的IP重定向至这个地址。其实在一定程度上是不可靠的。当然由于macOS对升级安装包会有校验机制,但总觉得心里不踏实...?
于是我认为,最legal的解决方法如下:

  1. 抓包,获得 App Store 请求更新包的地址,然后暂停;
  2. 使用第三方工具下载更新包;
  3. 继续下载,但这次请求通过工具定向到本地

为什么不直接在网上搜索现成的安装包下载?由于App Store 在下载安装包后还会进行升级系统前的其他操作,且对于每种型号的Mac可能下载的东西不一样,我们便采用这种方法。

过程

### 抓包
在此之前,请关闭科学上网软件及VPN软件。否则Charles可能无法成功抓包。

  1. 使用 Charles 工具进行抓包。下载地址:https://www.charlesproxy.com/
  2. 将其拖到镜像外运行
  3. 启用Charles的代理(在软件运行后会自动启用)

获得安装包下载地址

  1. 继续下载更新程序
  2. 在Charles中找到地址
    这个地址应以http://swcdn.apple.com/ 开头,如果以其他地址开头,应包含这个地址(存在第三方DNS替换URL行为的可能)Charles界面应如图:

8076128A-8FBD-4A3B-8233-77E6520D313A.png
(其DNS名称为swcdn.g.aaplimg.com)

  1. 注意,你应获取到两个下载地址。一个为系统安装镜像,一个位Recovery系统镜像。文件名如下:
    B9EA35C4-805D-4B8E-B9A9-9C8B35898419.png

在第三方下载软件中下载

迅雷刷刷刷,10MB/s 一会儿就下好了。

使用Charles重定向请求目标

在Charles中右键目标,选择 "Map Local"。
79ADDDF6-2DF5-451B-B2C3-2618D0F4F96C.png
Coooooool!
升级愉快
End.
04747C0E-D798-4288-97A2-13A5F87F5BB9.png

Last modification:October 4th, 2018 at 12:39 pm