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/yaaw



Do 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-aria2



Instalacja:


    # 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/aria2cremote
iPhone/iPad:: http://adm.sidlogic.net/download/
iPhone/iPad: http://itunes.apple.com/us/app/aria2-download-manager-remote/id525944692?mt=8
Linux/Windows: http://ugetdm.com/
Android/Windows Phone 7: https://github.com/jokies/yaaw-android
Dostępne jest także odpowiednie rozszerzenie do przeglądarki Chrome (projekt yaaw): https://chrome.google.com/webstore/detail/yaaw/aekjkkgbmhmfgnalmkjmakfdlejjokaa?hl=pl

Odblokowanie 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:


    # aria2.sh /mnt/sda1

(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.