Автоматический выбор самых быстрых зеркал для Ubuntu.
Этот скрипт на Bash предназначен для поиска и выбора самых быстрых зеркал Ubuntu на основе указанных кодов стран или вашего географического положения. По умолчанию скрипт выбирает одно самое быстрое зеркало, но с помощью опции -n можно выбрать несколько зеркал для повышения надежности.
Скрипт поддерживает как традиционные версии Ubuntu (до 24.04) с файлом /etc/apt/sources.list, так и новые версии Ubuntu 24.04+, которые используют формат .sources в директории /etc/apt/sources.list.d/.
- 🖥️ Скрипт предназначен для работы в операционных системах на базе Ubuntu.
- 📦 Требуется наличие установленных утилит
wgetиbc. - 🛡️ Убедитесь, что у вас есть необходимые права для запуска скрипта (обычно
sudo), особенно если вы планируете изменять системные файлы. - ⭐ Для Ubuntu 24.04+ скрипт изменит файл
ubuntu.sourcesв директории/etc/apt/sources.list.d/. - 💾 Для старых версий Ubuntu скрипт изменит файл
/etc/apt/sources.list.
Во избежание путаницы, вот единицы измерения, используемые в этом скрипте:
- KB (Килобайты): Используется для размеров файлов (1 КБ = 1024 байта).
- Kbps (Килобиты в секунду): Используется для скорости сети (1 Кбит/с = 1000 бит в секунду).
- Mbps (Мегабиты в секунду): Используется для более высоких скоростей сети (1 Мбит/с = 1000 Кбит/с).
- Gbps (Гигабиты в секунду): Используется для очень высоких скоростей сети (1 Гбит/с = 1000 Мбит/с).
Примечание: При указании размера тестового файла с помощью опции -s значение задается в KB (Килобайтах), но скорость зеркал отображается в битах в секунду (bps, Kbps, Mbps или Gbps), что является стандартом для измерения скорости сетевой передачи данных.
Вы можете получить скрипт, скачав его напрямую или клонировав репозиторий с GitHub.
-
Скачать скрипт:
wget https://raw.githubusercontent.com/ezhkov-ph/faster-ubuntu-mirror/main/run.sh
Эта команда скачает скрипт в ваш текущий каталог.
-
Клонировать репозиторий: Если вы предпочитаете клонировать весь репозиторий, используйте следующие команды:
HTTPS:
git clone https://github.com/ezhkov-ph/faster-ubuntu-mirror.git
SSH:
git clone [email protected]:ezhkov-ph/faster-ubuntu-mirror.git
-
Права на исполнение: Если вы скачали скрипт, убедитесь, что у него есть права на исполнение.
chmod +x run.sh
-
Переход в каталог (если клонировали): Если вы клонировали репозиторий, перейдите в его каталог:
cd faster-ubuntu-mirror -
Зависимости: Убедитесь, что у вас установлены необходимые зависимости.
sudo apt-get install wget bc
Чтобы использовать скрипт, выполните следующие шаги:
-
❓ Отображение справки (
-h): Если вы не уверены, как использовать скрипт, вызовите справку:./run.sh -h
Это покажет вам описание всех доступных опций и примеры.
-
🌍 Получение списка зеркал по коду страны (
-c): Вы можете получить список зеркал для конкретных стран../run.sh -c US JP ID
Эта команда получит зеркала из США (US), Японии (JP) и Индонезии (ID).
Для автоматического определения региона по вашему IP (требуется
jq):./run.sh -c $(curl -s https://ipinfo.io/json | jq -r '.country') -
🔢 Выбор количества зеркал (
-n): Позволяет указать, сколько самых быстрых зеркал нужно выбрать и применить. По умолчанию используется 1../run.sh -n 3 -c DE
-
⚡ Автоматический выбор (
-a): Для автоматического выбора самого быстрого зеркала (или зеркал) без запроса пользователя и с автоматическим созданием резервной копии../run.sh -a
-
🗄️ Резервное копирование (
-b): Если вы хотите создать резервную копию файлов с источникамиaptперед внесением изменений../run.sh -b
-
📏 Указание размера тестового файла (
-s): Для настройки размера файла, используемого для тестирования скорости зеркал. Значение указывается в килобайтах (KB). По умолчанию 100KB../run.sh -s 500
Это установит размер тестового файла в 500 КБ, что может дать более точные результаты на быстрых соединениях.
-
📜 Принудительный режим совместимости (
-L): Заставляет скрипт использовать старый метод (обновлениеsources.list) даже на Ubuntu 24.04+../run.sh -L -c US
-
✨ Поведение по умолчанию: Если не указано никаких опций, скрипт будет использовать общий список зеркал с
http://mirrors.ubuntu.com/mirrors.txt.
-
Автоматически выбрать 3 самых быстрых зеркала из Германии и Франции (с созданием бэкапа):
sudo ./run.sh -c DE FR -n 3 -a
-
Интерактивно выбрать 2 зеркала из США и Японии, создав бэкап:
sudo ./run.sh -b -c US JP -n 2
-
Протестировать зеркала с большим размером файла (500KB) для более точных результатов:
./run.sh -s 500 -c US
-
Автоматически выбрать самое быстрое зеркало с маленьким размером файла (50KB) для медленных соединений:
./run.sh -a -s 50
-
Объединить несколько опций:
sudo ./run.sh -b -c JP US -s 200 -L -n 2
Эта команда создаст бэкап, протестирует зеркала из Японии и США с файлом 200КБ, выберет 2 лучших и применит их в формате старого файла
sources.list.
Если вы используете Docker, многие утилиты могут отсутствовать в образе. Убедитесь, что вы установили wget и bc в вашем Dockerfile.
Форки, пулл-реквесты и предложения по улучшению приветствуются! Не стесняйтесь создавать Issues, если вы нашли ошибку или у вас есть идея для новой функции.
- Форкните репозиторий.
- Создайте новую ветку (
git checkout -b feature/AmazingFeature). - Внесите свои изменения (
git commit -m 'Add some AmazingFeature'). - Отправьте изменения в свою ветку (
git push origin feature/AmazingFeature). - Создайте Pull Request.
Спасибо всем, кто вносит свой вклад! ❤️