Aria2 w praktyce
Ostatnia zmiana: 2016-01-06 17:24
Aria2 jest kolejnym programem do pobierania plików. Ma bardzo duże możliwości i wyróżnia ją możliwość pobierania danych zarówno z FTP jak i HTTP (HTTPS) oraz metalinków i bittorrent. Czyni ją to dość uniwersalnym klientem do pobierania danych.
Instalacja
# opkg update
# opkg install aria2
Wbrew nazwie program binarny nazywa się
aria2c i tak należy ją wywoływać.
Konfiguracja
Parametry konfiguracyjne (jest ich
bardzo dużo) można podawać w linii poleceń lub utworzyć plik konfiguracyjny w którym będą umieszczone żądane opcje. Warto przestudiować opis programu, gdyż można mocno dostosować go do własnych potrzeb.
Pobieranie w konsoli
Kilka
przykładów zawartych jest w dokumentacji programu. Odpowiednie użycie opcji pomaga osiągnąć maksymalne transfery i optymalnie wykorzystać dostępne pasmo łącza internetowego.
Pobieranie pliku
# aria2c http://adres/image.iso
Pobieranie kilkoma połączeniami
# aria2c -x2 http://adres/image.iso
Pobieranie tego samego plików z kilku mirrorów
# aria2c -s2 http://adres/image.iso http://mirror1/image.iso http://mirror2/image.iso
Pobieranie torrentów
# aria2c http://adres/file.torrent
Przez dodanie odpowiedniej opcji można ograniczyć np. wysyłanie plików (w przykładzie: do 40KB)
# aria2c -u40K http://adres/file.torrent
Pobieranie linków "magnet"
# aria2c "magnet:?xt=urn:btih:248D0A1CD08284299DE78D5C1ED359BB46717D8C&dn=aria2"
Pliki będą pobierane do bieżącego katalogu w którym została uruchomiona Aria2. Można dodać opcję
--dir aby wskazać konkretny katalog.
Uruchomienie w tle
Aria2 umożliwia także pracę w tle, nasłuchując na żądania od innych programów. Można uruchomić ją na routerze i zdalnie kontrolować przy pomocy komputera, smartfona czy tabletu. Najprostszymi opcjami pozwalającymi na uruchomienie jej w tym trybie będą:
# aria2c --enable-rpc --rpc-listen-all=true --rpc-allow-origin-all -D
Oczywiście można dodać kilka innych opcji, np. ustawić użytkownika i hasło dostępu (w przykładzie: user/pass), domyślnie ograniczyć wysyłanie do 3KB, ustawić domyślny katalog pobierania danych:
# aria2c --enable-rpc --rpc-listen-all=true --rpc-allow-origin-all -D --dir=/mnt/sda1 --rpc-user=user --rpc-passwd=pass --max-overall-upload-limit=3K
Taką linię można wpisać np. do /etc/rc.local aby
aria2 uruchamiała się przy starcie routera.
Inną możliwością podania opcji jest zrobienie pliku konfiguracyjnego, np.
/etc/aria2.conf o zawartości
daemon=true
enable-rpc=true
rpc-listen-all=true
rpc-allow-origin-all
rpc-user=user
rpc-passwd=pass
max-overall-upload-limit=3K
dir=/mnt/sda1
I wywołanie arii z jego wskazaniem:
# aria2c --conf-path=/etc/aria2.conf
Interfejs WWW
Aby skorzystać z uruchomionego demona
aria2 można posłużyć się interfejsem graficznym. Właściwości programu (tzw. interfejs RPC) umożliwiają stworzenie gui które nie jest wykonywane po stronie serwera a całkowicie po stronie przeglądarki. Nie wymaga więc php czy innych języków, choć wymaga dowolnego serwera www do serwowania plików - w Gargoyle mamy serwer www standardowo, w LuCI również, w czystym OpenWrt można wykonać
opkg update; opkg install uhttpd; /etc/init.d/uhttpd enable; /etc/init.d/uhttpd start.
Jest kilka niezależnych projektów wartych uwagi:
YAAW
Strona domowa projektu:
https://github.com/binux/yaawDo instalacji wykorzystamy oczywiście arię:
# cd /tmp
# aria2c --check-certificate=false https://github.com/binux/yaaw/archive/master.zip
# unzip yaaw-master.zip
# mkdir -p /www/yaaw
# cp -a yaaw-master/* /www/yaaw
Dostęp do programu jest możliwy pod adresem http://192.168.1.1/yaaw. Jeżeli wystąpi problem z dostępem do demona, jako
JSON-RPC Path w konfiguracji należy ustawić
http://user:pass@192.168.1.1:6800/jsonrpc
lub
http://192.168.1.1:6800/jsonrpc
jeżeli nie korzystamy z hasła.
Webui-aria2
Strona domowa projektu:
https://github.com/ziahamza/webui-aria2Instalacja:
# cd /tmp
# aria2c --check-certificate=false https://github.com/ziahamza/webui-aria2/archive/master.zip
# unzip webui-aria2-master.zip
# mkdir -p /www/webui
# cp -a webui-aria2-master/* /www/webui
Dostęp do programu możliwy jest w tym przypadku pod adresem http://192.168.1.1/webui.
Zdalny dostęp
Nie zawsze mamy możliwość instalacji serwera www na routerze, nie zawsze chcemy przechowywać tam gui. Jest na to prosty sposób - strony w/w projektów nie muszą być hostowane na routerze, mogą być zapisane na innym serwerze lub lokalnie na dysku - wystarczy wczytać
index.html do przeglądarki i podać dane do połączenia. Jeżeli i to za wiele (bo np. nie jesteśmy przy swoim komputerze) można odwołać się do strony projektu
webui-aria2:
http://ziahamza.github.io/webui-aria2/ lub
yaaw:
http://binux.github.io/yaaw/demo/ i tym samym uzyskać dostęp do własnego demona pobierania! Wystarczy jak mamy odblokowany odpowiedni port na WAN (czytaj poniżej) oraz podamy poprawne dane do logowania.
Inne programy
Windows:
http://sourceforge.net/projects/aria2cremoteiPhone/iPad::
http://adm.sidlogic.net/download/iPhone/iPad:
http://itunes.apple.com/us/app/aria2-download-manager-remote/id525944692?mt=8Linux/Windows:
http://ugetdm.com/Android/Windows Phone 7:
https://github.com/jokies/yaaw-androidDostępne jest także odpowiednie rozszerzenie do przeglądarki Chrome (projekt yaaw):
https://chrome.google.com/webstore/detail/yaaw/aekjkkgbmhmfgnalmkjmakfdlejjokaa?hl=plOdblokowanie firewalla
Aria2 domyślnie nasłuchuje na żądania
RPC na porcie 6800 (określa to opcja
rpc-listen-port). Jeżeli chcemy mieć dostęp interfejsem graficznym z zewnątrz, należy odblokować ten port na interfejsie WAN:
# uci add firewall rule
# uci set firewall.@rule[-1].name=aria2rpc
# uci set firewall.@rule[-1].src=wan
# uci set firewall.@rule[-1].target=ACCEPT
# uci set firewall.@rule[-1].proto=tcp
# uci set firewall.@rule[-1].dest_port=6800
# uci commit firewall
Dobrze jest też odblokować port do połączeń bittorrentów (określony opcją
listen-port), np:
# uci add firewall rule
# uci set firewall.@rule[-1].name=aria2
# uci set firewall.@rule[-1].src=wan
# uci set firewall.@rule[-1].target=ACCEPT
# uci set firewall.@rule[-1].proto=tcp
# uci set firewall.@rule[-1].dest_port=6881
# uci commit firewall
Przykładowa konfiguracja
Konfiguracja demona
/etc/aria2.conf
check-integrity=true
continue=true
daemon=true
dht-entry-point=dht.transmissionbt.com:6881
dht-listen-port=6801
disable-ipv6=true
disk-cache=2M
enable-dht6=false
enable-rpc=true
file-allocation=none
log-level=error
max-overall-upload-limit=3K
rpc-allow-origin-all=true
rpc-listen-all=true
rpc-listen-port=6800
save-session-interval=60
seed-ratio=0.0
Wywołanie demona z opcjami zachowania sesji i logów
Należy tworzyć plik np.
/usr/bin/aria2.sh
# touch /usr/bin/aria2.sh
# chmod 755 /usr/bin/aria2.sh
A następnie wpisać do niego np. edytorem
vi następującą zawartość:
#!/bin/sh
DIR=$1
CONF="$DIR"/_aria2
mkdir -p "$CONF"
touch "$CONF"/session
aria2c \
--conf-path=/etc/aria2.conf \
--dir="$DIR" \
--log="$CONF"/aria2.log \
--input-file="$CONF"/session \
--save-session="$CONF"/session \
--dht-file-path="$CONF"/dht.dat
exit 0
Następnie wywołać plik
aria2.sh z podaniem katalogu pobierania, np:
(zakładając że będziemy ściągać dane do katalogu
/mnt/sda1 i właśnie w nim mamy zamontowany dysk - inaczej zapcha się flash w routerze). Tak przygotowany plik łatwo można wywołać np. po
zamontowaniu nośnika, dzięki czemu aria2 uruchomi sie tylko po podłączeniu nośnika.
Wymienione skrypty dostępne są w postaci odpowiednio przygotowanego
pakietu.