Jak w każdym systemie czasami niezbędne jest pobranie plików ze źródeł zewnętrznych. Jeżeli wielkość pliku nie przekracza kilku megabajtów, plik można pobrać do katalogu /tmp (czyli tak naprawdę pamięci ram). W innych przypadkach niezbędne jest posiadanie zamontowanego zewnętrznego nośnika (dysk USB, karta SD lub inne udostępnione zasoby)
Do pobrania plików z serwerów FTP lub HTTP można posłużyć się wbudowanym poleceniem wget. Przykład użycia (dla ftp):
wget -c ftp://serwer_ftp.pl/katalog/plik.zip
lub (dla HTTP)
wget -c http://inny_serwer.pl/katalog/plik.zip
Ponieważ plik zapisywany jest w bieżącym katalogu, wywołanie tego polecenia należy wykonać będąc w katalogu reprezentującym podmontowany zasób (np. /mnt/disc0_1). Ewentualnie należy użyć opcji -P do określenia katalogu docelowego pliku
wget -c ftp://serwer_ftp.pl/katalog/plik.zip -P /mnt/disc0_1
Obecnie (8.09.1) pod OpenWRT przygotowywane są trzy paczki z klientami torrenta:
Klienta ctorrent instalujemy poleceniem
opkg install ctorrent
Niestety, obsługa odbywa się tylko z linii poleceń. Dlatego też zalecana jest instalacja nakładki/rozszerzenia do webif dostępnej w jednym z wielu wątków forum OpenWrt: (1), (2) lub niżej wymienionych. Update: Obecnie standardowym środowiskiem graficznym OpenWRT jest Luci.
Bardzo ciekawy interfejs do ctorrenta wykorzystujący jego specjalne właściwości. Dostępny jest pod adresem http://yodctcs.googlepages.com/home
Instalacja jest banalna: sprowadza się do wydania poleceń:
opkg install ctorrent opkg install http://yodctcs.googlepages.com/dctcs_0.7.2-2-809_mipsel.ipk
Po instalacji należy pamiętać o poprawnym ustawieniu ścieżek w pliku /etc/dctcs.conf !
Dostęp do dctcs możliwy jest pod adresem http://adres_ip_rutera:18000 (na porcie 18000 o ile nie zmieniono tego w pliku konfiguracyjnym). User i hasło - takie jak ustawione w konfiguracji.
W przypadku gdy nie jesteśmy zadowoleni z klienta ctorrent możemy pokusić się o instalacje jednego z najlepszych klientów sieci bittorrent, rtorrent. Instalacja rtorrenta przebiega w następujący sposób:
Warto przy okazji dokonywania tej czynności zapoznać się z następującymi materiałami:
rTorrent potrzebuje sporej ilości pamięci RAM, zalecane jest więc aby utworzyć partycję swap o wielkości nie mniejszej niż 100MB.
Paczka rTorrenta jest obecnie dostępna w repozytorium:
Instalacja w pamięci routera:
opkg update opkg install rtorrent
Instalacja na zewnętrznym nośniku (automatyczne montowanie: /mnt/sda1):
ipkg -d /mnt/sda1 install rtorrent
Plik konfiguracyjny powinniśmy stworzyć w /root/ i nazwać go .rtorrent.rc . A tak wygląda przykładowy plik konfiguracyjny:
max_peers = 50 max_peers_seed = 30 max_uploads = 7 download_rate = 500 upload_rate = 30 directory = /mnt/sda1/torrent session = /mnt/sda1/torrent/session port_range = 44414-44416 port_random = yes check_hash = yes use_udp_trackers = yes
Aby dokładniej ustawić rtorrenta odsyłam na stronę producenta.
W przypadku gdy korzystamy z wersji squashFS OpenWRT nie będzie problemów, jednak w innym wypadku należy stworzyć skrypt kopiujący plik .rtorrent.rc do /root/ np z podpiętego dysku. Alternatywą jest uruchomienie rtorrenta z odpowiednim parametrem, którym wskażemy gdzie plik konfiguracyjny się znajduje. (patrz niżej)
Pozostaje wydać polecenie:
rtorrent -n -o import=[scieżka do pliku konfiguracyjnego]
albo po prostu:
rtorrent
Aby nasz router stał się maszynką do zasysania torrentow pracujacą non-stop potrzebny nam będzie jeszcze program screen:
opkg install screen
po czym uruchamiamy rtorrenta:
screen -S rtorrent -md /usr/bin/rtorrent &
W momencie gdy będziemy chcieli przywrócić sesję rtorrenta wystarczy wydać polecenie:
screen -r
Aby rtorrent uruchamiał się zawsze po restarcie routera musimy stworzyc skrypt inicjujący w /etc/init.d Wydajemy polecenia:
root@router:/etc/init.d# touch rtorrent root@router:/etc/init.d# vi rtorrent
Sam skrypt wygląda tak:
#!/bin/sh /etc/rc.common
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
NAME=rtorrent
DESC="Torrent Client"
START=80
start() {
screen -S rtorrent -md /usr/bin/rtorrent -n -o import=/mnt/torrent/.rtorrent.rc &
}
stop() {
killall rtorrent
echo "rtorrent zostal zamkniety"
}
Pozostaje nadać plikowi rtorrent prawa wykonywalności
root@router:/etc/init.d# chmod +x rtorrent
i wydać polecenie:
root@router:/etc/init.d# ./rtorrent start
Aby skrypt był odpalany automatycznie przy uruchomieniu rutera należy wydać polecenie:
root@router:/etc/init.d# ./rtorrent enable
W celu zapoznania się z interfejsem tekstowym oraz „klawiszologią” rtorrent'a polecam poczytać lekturę http://jakilinux.org/aplikacje/p2p/rtorrent-p2p-w-konsoli/
rtorrent nie jest dostępny w finalnej wersji OpenWrt Kamikaze 8.09 z powodów problemów z kompilacją programu.
1. Dopisujemy do pliku /etc/ipkg.conf adres repozytorium rtorrenta (dzięki uprzejmości użytkownika ArteK :) )
echo "src Artek ftp://artekw.cerbero.pl/rtorrent/" >> /etc/ipkg.conf
2. Robimy update
ipkg update
3. Instalujemy rtorrenta ( z racji objętości należy instalować torrenta na zewnętrznym nośniku, USB bądź SD/MMC)
a) Na zewnętrznym nośniku USB (dysk USB zamontowany w /mnt/hdd )
ipkg -d hdd install rtorrent
lub
b) Na karcie SD/MMC ( karta pamięci w tym przypadku zamontowana jest w /mnt/sd )
ipkg -d sd install rtorrent
4. Po zakończonej instalacji rtorrenta potrzebny jest jeszcze pakiet „libstdc++_6.0.3-2” który to ściągamy i instalujemy ręcznie
wget ftp://artekw.cerbero.pl/rtorrent/libstdc++_6.0.3-2_mipsel.ipk ipkg install libstdc++_6.0.3-2_mipsel.ipk
5. Zmieniamy nazwę biblioteki
a) W przypadku instalacji na hdd zamontowanym w /mnt/hdd
mv /mnt/hdd/usr/lib/libcurl.so.3 /mnt/hdd/usr/lib/libcurl.so.4
b) W przypadku instalacji na SD/MMC zamontowanej na /mnt/sd
mv /mnt/sd/usr/lib/libcurl.so.3 /mnt/sd/usr/lib/libcurl.so.4
6. Należy jeszcze dodać do pliku /etc/profile odpowiednie ścieżki.
a) W przypadku instalacji na hdd należy jeszcze dopisać informacje o definicji typu terminala
echo "export TERMINFO=\"/mnt/hdd/usr/share/terminfo\"" >> /etc/profile
b) W przypadku instalacji na SD/MMC zamontowanej na /mnt/sd robimy dokładnie tak jak wyżej a jedynie zmieniamy ścieżkę gdzie zamontowana jest karta.
echo "export TERMINFO=\"/mnt/sd/usr/share/terminfo\"" >> /etc/profile
7. Możemy cieszyć się działającym klientem rtorrent wydając polecenie
rtorrent
8. Konfiguracja rtorrenta sprowadza się do utworzenia pliku ”.rtorrent.rc.” który to możemy umieścić w katalogu /tmp (Polecam poczytać lekturę http://jakilinux.org/aplikacje/p2p/rtorrent-p2p-w-konsoli/)
rtorrent potrzebuje dosyć sporej pamięci RAM, zalecane jest więc aby utworzyć na HDD bądź SD/MMC swap o wielkości nie mniejszej niż 100MB w przypadku karty SD o objętości 1GB.
Jak klienta można użyć programu aMule; niestety jest on za duży na to, żeby całkowicie „zmieścić” do w pamięci flash. Z tego też powodu zarówno program jak i ściągane dane zostaną umieszczone na zewnętrznym nośniku. Może to być dysk zewnętrzny w kieszeni USB; może to być także karta pamięci lub inny rodzaj nośnika.
UWAGA: W większości przypadków pliki udostępnione w sieci p2p są nielegalnie. Masz tego świadomość
.
Należy także pamiętać, że OpenWrt pracuje zwykle na urządzeniach do ograniczonej pamięci i zasobach sprzętowych. Z tego też względu, w konfiguracji amule należy zminimalizować liczbę połączeń, filtracje adresów itd. Należy również ograniczyć liczbę plików włożonych do kolejki.
opkg update opkg install amule
Pierwsze uruchomienie amule powoduje wygenerowanie odpowiedniego pliku konfiguracyjnego.
/tmp/shared/bin/amule start
Ponieważ w pliku tym zostaje wymuszony katalog domowy (HOME), cała konfiguracja amule zawarta jest w katalogu /tmp/shared/home/amule/.aMule Niezbędne jest jeszcze odpowiednio przygotowane hasło do serwera amule:
echo -n haslo | md5sum | cut -d ' ' -f 1
Słowo haslo należy zastąpić swoim własnym. Zostanie wygenerowany ciąg znaków; należy je zapisać/zapamiętać :)
Ulubionym edytorem należy pozmieniać parę opcji konfiguracyjnych (przy wyłączonym amule!). Uruchamiamy edycję…
/tmp/shared/bin/amule stop nano /tmp/shared/home/amule/.aMule/amule.conf
…i ustawiamy podane niżej opcje
[eMule] IPFilterAutoLoad=0 [WebServer] Enabled=1 Password=### Template=php-default [ExternalConnect] AcceptExternalConnections=1 ECPassword=### ShowProgressBar=1
W miejsce ### należy wstawić wcześniej wygenerowany ciąg znaków.
Należy także pobrać aktualną listę serwerów (z serwera http://ed2k.2x4u.de - link do listy jest zmieniany co kilka minut, należy więc wejść na podaną stronę) i zapisać plik w katalogu /tmp/share/home/amule/.aMule oraz wskazać katalog z szablonem stron www:
ln -s /tmp/shared/share/amule/webserver/ /tmp/shared/home/amule/.aMule/webserver
Ponowne uruchomienie polecenia
/tmp/shared/bin/amule start
powinno uruchomić już serwer amule.
Jeżeli po uruchomieniu serwera nie będzie on widoczny w liście procesów (do uzyskania przez ps ax), należy zmienić opcję -f w pliku /tmp/shared/bin/amule na -i -o. Spowoduje to wypisanie na konsolę komunikatów startowych umożliwiając tym samym diagnozę problemów.
Dostęp do serwera można uzyskać zarówno z linii poleceń (amulecmd) jak również z poziomu www pod adresem http://adres_serwera:4711
Ściągnięte pliki znajdują się w katalogu /tmp/shared/home/amule/.aMule/Incoming; można to zmienić zmieniając odpowiednią opcję w pliku konfiguracyjnym. W razie problemów z amule należy zapoznać się z pomocą dostępną na stronie amule http://www.amule.org/wiki/index.php/Main_Page. Wszystkie odpowiedzi typu „a dlaczego mam lowid” czy „a dlaczego mi nie działa ta opcja” są też wyjaśnione na stronie pomocy aMule.
W katalogu /etc/init.d należy utworzyć plik o nazwie S99amule
touch /etc/init.d/S99amule chmod 755 /etc/init.d/S99amule
I umieścić w nim wywołanie serwera:
#!/bin/sh ln -s /mnt/disc0_1 /tmp/shared /tmp/shared/bin/amule start
Rozwiązanie to ma pewne wady - nie zawsze podmontowany jest dysk i nie zawsze dostępny jest katalog /tmp/shared wskazujący na ten nośnik.
Lepszym rozwiązaniem wydaje się być wykorzystanie skryptu automatycznego montowania dysku.
W pliku /etc/hotplug.d/usb, w pliku 01-mount należy zamienić
for part in part*; do
path=/mnt/${dev}_${part##*part}
mkdir -p ${path}
mount ${part} ${path}
done
na
for part in part*; do
path=/mnt/${dev}_${part##*part}
mkdir -p ${path}
mount ${part} ${path}
if [ -f ${path}/bin/amule ]; then
ln -s ${path} /tmp/shared
/tmp/shared/bin/amule start
fi
done
Przed odłączeniem dysku należy upewnić się, że nie jest on wykorzystywany, i w szczególności, nie jest uruchomiony serwer amule. Można zrobić odpowiedni skrypt połączony pod przycisk SES (EZSetup w Asus WL-500gP). Wtedy, jeżeli chcemy odłączyć dysk wystarczy nacisnąć przycisk, odczekać kilka sekund i można go bezpiecznie odłączyć. Przykład takiego skryptu (do umieszczenia w katalogu /etc/hotplug.d/button pod nazwą 01-umount)
if [ "$BUTTON" = "ses" ] ; then
if [ "$ACTION" = "pressed" ] ; then
if [ -f /tmp/shared/bin/amule ]; then
/tmp/shared/bin/amule stop
umount /dev/sda1
sleep 3
fi
fi
fi
Udostępnianie plików na grupach binarnych jest tak stare jak sama sieć Internet ;). Na specjalnych grupach alt.binaries.* udostępnianie są wszelkiego rodzaju pliki(muzyka, filmy itd). Zanim powstał format NZB, używało się programów takich jak GrabIt czy NewsPro, gdzie sciągało sie nagłówki interesujących nas grup. Trwało to bardzo długo i trzeba było mieć dobre łącze. Format NZB ułatwia prace, gdyż dzięki serwisom internetowym, które indeksują wrzucane pozycje na takie grupy wystarczy pobrać interesujący plik .nzb Do tego celu należy użyć specjalnego klienta. np. nzbget.
Instalujemy następujące pakiety
opkg install nzbget opkg install nzbgetweb
Stawiamy serwer nzbget jako sesję w screen'ie.
screen nzbget -d
Do pobierania plików z Rapidshare posłuży nam skrypt rsget-mod którego autorem jest D4rky (http://rs.nerdblog.pl/)
Pierwsze co robimy to konfiguracja USB i HDD
Następnie instalujemy potrzebne paczki
opkg install bash opkg install screen opkg install wget --force-overwrite opkg install nano
Tworzymy folder np /hdd/rapid na dysku (/hdd jest to miejsce montowania dysku), nadajemy prawa i przechodzimy do niego.
mkdir /hdd/rapid chmod 777 /hdd/rapid cd /hdd/rapid
Pobieramy skrypt
wget http://rs.nerdblog.pl/stable/latest/rsget-mod.sh
Nadajemy prawa i uruchamiamy (zostaną pobrane potrzebne pliki)
chmod +x rsget-mod.sh ./rsget-mod.sh
Aby pobrać pliki tworzymy np. rapid.txt kopiujemy linki i uruchamiamy skrypt
./rsget-mod.sh -i rapid.txt
można także uruchomić w screen'nie
screen -S rapid ./rsget-mod.sh -i rapid.txt &
i gotowe.
Osoby posiadające łącze ze zmiennym IP (neostrada, netia, itp.) aby nie czekać 15 minut mogą zrobić następującą modyfikacje
nano /root/.rsget-mod/common.sh
i zmieniamy z
# You have reached download limit elif [ -n "$(echo "$link" | grep "You have reached the download limit")" ]; then minutes=$(echo "$link" | grep "Instant download access! Or try again in about" | $_RSGET_SED -e "s/.*about \([0-9]*\) minutes.*/\1/") printf "$_LANG_TIME_LIMIT" "$minutes" minutes=$(($minutes*60)) count "$_LANG_TIME_LIMIT" $minutes download "$1"
na
# You have reached download limit elif [ -n "$(echo "$link" | grep "You have reached the download limit")" ]; then ifdown wan; ifup wan; sleep 10 download "$1"
zapisujemy
ctrl+x
opkg install wget --force-overwrite
Jeżeli jesteśmy posiadaczami konta premium: linki do plików umieszczamy w pliku, a następnie wydajemy polecenie:
cd /hdd/miejsce_gdzie_chcemy_by_znalazły_się_pliki wget -b -c --auth-no-challenge --user=login --password=hasło -i nazwa_pliku
gdzie login i hasło to dane do konta premium, nazwa_pliki - plik z podanymi linkami do ściągania.