如何从命令行选择最快的镜像?

如何从命令行选择最快的镜像?

我想sources.list在全新安装的 Ubuntu Server 中通过命令行使用最快的服务器更新我的文件。我知道使用 GUI 很容易做到这一点,但似乎没有简单的方法可以通过命令行做到这一点?

答案1

你不必再进行任何搜索 - 因为阿吉米奇解释,您可以使用deb mirror它来自动为您挑选最佳的镜像。

apt-get现在支持一种“镜像”方法,可以根据您的位置自动选择合适的镜像。输入:

deb mirror://mirrors.ubuntu.com/mirrors.txt precise main restricted universe multiverse
deb mirror://mirrors.ubuntu.com/mirrors.txt precise-updates main restricted universe multiverse
deb mirror://mirrors.ubuntu.com/mirrors.txt precise-backports main restricted universe multiverse
deb mirror://mirrors.ubuntu.com/mirrors.txt precise-security main restricted universe multiverse

文件顶部的内容/etc/apt/sources.list应该是让它根据您的地理位置自动为您选择镜像所需的全部内容。

Lucid (10.04)、Maverick (10.10)、Natty (11.04) 和 Oneiric (11.10) 用户可以将其替换precise为适当的名称。

答案2

这是一种永远有效的方法,使用古老的方法netselect和一些grep魔法:

终端成瘾者的“寻找最佳服务器”黑客技术!

  • 下载并dpkg -i netselect适合您的架构来自 Debian 网站。(大约 125 KB,无依赖项)

  • 用这个找到你所在位置最快的 Ubuntu 镜像,要么是最新的,要么最多落后六个小时(我将在下面解释,抱歉它在 Markdown 中不能很好地分开)

    sudo netselect -v -s10 -t20 `wget -q -O- https://launchpad.net/ubuntu/+archivemirrors | grep -P -B8 "statusUP|statusSIX" | grep -o -P "(f|ht)tp://[^\"]*"`
    
  • netselect

    1. -v让它有点冗长——你想看到进度点和消息,告诉你映射到同一 IP 的不同镜像被合并了:)
    2. -sN控制最后需要多少个镜像(例如前 10 个镜像)
    3. -tN是每个镜像进行速度测试的时间(默认值为 10;数字越高,所需时间越长,但结果越可靠。)
  • 这是反引号的内容(不要粘贴,仅用于解释)

    wget -q -O- https://launchpad.net/ubuntu/+archivemirrors \
    | grep -P -B8 "status(UP|SIX)" \
    | grep -o -P "(f|ht)tp://[^\"]*"
    
    1. wget从以下位置获取最新的镜像状态https://launchpad.net/ubuntu/+archivemirrors
    2. 第一个grep提取最新的或落后六小时的镜像,以及 8 行先前的上下文,其中包括实际的 ftp/http URL
    3. 第二个grep提取这些 ftp/http URL

以下是来自美国加利福尼亚州的示例输出:

 60 ftp://mirrors.se.eu.kernel.org/ubuntu/
 70 http://ubuntu.alex-vichev.info/
 77 http://ftp.citylink.co.nz/ubuntu/
279 http://ubuntu.mirrors.tds.net/pub/ubuntu/
294 http://mirror.umd.edu/ubuntu/
332 http://mirrors.rit.edu/ubuntu/
364 ftp://pf.archive.ubuntu.com/ubuntu/
378 http://mirror.csclub.uwaterloo.ca/ubuntu/
399 ftp://ubuntu.mirror.frontiernet.net/ubuntu/
455 http://ubuntu.mirror.root.lu/ubuntu/

“等级”是一个任意指标;通常等级越低越好。

如果你想知道为什么 kernel.org 瑞典-欧盟镜像和新西兰镜像位列前三加利福尼亚州,好吧,我也是 ;-) 事实是,netselect当多个镜像映射到单个 IP 时,并不总是选择最合适的 URL 来显示;数字 3 也称为nz.archive.ubuntu.com

答案3

根据你的 IP 地址,根据 mirrors.ubuntu.com 选择最佳镜像(按下载速度):

curl -s http://mirrors.ubuntu.com/mirrors.txt | xargs -n1 -I {} sh -c 'echo `curl -r 0-102400 -s -w %{speed_download} -o /dev/null {}/ls-lR.gz` {}' |sort -g -r |head -1| awk '{ print $2  }'

答案4

这里有一个Python 脚本我写道,找到具有最低 TCP 延迟的镜像。

脚本还提供从以下位置获取的带宽和状态数据发射台,并将sources.list自动生成一个新文件或使用从列表中选择的镜像。

一个使用示例,可​​让您从 5 个对您的机器具有最低延迟的美国镜像中进行选择:

$ apt-select --country US -t 5 --choose

相关内容