Коротко — сначала варианты замен aria2, затем — как можно использовать удалённую машину, чтобы обойти «однопоточное» ограничение провайдера и (возможно) повысить скорость.
1) Аналоги aria2 (CLI/GUI, многопоточные/ускорители)
- axel — лёгкий CLI-«ускоритель», делит на сегменты: axel -n 8 URL
- wget2 — преемник wget с поддержкой многопоточности: wget2 -j 8 URL
- curl (в связке со скриптом/parallel) — можно скачивать диапазоны параллельно (--range) и потом склеивать.
- Xtreme Download Manager (XDM) — GUI, Java, многопоточность.
- Free Download Manager (FDM) — GUI, Windows/Linux, поддержка сегментов и торрентов.
- Internet Download Manager (IDM) — Windows, коммерческий, сильный в многопоточности.
- DownThemAll / другие расширения для браузера — многопоточные загрузки прямо из браузера.
- rclone — если источники — облако (Google Drive, S3 и т.п.), умеет параллельные загрузки/части и кэш.
- wget (классический) — не многопоточный, но можно вручную скачивать по диапазонам.
- torrent-клиенты (qBittorrent, Transmission) — если есть .torrent, часто дают лучшую суммарную скорость.
- Persepolis — GUI-frontend для aria2.
aria2 остаётся одним из наиболее универсальных CLI-инструментов, но перечисленные выше часто проще в интерфейсе или удобнее для конкретных задач.
2) Почему у вас «лучшает» многопоточная aria2
Провайдеры иногда ограничивают скорость одного TCP‑соединения (или дают fair‑share на соединение), поэтому множественные соединения увеличивают суммарную скорость. Также Steam/торренты используют много соединений или UDP‑протоколы, которые у вас не ограничивают.
3) Как использовать удалённую машину (1 CPU / 1 GB) чтобы увеличить скорость
Цель — сделать так, чтобы часть/весь трафик шёл либо из/через удалённый хост, либо чтобы клиент мог открывать несколько соединений к удалённому хосту. Варианты:
A) Remote fetch + параллельная раздача (простой и надёжный)
- На удалённой машине запускаете aria2 или wget2, чтобы она скачала файл с исходного сервера (на удалённом канале, возможно, обходится shape).
Пример: на удалённом: aria2c -d /var/www/html -o file.zip -s 16 -x 16 "URL"
- На удалённом запускаете простой HTTP(S) сервер (nginx/Apache; nginx по умолчанию поддерживает Range). Лучше включить HTTPS (Let's Encrypt), чтобы провайдер не видел содержимое и сложнее было DPI-обнаружение.
- На локальной машине скачиваете уже с удалённого хоста многопоточно (aria2/wget2/axel): aria2c -x 8 -s 8 "https://remote.example.com/file.zip"
Плюсы: исходные ограничения на стороне провайдера источника обходятся (удалённый сервер может иметь хороший доступ к источнику). Минусы: суммарная скорость ограничена аплингой пропускной способностью удалённой машины (её исходящий канал) и лимитами хостинга.
B) VPN/Tunnel (Routing всего трафика через remote)
- Поднять лёгкий VPN (WireGuard предпочительнее: быстрый и экономичный) между локальной машиной и удалённой. Тогда браузер/клиент будет «видим» как клиент с IP удалённой машины. Если провайдер настраивает throttle/shape по destination/паттернам, VPN может помочь.
- Плюс: не нужно скачивать сначала на сервер, просто весь трафик идёт через него. Минусы: если провайдер ограничивает по каждому потоку внутри туннеля — не поможет; удалённая машина должна иметь достаточный исходящий канал.
C) Прокси/мультитуннелирование
- SOCKS5 через ssh: ssh -fND 1080 user@remote и использовать этот socks в клиенте. Некоторые клиенты умеют многопоточно через socks.
- Можно открыть несколько ssh туннелей (несколько портов) и заставить загрузчик использовать несколько прокси — но это хитровато и редко нужно.
D) Прокси с кешированием (если скачиваете много похожих файлов)
- Squid/varnish на удалённом + HTTPS/SSL проксирование — ускорит повторные запросы и уменьшит нагрузку на исходник.
4) Практические советы / команды
- axel: axel -n 8 "URL"
- wget2: wget2 -j 8 "URL"
- aria2 локально: aria2c -x 8 -s 8 "https://remote/file.zip"
- aria2 на удалённом (скачать и раздавать через nginx):
1) apt install aria2 nginx certbot
2) aria2c -d /var/www/html -o file.zip -s 16 -x 16 "URL"
3) настроить nginx, получить TLS сертификат certbot и дать доступ по https://yourserver/file.zip
4) на локальной машине aria2c -x 8 -s 8 https://yourserver/file.zip
- Простой curl‑split (если хочется DIY): разбить на N диапазонов и скачивать параллельно, потом склеить:
- для i в 0..N-1: curl --range start-end -o part$i URL (потом cat part* > file)
5) На что обратить внимание / ограничения
- Исходящая полоса удалённого сервера — критична. Если хостинг даёт, скажем, 100 Мбит исходящего, больше не получите.
- Нагрузка CPU/RAM на удалённой машине обычно невелика при простых HTTP/HTTPS-раздачах, но для TLS и многопотока 1GB RAM / 1 core обычно достаточно.
- Провайдер может применять DPI/политики, которые мешают и этому — в таком случае VPN/скрытие трафика (TLS/obfs, shadowsocks, v2ray и т.п.) поможет.
- Юридические/политические/условия хостинга: убедитесь, что вы не нарушаете правила.
6) Рекомендация для вашего случая
- Если у вас уже получается 4–5 МБ/с с aria2 локально — попробуйте вариант «remote fetch + nginx + локально aria2». Часто это даёт максимальную стабильность: удалённая машина скачивает быстро (провайдер источника может давать ей более высокий поток), вы же параллельно забираете у неё через HTTPS.
- Если ограничение провайдера — именно по одному TCP, то использование WireGuard и/или многопутёвого скачивания через удалённый хост (несколько соединений к нему) поможет.
- Если хотите простой эксперимент: поднять на remote nginx с HTTPS и скачать файл с него aria2 локально — это быстро покажет, помогает ли маршрут через remote.
Если нужно — могу:
- Прислать примерный пошаговый скрипт (install aria2 + nginx + certbot + пример команд) для Ubuntu на удалённой машине;
- Или показать пример скрипта для параллельного скачивания через curl.