AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 39922
Accepted
Evan
Evan
Asked: 2011-05-04 22:35:12 +0800 CST2011-05-04 22:35:12 +0800 CST 2011-05-04 22:35:12 +0800 CST

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

  • 772

我想sources.list在全新的 Ubuntu Server 安装中从命令行使用最快的服务器更新我的文件。我知道这对于 GUI 来说非常简单,但似乎没有一种简单的方法可以从命令行完成它?

command-line
  • 14 14 个回答
  • 263004 Views

14 个回答

  • Voted
  1. badp
    2010-10-24T02:31:38+08:002010-10-24T02:31:38+08:00

    您不必再进行任何搜索 - 正如ajmitch解释的那样,您可以使用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为适当的名称。

    • 166
  2. ish
    2012-05-24T22:45:35+08:002012-05-24T22:45:35+08:00

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

    终端瘾君子的“寻找最佳服务器”破解!

    • 从 Debian 网站下载和dpkg -i netselect用于您的架构。(大约 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提取最新的或落后 6 小时的镜像,以及 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并不总是选择最合适的 URL 来显示多个镜像映射到一个 IP;3号也被称为nz.archive.ubuntu.com!

    • 58
  3. KAndy
    2016-01-11T11:40:07+08:002016-01-11T11:40:07+08:00

    Oneliner 根据 mirrors.ubuntu.com 为您的 ip 选择最佳镜像(按下载速度):

    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  }'
    
    • 39
  4. Best Answer
    Rinzwind
    2011-05-04T23:07:34+08:002011-05-04T23:07:34+08:00
    Pakket netselect-apt
    
        dapper (net):使用 netselect 选择最快的 Debian 镜像
        [宇宙]
        0.3.ds1-5:全部
        hardy (net):使用 netselect 选择最快的 Debian 镜像
        [宇宙]
        0.3.ds1-11:全部
    
    Pakket apt-spy
    
        dapper(管理员):根据带宽测试编写 sources.list 文件
        [宇宙]
        3.1-14:amd64 i386 powerpc
    

    由于安全问题,未包含在较新的 Ubuntu 中:请参阅:错误报告

    但是..我通常只是使用ping来找出连接到某个位置的速度。跳数和延迟。

    • 26
  5. John B
    2014-06-11T15:58:31+08:002014-06-11T15:58:31+08:00

    这是我编写的一个Python 脚本,它可以找到 TCP 延迟最低的镜像。

    该脚本还提供从启动板获取的带宽和状态数据,并将自动生成新sources.list文件或使用从列表中选择的镜像。

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

    $ apt-select --country US -t 5 --choose
    
    • 23
  6. Martin X
    2019-10-08T00:52:15+08:002019-10-08T00:52:15+08:00

    对于命令行,您可以使用名为apt-smart的 Python 工具

    一个使用示例,可​​让您列出您所在国家/地区的排名镜像(自动检测):

    $ apt-smart -l
    

    使用-l、 或--list-mirrors,您将获得(Travis CI 美国服务器的示例输出):

    ---------------------------------------------------------------------------------------------------------
    | Rank | Mirror URL                            | Available? | Updating? | Last updated    | Bandwidth   |
    ---------------------------------------------------------------------------------------------------------
    |    1 | http://mirrors.gigenet.com/ubuntua... | Yes        | No        | Up to date      | 1.73 MB/s   |
    |    2 | http://mirror.genesisadaptive.com/... | Yes        | No        | Up to date      | 1.68 MB/s   |
    |    3 | http://ubuntu.mirrors.tds.net/pub/... | Yes        | No        | Up to date      | 1.4 MB/s    |
    |    4 | http://repos.forethought.net/ubuntu   | Yes        | No        | Up to date      | 1.35 MB/s   |
    |    5 | http://repo.miserver.it.umich.edu/... | Yes        | No        | Up to date      | 937.62 KB/s |
    ...
    |   75 | http://mirror.cc.vt.edu/pub2/ubuntu   | Yes        | No        | 1 day behind    | 659.67 KB/s |
    |   76 | http://mirror.atlantic.net/ubuntu     | Yes        | No        | 2 days behind   | 351.26 KB/s |
    |   77 | http://mirror.lstn.net/ubuntu         | Yes        | No        | 4 days behind   | 806.81 KB/s |
    |   78 | http://mirrors.usinternet.com/ubun... | Yes        | No        | 4 weeks behind  | 514.31 KB/s |
    |   79 | http://mirrors.arpnetworks.com/Ubuntu | Yes        | No        | 19 weeks behind | 418.94 KB/s |
    |   80 | http://mirrors.ocf.berkeley.edu/ub... | Yes        | Yes       | Up to date      | 446.07 KB/s |
    ---------------------------------------------------------------------------------------------------------
    Full URLs which are too long to be shown in above table:
    1: http://mirrors.gigenet.com/ubuntuarchive
    2: http://mirror.genesisadaptive.com/ubuntu
    3: http://ubuntu.mirrors.tds.net/pub/ubuntu
    5: http://repo.miserver.it.umich.edu/ubuntu
    ...
    78: http://mirrors.usinternet.com/ubuntu/archive
    80: http://mirrors.ocf.berkeley.edu/ubuntu
    
    

    当然,apt-smart如果您愿意,也可以更改您的 sources.list:

    $ apt-smart -a
    

    使用-a或--auto-change-mirror要发现可用镜像,按连接速度和更新状态对镜像进行排名,然后更新 /etc/apt/sources.list 以使用最佳可用镜像。

    使用-c, 或--change-mirror MIRROR_URL更新 /etc/apt/sources.list 以使用给定的 MIRROR_URL。

    与其他工具相比:

    • apt-smart自动查找您所在的位置,因此您在出国旅行时无需指定国家/地区。
    • apt-smart从每个镜像进行真正的 HTTP 下载以获得更准确的结果(带宽和状态)并支持 HTTP 代理,而不是使用ping和依赖启动板的不准确数据。
    • apt-smart正在维护中,而大多数其他工具很长一段时间都无法解决问题。

    apt-smart您可以通过轻松安装pip,有关详细的 copy'n'paste 安装命令和用法,请参阅项目自述文件。

    披露:我是 的作者apt-smart,它是apt-mirror-updater.

    • 10
  7. tentaculo
    2013-05-15T08:56:34+08:002013-05-15T08:56:34+08:00

    我开发了一个简单的基于 ping 的 nodejs 脚本,它测试 mirrors.ubuntu.com/mirrors.txt 上列出的服务器并返回最快的一个:

    sudo npm install -g ffum
    ffum
    

    如果您觉得它有用或有任何建议,请告诉我(=

    • 5
  8. copeland3300
    2016-10-30T13:35:34+08:002016-10-30T13:35:34+08:00

    我知道这并不能直接回答 OP 的问题,但是 Ubuntu 的桌面/GUI 版本中有一个按钮可以为您找到最佳镜像。它似乎工作得很好,所以我简要地研究了一下,但没有时间跟进。

    我提出它的原因是因为我认为将其制成命令行实用程序会非常简单且可用。

    如果有人感兴趣,测试似乎位于:

    /usr/lib/python3/dist-packages/softwareproperties/MirrorTest.py
    

    再说一次,这就是我所能得到的,但我想我会把它留在这里以防万一有人想要它。当我有更多时间时,我可能会重新考虑它。

    • 5
  9. ntc2
    2019-01-20T14:34:54+08:002019-01-20T14:34:54+08:00

    查找快速镜像的命令

    在Ubuntu 18.04上,我通过运行得到了很好的结果

     python /usr/lib/python3/dist-packages/softwareproperties/MirrorTest.py
    

    这打印了一个按“时间”组织的镜像列表(未解释),然后我使用了它排名最高的镜像之一。

    更多细节

    /etc/apt/sources.list对我来说,通过将它们设置为我的镜像然后执行该命令来测试该命令输出的一些顶级结果很有用

    time sudo apt update
    

    查看从该镜像下载软件包列表需要多长时间。我测试了前三个建议,它们都很快,但其中一个在测试中是另外两个的两倍time sudo apt update。

    这是来自的示例输出python /usr/lib/python3/dist-packages/softwareproperties/MirrorTest.py:

    mirror: es-mirrors.evowise.com - time: 0.183778047562
    mirror: it-mirrors.evowise.com - time: 0.18604683876
    mirror: la-mirrors.evowise.com - time: 0.192630052567
    mirror: ny-mirrors.evowise.com - time: 0.208723068237
    mirror: mirrors.accretive-networks.net - time: 0.385910987854
    mirror: mirror.team-cymru.org - time: 0.46785402298
    mirror: mirrors.psu.ac.th - time: 1.64231991768
    and the winner is: es-mirrors.evowise.com
    
    • 3
  10. david
    2016-04-10T23:58:52+08:002016-04-10T23:58:52+08:00

    获得最快镜像的最简单有效的方法是使用 aptmirror://源,请参阅

    https://mvogt.wordpress.com/2011/03/21/the-apt-mirror-method/

    • 0

相关问题

  • 如何从命令行仅安装安全更新?关于如何管理更新的一些提示

  • 如何从命令行刻录双层 dvd iso

  • 如何从命令行判断机器是否需要重新启动?

  • 文件权限如何工作?文件权限用户和组

  • 如何在 Vim 中启用全彩支持?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    我需要什么命令来解压缩/提取 .tar.gz 文件?

    • 8 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Marko Smith

    如何使用命令行将用户添加为新的 sudoer?

    • 7 个回答
  • Marko Smith

    更改文件夹权限和所有权

    • 9 个回答
  • Martin Hope
    EmmyS 我需要什么命令来解压缩/提取 .tar.gz 文件? 2011-02-09 14:50:41 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve