AppleDNS 是 GitHub 上针对 Apple 服务进行加速的一个项目。具体来说,AppleDNS 项目通过收集 Apple 在全中国几乎所有省级行政区的 CDN IP 列表,能够解决以下 Apple 服务在国内部分地区速度缓慢的问题:
出于隐私、安全以及系统稳定性方面的考虑,项目作者未在加入 iCloud 与 Apple ID 相关的域名。由于 iTunes 大规模启用了 HTTPS 的连接方式,你也大可不必担心作者会通过此项目获取个人敏感信息。
由于 Apple DNS 项目提供了自动生成配置形式的 Python 脚本文件,运行脚本需要电脑中安装有 Python 软件。
Python 目前有 Python 2 以及 Python 3 两个版本,如果你正在使用 Mac,系统是 OS X 10.8 或者以上版本,系统已经自带了 Python 2.7。你可以在终端中运行下列命令查看当前系统默认的 Python 版本:
python -V
当然,如果你想安装并使用 Python 3,你可以前往 Python 官网 下载安装包安装。或者,你可以根据 《借助 Homebrew Cask,教你快速下载安装 Mac App 新姿势》 一文中的方法搭建 Homebrew 环境,通过 Homebrew 安装 Python 3,命令如下:
brew install python3
Apple DNS 支持通过运行项目文件夹内的 Python 脚本自动生成各种形式的配置(Surge、hosts、Merlin),只要将生成的配置加入相应配置文件内并放至对应位置即可生效。
在开始操作前,你需要在 项目首页 下载项目文件。这里假设你的项目文件夹存放于桌面,你只要在终端内依次运行下列命令即可完成配置的生成。
cd ~/Desktop/AppleDNS-master
- 切换到 Apple DNS 项目文件夹 python3 fetch-timeout.py --payload ChinaUnicom.json
- 多线程测速脚本,最后一项参数为对应运营商,示例代码以中国联通为例,电信 / 移动运营商对应参数为 ChinaNet/CMCC。 测速需要一定的时间,请耐心等待。 python3 export-configure.py --target hosts
- 示例代码表示生成需要的 hosts 配置,Surge/Merlin 配置对应参数为 Surge/Merlin。 cd ~/Desktop/AppleDNS-master
python fetch-timeout-py2.py --payload ChinaUnicom.json
- 最后一项参数为对应运营商,示例代码以中国联通为例,电信 / 移动运营商对应参数为 ChinaNet/CMCC。 测速需要一定的时间,请耐心等待。 python export-configure.py --target hosts
如果你是 Apple Music 重度用户,我建议完成上述操作后继续执行以下步骤,并将终端中的结果替换掉之前 aod.itunes.apple.com
、 streamingaudio.itunes.apple.com
两个域名中的 IP:
python3 fetch-timeout.py --payload Music.json
python3 export-configure.py --target surge
Python 2 使用下面的命令:
python fetch-timeout.py --payload Music.json
python export-configure.py --target surge
这里以 hosts 的配置方式为例,介绍一下配置文件的使用方法:
输入以下命令并执行,根据提示输入密码:
sudo vi /etc/hosts
:wq
然后回车,即可保存 hosts 的配置。 P.s.建议完成设置之后,清理一下 DNS 缓存,具体方法为:
sudo killall -HUP mDNSResponder
OS X 操作系统 ipconfig /flushdns
Windows 操作系统 相信你也注意到了,AppleDNS 能够用于网络调试工具 Surge,Surge 用户可在配置文件 [Rule]
模块前新建 [Host]
模块,将生成的配置放入 [Host]
之后、 [Rule]
模块之前即可。
如果你对于上述方法存在疑问,你也可以下载这份 示例文件 进行研究。