OpenWrt - torrenty (kamikaze)
Instalacja ctorrent/yodctcs na OpenWrt Kamikaze
Ostatnia zmiana: 2013-11-26 18:43

1. Instalacja
2. Dostęp przez ściągniętych plików przez ftp
3. Ściąganie plików z http/ftp
4. Zakończenie

Interfejs do ściągania torrentów. Umożliwia pełną obsługę przez WWW, jest niezależny od zainstalowanych (lub nie) serwerów http/gui. Całość przetestowano na Asus WL-500gP + pendrive USB, ctorrent (Enhanced CTorrent), OpenWrt Kamikaze 8.09.
Jeżeli używasz Whiterussian zobacz instalację ctorrenta
Zobacz także opis transmission - innego programu do ściągania torrentów.
Instalacja
Zakładam, że podłączony dysk/pendrive jest w zamontowany w katalogu /hdd. Jeżeli nie, to należy w dalszej części odpowiednio zmodyfikować ścieżki w plikach konfiguracyjnych.
Niezbędny jest oczywiście także Enhanced CTorrent. Będąc zalogowanym przez ssh do rutera należy wykonać następujące polecenia:

        opkg install ctorrent
        opkg install http://yodctcs.googlepages.com/dctcs_0.7.2-2-809_mipsel.ipk
        /etc/init.d/dctcs stop
        /etc/init.d/dctcs enable

Następnie należy edytorem vi zmienić parę opcji w pliku /etc/dctcs.conf. W szczególności należy zwrócić uwagę na ścieżki gdzie zamontowany jest dysk oraz hasła dostępu. Ostatecznie ten plik może być w takiej postaci:

        torrent-directory=/hdd/
        download-directory=/hdd/
        
        user=me
        password=just
        
        exit-hours=72
        exit-ratio=1.5
        cache-size=4
        restart-torrents=1

        download-limit=100
        upload-limit=10
        
        #port=18000

Znaczenie opcje jest czytelne i nie trzeba ich wyjaśniać.

Po zmodyfikowaniu pliku należy wydać polecenie uruchamiające całość:

        /etc/init.d/dctcs start

Dostęp do interfejsu możliwy jest pod adresem http://ip_rutera:18000 (numer portu z pliku konfiguracyjnego), user: me hasło: just (czyli takie jak zostały ustawione w pliku)

UWAGA: ctorrent musi być zainstalowany we flashu (a nie na zewnętrznym nośniku). Jeżeli instalacja była na zewnętrznym to należy w pliku konfiguracyjnym dctcs.conf podać pełną ścieżkę do ctorrenta!

Wersja demo interfejsu dostępna jest na stronie yadctcs (bez usera/hasła, tylko enter).
Dostęp przez ściągniętych plików przez ftp
Jeżeli mamy zainstalowany i skonfigurowany serwer ftp można uzyskać dostęp do ściągniętych plików bezpośrednio przez yodctcs. W tym celu należy dodać do pliku konfiguracyjnego odpowiednią opcję. Można to wykonać poleceniami:

        echo "detail-url=ftp://192.168.1.1/" >> /etc/dctcs.conf
        /etc/init.d/dctcs stop
        /etc/init.d/dctcs start

Oczywiście adres 192.168.1.1 należy zmienić na adres rutera i zakładamy, że katalogiem głównym serwera ftp jest /hdd (czyli katalog wskazany w pliku konfiguracyjnym dcstcs). Jeżeli nie, należy odpowiednio dostosować ścieżkę.
Ściąganie plików z http/ftp
Mały bonus: yodctcs umożliwia także ściąganie normalnych plików przez http/ftp. Aby było to możliwe należy doinstalować "normalną" wersję wget poleceniem

        opkg install wget

Zakończenie
Ruterki zwykle mają ograniczone zasoby sprzętowe (pamięć ram) dlatego też należy pamiętać o ograniczeniu liczby jednocześnie ściąganych torrentów (np. do 4-5) i ograniczeniu w miarę możliwości liczby połączeń. Dobrze jest również utworzyć odpowiednio duży swap na dysku.

Należy również pamiętać o odblokowaniu portów wejściowych na firewallu w zakresie 2106 - 2706 (tcp)

    uci add firewall rule
    uci set firewall.@rule[-1]._name=torrenty
    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=2106-2706
    uci commit firewall
    /etc/init.d/firewall start

Jeżeli chcemy mieć dostęp do interfejsu "z zewnątrz", należy odblokować port 18000 (lub inny podany w konfiguracji) na firewallu, czyli

    uci add firewall rule
    uci set firewall.@rule[-1]._name=yodctcs
    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=18000
    uci commit firewall
    /etc/init.d/firewall start