Как вы выбираете самое быстрое зеркало из командной строки?

Я хочу обновить свой файл sources.list самым быстрым сервером из командной строки при новой установке Ubuntu Server. Я знаю, что это легко сделать с графическим интерфейсом, но, кажется, нет простого способа сделать это из командной строки?

154
задан 7 May 2018 в 13:11

13 ответов

Pakket netselect-apt

    dapper (net): Choose the fastest Debian mirror with netselect 
    [universe]
    0.3.ds1-5: all
    hardy (net): Choose the fastest Debian mirror with netselect 
    [universe]
    0.3.ds1-11: all
Pakket apt-spy

    dapper (admin): writes a sources.list file based on bandwidth tests 
    [universe]
    3.1-14: amd64 i386 powerpc

Не включенный в более новую Ubuntu из-за проблем secturity это кажется: см.: Отчет об ошибках

Но.. Я обычно просто использую ping для обнаружения скорости соединения с некоторым местоположением. Сумма транзитных участков и задержки.

22
ответ дан 7 May 2018 в 13:11

Вам больше не нужно искать - как ajmitch объяснил , вы можете использовать deb mirror, чтобы автоматически выбрать лучшее зеркало для вас.

apt-get теперь поддерживает метод 'mirror', который автоматически выбирает хорошее зеркало в зависимости от вашего местоположения. Поместив:

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 соответствующим именем.

0
ответ дан 7 May 2018 в 13:11

Вот один способ, который всегда будет работать, используя старый добрый netselect и немного магии grep:

Хак терминального наркомана «найди лучший сервер»!

0
ответ дан 7 May 2018 в 13:11

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  }'
0
ответ дан 7 May 2018 в 13:11

Вот скрипт Python , который я написал, который находит зеркала с самой низкой задержкой TCP.

Сценарий также предоставляет данные о полосе пропускания и состоянии, взятые из панели запуска , и автоматически генерирует новый файл sources.list или с использованием зеркала, выбранного из списка.

Пример использования, который позволяет вам выбрать из 5 зеркал США с наименьшей задержкой для вашей машины:

$ apt-select --country US -t 5 --choose
0
ответ дан 7 May 2018 в 13:11

Я знаю, что это не дает прямого ответа на вопрос ОП, но в настольной / графической версии Ubuntu есть кнопка, которая находит лучшее зеркало для вас. Казалось, что это сработало очень хорошо, поэтому я кратко рассмотрел это, но у меня не было времени, чтобы продолжить.

Причина, по которой я поднял этот вопрос, заключается в том, что я думаю, что было бы довольно просто и удобно использовать его как утилиту командной строки.

Если кому-то интересно, похоже, что тест находится в:

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

Опять же, это примерно столько, сколько я получил, но я решил оставить это здесь на тот случай, если кто-то захочет. Я, вероятно, вернусь к этому, когда у меня будет немного больше времени.

0
ответ дан 7 May 2018 в 13:11

Самый простой и эффективный способ получить самое быстрое зеркало - использовать источник apt mirror://, см.

https://mvogt.wordpress.com/2011/03/21/the -apt-зеркальный метод /

0
ответ дан 7 May 2018 в 13:11

Команда, которая находит быстрые зеркала

На 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
2
ответ дан 7 May 2018 в 13:11

Я использую следующее для автоматического выбора зеркал (и отключаю deb-src)

sudo sed -i -e 's%http://archive.ubuntu.com/ubuntu%mirror://mirrors.ubuntu.com/mirrors.txt%' -e 's/^deb-src/#deb-src/' /etc/apt/sources.list
0
ответ дан 7 May 2018 в 13:11

Если Вы хотите, чтобы утилита сделала это, Вы могли бы реализовать такую утилиту как простой сценарий удара как следующее. Это могло бы быть полезно, если Вы хотите использовать утилиту, не нуждаясь pip/nodejs.

#!/bin/bash
if [ -z "$1" ]
then
    echo Usage:  sudo $0 http://mirrors.ubuntu.com/mirrors.txt
    echo OR consider one of...
    for mirror in `wget http://mirrors.ubuntu.com/mirrors.txt -O - 2> /dev/null`
    do 
        (
            host=`echo $mirror |sed s,.*//,,|sed s,/.*,,`
            echo -e `ping $host -c1 | grep time=|sed s,.*time=,,`:'  \t\t'$mirror
        ) &
        done
    wait
    exit 1
fi

OLD_SOURCE=`cat /etc/apt/sources.list | grep ^deb\ | head -n1 | cut -d\  -f2`

[ -e  /etc/apt/sources.list.orig ] || cp /etc/apt/sources.list /etc/apt/sources.list.orig

cp /etc/apt/sources.list /etc/apt/sources.list.tmp
sed "s,$OLD_SOURCE,$1," < /etc/apt/sources.list.tmp > /etc/apt/sources.list
0
ответ дан 7 May 2018 в 13:11

Я разработал простой сценарий nodejs на основе ping, который проверяет серверы, перечисленные на mirrors.ubuntu.com/mirrors.txt, и возвращает самый быстрый:

sudo npm install -g ffum
ffum

Пожалуйста, дайте мне знать, если вы его найдете полезно или есть какие-либо предложения (=

0
ответ дан 7 May 2018 в 13:11

Другие ответы, включая принятый ответ, больше не действительны (для Ubuntu 11.04 и новее), потому что они рекомендовали пакеты Debian, такие как netselect-apt и apt-spy, которые не работают с Ubuntu.

Ниже приведены два разных рабочих ответа на этот вопрос:

  1. Используйте apt-get метод mirror: ]

    Этот метод запрашивает у сервера Ubuntu список зеркал рядом с вами на основе вашего IP-адреса и выбирает одно из них. Самая простая альтернатива, с незначительным недостатком, когда иногда самое близкое зеркало может быть не самым быстрым.

  2. Командная строка foo с использованием netselect
    Показывает, как использовать инструмент netselect для поиска самых быстрых недавно обновленных серверов из вы - в сети, а не географически. Используйте sed для замены зеркал в sources.list.

Используйте sed для замены зеркал в sources.list

Поскольку некоторые источники используют папки добавления как часть своего пути, может быть лучше использовать синтаксис альтернативного разделителя.

sudo sed -i 's%us.archive.ubuntu.com%mirrors.gigenet.com/ubuntuarchive/%' /etc/apt/sources.list
0
ответ дан 7 May 2018 в 13:11

Для командной строки Вы можете использовать инструмент Пайтона, названный способно-умный

пример использования А, который позволяет Вам перечислить оцениваемые зеркала в своей стране (автоматически обнаруживают):

$ apt-smart -l

С -l, или --list-mirrors, Вы доберетесь (продукция в качестве примера от сервера Трэвиса СИ У.С.):

---------------------------------------------------------------------------------------------------------
| 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 и полагаться на неточные данные launchpad.
  • apt-smart сохраняется, тогда как большинство других проблем отпуска инструментов открепляется в течение долгого времени.

Вы можете легко установить apt-smart через pip, поскольку подробные copy'n'paste устанавливают команды и использования, пожалуйста, см. Readme Проекта.

2
ответ дан 22 November 2019 в 22:54

Другие вопросы по тегам:

Похожие вопросы: