选择最快的apt镜像网站

在Ubuntu系统中安装软件,通过选择最快的镜像软件仓库可以提高效率。

国家代码

最简单实现加速软件仓库软件包下载的方法是确保在/etc/apt/sources.list中Ubuntu镜像定义包含相关的国家代码最接近你所在的位置。例如,你可以在/etc/apt/sources.list中找到美国的Ubuntu镜像

deb http://us.archive.ubuntu.com/ubuntu/ xenial main restricted

如果你不在美国,可以将us替换成你所在国家,例如cn表示中国,可以修改成

deb http://cn.archive.ubuntu.com/ubuntu/ xenial main restricted

使用镜像协议

/etc/apt/sources.list中使用镜像协议可以使得apt命令从你所在国家获取镜像。

例如,将/etc/apt/sources.list中配置的协议http://修改成mirror://。即,将:

deb http://us.archive.ubuntu.com/ubuntu/ xenial main restricted

修改成

deb mirror://mirrors.ubuntu.com/mirrors.txt xenial main restricted

重复以上修改,将整个/etc/apt/sources.list中的http://都修改成mirror://。也可以使用如下sed命令一次修改完成:

sudo sed -i -e 's/http:\/\/us.archive/mirror:\/\/mirrors/' -e 's/\/ubuntu\//\/mirrors.txt/' /etc/apt/sources.list

手工apt镜像选择

以上是简单的选择快速镜像的方法。然而,也可以手工选择镜像网站。

以下是使用wget命令获取apt ubuntu mirrors:

wget -qO - mirrors.ubuntu.com/mirrors.txt

然后手工修改/etc/apt/sources.list

使用netselect选择最快镜像网站

netselect软件包可以从Debian stable仓库获取:

sudo apt-get install wget

wget http://ftp.au.debian.org/debian/pool/main/n/netselect/netselect_0.3.ds1-26_amd64.deb

sudo dpkg -i netselect_0.3.ds1-26_amd64.deb

然后就可以通过netselect命令通过ping icmp延迟定位到最快的镜像网站。

sudo netselect -s 20 -t 40 $(wget -qO - mirrors.ubuntu.com/mirrors.txt)

例如你会看到类似如下输出:

12 http://ubuntu.uberglobalmirror.com/archive/
20 http://ubuntu.mirror.serversaustralia.com.au/ubuntu/
21 http://ubuntu.mirror.digitalpacific.com.au/archive/
...

然后你就可以手工修改/etc/apt/sources.list将最快的结果替换软件安装源。也可以使用sed命令替换:

sudo sed -i 's/http:\/\/us.archive.ubuntu.com\/ubuntu\//http:\/\/ubuntu.uberglobalmirror.com\/archive\//' /etc/apt/sources.list

参考

Last updated