Поиск по сайту:

Как использовать «Axel» в качестве ускорителя загрузки для ускорения загрузки по FTP и HTTP


Если вы тот человек, которому нравится загружать и опробовать несколько дистрибутивов Linux, мы уверены, что вы с распростертыми объятиями встретите ускоритель загрузки, который говорит о разговорах и идет вперед — тот, который делает то, что говорится в его описании.

В этом руководстве мы познакомим вас с Axel, облегченным клоном wget, не имеющим никаких зависимостей (кроме gcc и makeutils).

Хотя в описании указано, что он специально подходит для систем, критичных к байтам, axel можно установить где угодно и использовать не только для одновременной загрузки нескольких файлов по ссылкам HTTP/FTP, но и для их ускорения.

Установка Axel, ускорителя загрузки из командной строки для Linux

Как мы упоминали ранее, axel – это не просто еще один инструмент для загрузки. Он ускоряет загрузку HTTP и FTP за счет использования нескольких подключений для получения файлов из места назначения, а также может быть настроен на использование нескольких зеркал.

Если этого недостаточно, чтобы мотивировать вас попробовать его, давайте просто добавим, что axel поддерживает автоматическое прерывание и возобновление соединений, которые не отвечают или не возвращают какие-либо данные по истечении определенного периода времени.

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

Если вам не разрешено это делать или вы не уверены в этом, вы можете вместо этого открыть несколько подключений к отдельным серверам и загружать со всех из них одновременно.

И последнее, но не менее важное: axel отличается от других ускорителей загрузки Linux тем, что он помещает все данные в один файл во время загрузки, а не записывает данные в отдельные файлы и объединяет их на более позднем этапе.

В CentOS/RHEL 8/7 вам необходимо включить репозиторий EPEL, чтобы установить axel:

yum install epel-release
yum install axel

В Fedora он доступен из репозиториев по умолчанию.

yum install axel   
dnf install axel   [On Fedora 23+ releases]

В Debian и его производных, таких как Ubuntu и Linux Mint, вы можете установить axel напрямую с помощью aptitude:

aptitude install axel

В Arch Linux и связанных с ним дистрибутивах, таких как Manjaro Linux и OpenSUSE Linux, вы можете установить axel напрямую с помощью:


sudo pacman -S axel       [On Arch/Manjaro]
sudo zypper install axel  [On OpenSUSE]

Как только аксель установлен, давайте погрузимся в него обеими ногами.

Настройка Axel — ускоритель загрузки Linux

Вы можете настроить axel с помощью /etc/axelrc и передать дополнительные нужные параметры в командной строке при его вызове. Файл конфигурации хорошо документирован, но здесь мы рассмотрим наиболее полезные параметры:

reconnect_delay — это количество секунд, в течение которых Аксель будет ждать, прежде чем снова попытаться начать новое соединение с сервером.

max_speed говорит сам за себя. Значение указывается в байтах в секунду (Б/с). Возможно, вы захотите установить для этой переменной подходящее значение, учитывая доступную пропускную способность. Это поможет вам предотвратить использование Axel значительной части вашей пропускной способности во время загрузки.

Важно. Обратите внимание, что фактическая максимальная скорость загрузки будет зависеть от вашего подключения к Интернету — само собой разумеется, что для параметра max_speed установлено значение . 5 МБ/с ничего не даст, если ваше интернет-соединение достигает максимальной скорости 1,22 МБ/с (как это было в моем случае, как вы увидите в примерах ниже – я просто оставил это значение, чтобы подчеркнуть суть).

num_connections — максимальное количество соединений, которые Axel попытается запустить. Рекомендуемое значение (4) достаточно для большинства случаев и дано в основном из уважения к другим пользователям FTP. Обратите внимание, что некоторые серверы могут даже не разрешать множественные подключения.

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

http_proxy позволяет вам установить прокси-сервер в случае, если переменная среды HTTP_PROXY не установлена для всей системы. Эта переменная использует тот же формат, что и HTTP_PROXY (http://:PORT).

no_proxy — это список локальных доменов, разделенных запятыми, к которым axel не должен пытаться подключиться через прокси. Этот параметр является необязательным.

buffer_size представляет собой максимальный объем в байтах, который можно прочитать из всех текущих соединений одновременно.

verbose позволяет выбрать, будут ли на экране выводиться сообщения, связанные с загрузкой. Установите значение 0, если вы хотите отключить его, или 1, если вы хотите по-прежнему видеть сообщения.

interfaces позволяет вам перечислить сетевые интерфейсы, имеющие доступ к Интернету, если у вас их несколько. Если это не указано явно, axel будет использовать первый интерфейс в таблице маршрутизации.

Аналогичные параметры конфигурации доступны по адресу:

axel --help

Если вы посмотрите внимательно, вы поймете, что большинство параметров командной строки напоминают параметры в файле конфигурации. Кроме того, опция -o (–output) позволяет указать имя выходного файла.

Если он используется, он переопределяет имя исходного файла. Если вы установите какие-либо параметры командной строки, они будут иметь приоритет над параметрами, установленными в файле конфигурации.

Как использовать Axel для более быстрой загрузки файлов в Linux

Мы будем использовать следующие настройки из файла конфигурации (раскомментируйте соответствующие строки):

reconnect_delay = 20
max_speed = 500000
num_connections = 4
connection_timeout = 30
buffer_size = 10240
verbose = 1

Теперь мы сравним время загрузки по ссылкам HTTP и FTP, используя wget и axel. Вы можете выбрать любой файл любого размера, но для простоты мы загрузим файлы 100 МБ, доступные по адресу:

  1. ftp://speedtest:[email /test100Mb.db
  2. http://speedtest.ftp.otenet.gr/files/test100Mb.db

Сравните время загрузки FTP и Axel

Загрузка по FTP с помощью wget (в среднем 459 КБ/с):
wget ftp://speedtest:[email /test100Mb.db

Загрузка по FTP с помощью axel (в среднем 1181,43 КБ/с):
axel -n 10 --output=axel-test100Mb.db ftp://speedtest:[email /test100Mb.db

Сравните время загрузки HTTP и Axel

Загрузка по HTTP с помощью wget (в среднем 482 КБ/с):
wget http://speedtest.ftp.otenet.gr/files/test100Mb.db

Загрузка по HTTP с помощью axel (в среднем 1178,93 КБ/с):
axel -n 10 --output=axel-test100Mb.db http://speedtest.ftp.otenet.gr/files/test100Mb.db

Как вы можете видеть из результатов тестов, которые мы провели выше, axel может значительно ускорить загрузку FTP или HTTP.

Краткое содержание

В этой статье мы объяснили, как использовать axel, ускоритель загрузки FTP/HTTP, и показали, насколько он работает быстрее, чем другие программы, такие как wget, поскольку он способен открывать несколько одновременных подключений к удаленным серверам.

Не пропустите: 5 самых популярных менеджеров загрузок для ваших систем Linux

Не пропустите: 10 примеров команд Wget (загрузчик файлов Linux) в Linux

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