Zdalna maszyna torrentowa oparta na Slackware Linux i rTorrent z wykorzystaniem rtGUI – krok po kroku

Poradnik ten ma na celu przedstawienie metody instalacji klienta sieci BitTorrent – rTorrent, wraz z jego graficznym interfejsem użytkownika rtGUI, opartym na PHP oraz serwera FTP służącego do dostępu do ściągniętych przez klienta plików i katalogów.

Tekst ten jest przeznaczony dla użytkowników mniej więcej obytych w systemie GNU/Linux (w sumie jedynymi umiejętnościami koniecznymi do „zastosowania” tego poradnika jest umiejętność zainstalowania tego systemu i skonfigurowania połączenia sieciowego). Mimo że jest przeznaczony dla dystrybucji Slackware, nie powinno być większych problemów z „zaadaptowaniem” go na potrzeby innych dystrybucji – z odpowiednimi zmianami, między innymi paczkowaniem (bo, bądźmy szczerzy, takiej strasznej i palącej potrzeby kompilacji to jednak nie ma, są po prostu ci, co to lubią).

1. Wymagania sprzętowe

Są zdecydowanie niewielkie. Przygotowany w ten sposób system u mnie jest obsługiwany przez maszynkę wyposażoną w Durona 750, 1.25GB RAMu i 20GB-owy dysk. Oczywiście najbardziej znaczącym czynnikiem w sprzęcie jest dysk, który musi być proporcjonalny do rozmiaru plików, które chcemy z tej sieci ściągać. Mniej ważny jest RAM, procesor będzie miał wpływ raczej tylko na długość kompilacji i haszowania.

Sam Slackware wymaga do uruchomienia (wg. slackware.com) procesora 486, 64MB RAMu, ponad 5GB wolnego miejsca na dysku (dla pełnej instalacji – ja z reguły instaluję tylko zestawy A, AP, D i wybrane pakiety z L i N, dzięki czemu sam system nie zajmuje więcej niż 2GB) oraz napęd CD lub DVD, żeby mieć z czego go zainstalować (chociaż są też sposoby na tego obejście – sam instalator wspiera instalację np. z serwera HTTP, FTP, NFS czy też udostępnionego katalogu Samby).

Wymagań Lighttpd i rTorrenta nie udało mi się znaleźć, ale jest to tylko dowód na to, że są one praktycznie minimalne. Uważam, że całość powinna bezproblemowo chodzić na procesorze 200MHz i 256MB pamięci.

Nie muszę oczywiście wspominać o konieczności posiadania karty sieciowej, bądź jakiegoś modemu. Konfiguracja połączenia sieciowego jest jednak poza zasięgiem pojęć pokrywanych przez ten poradnik. Przy stosowaniu słabszych procesorów warto jednak pamiętać, że markowe karty (Intel, 3com) zabierają z reguły mniej mocy procesora niż takie np. Realteki.

Na tym etapie zakładam, że masz już zainstalowany system Slackware Linux i poprawnie skonfigurowane połączenie internetowe.

2. Instalacja XML-RPC

Zacząć musimy od instalacji biblioteki XML-RPC, przez którą rtGUI uzyskuje dostęp do rTorrenta. Ściągamy ją ze strony http://xmlrpc-c.sf.net. Sam wszystko testowałem na wersji „Super Stable” (na dzień pisania oznaczonej numerkiem 1.06.32), i nie napotkałem żadnych problemów. Po ściągnięciu rozpakowywujemy i kompilujemy :

tar -zxf xmlrpc-c*
cd xmlrpc-c*
./configure --disable-wininet-client --disable-libwww-client --disable-abyss-server --disable-cgi-server --disable-abyss-threads
make
make install

Tym sposobem mamy zainstalowaną działającą bibliotekę XML-RPC, przejdźmy więc do instalacji PHP.

3. Instalacja PHP

rtGUI oparty jest na PHP i wykorzystuje technologię AJAX. Potrzebować więc będziemy do jego obsługi działającego PHP oraz odpowiedniego serwera HTTP (o tym później).

Wchodzimy więc na polski mirror PHP – http://pl.php.net i ściągamy najnowszy kod źródłowy PHP. Na czas pisania tego artykułu jest to 5.2.8 i działa on bezproblemowo z stosowanymi tutaj wersjami lighttpd i rtGUI.

Po ściągnięciu rozpakowywujemy paczkę i kompilujemy :

tar -jxf php*
cd php*
./configure --enable-fastcgi --enable-force-cgi-redirect --enable-discard-path --disable-ipv6 --with-xmlrpc
make
make install

Tym sposobem mamy zainstalowaną binarkę CGI w systemie, domyślnie znajduje się ona w katalogu /usr/local/bin pod nazwą php-cgi. W celu sprawdzenia można wywołać ją z przełącznikiem -v, co u mnie dało następujący efekt :

root@sandbox:~# php-cgi -v
PHP 5.2.8 (cgi-fcgi) (built: Jan 10 2009 12:36:56)
Copyright (c) 1997-2008 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies

i jest oznaką poprawnie działającego PHP. Kopiujemy jeszcze jego konfigurację do /usr/local/lib :

cp php.ini-dist /usr/local/lib/php.ini

i ewentualnie wprowadzamy do niej jakieś swoje zmiany. Zajmijmy się teraz instalacją serwera HTTP i zintegrowaniem go z naszą instalacją PHP, ale najpierw załóżmy konto, z którego uprawnieniami będą wywoływane wszystkie serwery związane z „torrentowaniem”.

4. Utworzenie dedykowanego użytkownika dla serwerów związanych z rTorrentem

Najłatwiej, oczywiście, byłoby uruchamiać wszystkie serwery z uprawnieniami roota. Niestety, wiąże się to z dość dużą dziurą w zabezpieczeniach, bo wszystkie polecenia są wykonywane z pełnym dostępem do systemu plików. Tak więc stworzymy użytkownika z prawami do zapisu/odczytu tylko w paru katalogach i odpowiednią dla niego grupę. Ja nazwałem jedno i drugie nie inaczej, tylko „torrent”. Cała procedura ucieka się do dwóch komend :

groupadd torrent
useradd -g torrent -d /home/torrent -s /bin/bash -m torrent

Pierwsza z nich utworzy grupę o nazwie „torrent”, druga doda do niej użytkownika o tej samej nazwie, z katalogiem domowym w /home/torrent, i shellem /bin/bash (niestety, shell jest konieczny, jeśli chcemy tam rtorrenta uruchomić – jeśli damy np. /bin/false to dtach odmówi uruchomienia się, a co za tym idzie, też rtorrent). Katalog domowy zostanie utworzony jeśli nie istnieje (-m).

5. Instalacja Lighttpd i włączenie obsługi PHP

Skorzystamy z Lighttpd, ponieważ ma on już wbudowany moduł SCGI, służący do dostępu do socketów XMLRPC, a poza tym dlatego, że Apache jest naprawdę superfajny, ale wydaje mi się, że w tej akurat sytuacji będzie przerostem formy nad treścią – ot, najzwyklej nie ma możliwości wykorzystania jego wszystkich możliwości.

Stroną domową tego serwera jest www.lighttpd.net, stamtąd też można pobrać jego kod źródłowy. Najnowszą wersją na dzień pisania jest 1.4.20. Po ściągnięciu rozpakowywujemy i kompilujemy następująco :

tar -jxf lighttpd*
cd lighttpd*
./configure --disable-ipv6
make
make install

Takim sposobem mamy już elegancko zainstalowane Lighttpd, zostało nam jeszcze jego skonfigurować. W tym celu kopiujemy przykładową konfigurację do /etc :

cp doc/lighttpd.conf /etc/lighttpd.conf

i otwieramy go w naszym ulubionym edytorze tekstu (w moim przypadku mcedit). Tam zmieniamy następujące rzeczy :

  1. wywalamy hasza przy „mod_fastcgi” i „mod_auth” na liście modułów,
  2. dodajemy „mod_scgi”,
  3. wywalamy hasze przy konfiguracji serwera FastCGI (wszystkie ścieżki są ustalone tak, że będą działać przy domyślnej instalacji, nie ma więc potrzeby nic zmieniać),
  4. wywalamy hasze przy server.username i server.groupname i zmieniamy ich wartości na odpowiedniego użytkownika i grupę, na których będzie pracował serwer (rozdział 4),
  5. dodajemy obsługę SCGI wpisując :

scgi.server = (
"/RPC2" =>
( "127.0.0.1" =>
(
"socket" => "/home/torrent/rpc.socket", # zmień na ścieżkę katalogu, do którego będą ściągane torrenty, ale zostaw "rpc.socket"
"check-local" => "disable",
"disable-time" => 0,
)
)
)

Oczywiście nikt nikomu nie broni zmienić ścieżek do plików udostępnianych przez serwer bądź lokalizacji przechowywanych logów i PIDów. Na potrzeby poradnika przyjmę, że używane są domyślne – odpowiednio /srv/www/htdocs, /var/log/lighttpd oraz /var/run/lighttpd. Drugi i trzeci z tych katalogów musimy utworzyć i zmienić jego właściciela –

mkdir /var/log/lighttpd
mkdir /var/run/lighttpd
chown torrent:torrent /var/log/lighttpd/
chown torrent:torrent /var/run/lighttpd/

Teraz spróbujemy odpalić naszego Lighttpd :

lighttpd -f /etc/lighttpd.conf

Jeśli do konsoli nie zostało nic zwrócone, to znaczy, że serwer poprawnie odczytał i zastosował konfigurację, chociaż nie jest powiedziane, że się uruchomił. Przetestujemy więc jego integrację z PHP, tworząc w jego katalogu głównym prosty skrypt o nazwie index.php :

<?php
phpinfo();
?>

Po wejściu na http://localhost powinna się ukazać tabelka z informacjami o instalacji PHP. Jest to oznaka, że serwer i jego integracja z PHP działa poprawnie. Jeśli tak nie jest – odsyłam do errorloga lighttpd, gdzie z reguły znajdzie się źródło problemu.

Jeśli lighttpd działa poprawnie, zamknijmy go (killall lighttpd). Teraz praktycznie rzecz najważniejsza – libtorrent i rTorrent.

6. Instalacja libtorrent i rTorrent.

libtorrent to biblioteka zawierająca implementację sieci BitTorrent, napisana w C++. Korzysta z niej właśnie rTorrent. Stroną domową tej biblioteki, jak i programu, jest http://libtorrent.rakshasa.no/ – stamtąd pobieramy te dwie rzeczy. Ja korzystam z wersji „stable”, na dzień dzisiejszy najnowsze to libtorrent 0.12.2 i rTorrent 0.8.2.

Uwaga! Podczas kompilacji możemy się natknąć na brak paru bibliotek – w moim przypadku była to libsigc++ – aby szybko rozwiązać ten problem, warto najpierw ich poszukać w postaci paczki slackware’owskiej na płycie, a później na googlach. Jeśli brakować nam będzie wspomnianego libsigc++ – tgz tutaj : http://repository.slacky.eu/slackware-12.2/libraries/libsigc++/2.2.3/libsigc++-2.2.3-i486-1as.tgz

tar -zxf libtorrent*
cd libtorrent*
./configure --disable-ipv6
make
make install

Teraz rTorrent :

tar -zxf rtorrent*
cd rtorrent*
./configure --with-xmlrpc-c
make
make install

rTorrent przy uruchomieniu pewnie jeszcze będzie się burzył, że nie może znaleźć libtorrenta (który został zainstalowany w /usr/local/lib) – wtedy załatwiamy sprawę szybko i sprawnie komendą :

ln -s /usr/local/lib/libtorrent.so.9.2.0 /usr/lib/libtorrent.so.9

Teraz wpisujemy „rtorrent” i sprawdzamy czy działa. Jeśli ujrzymy jego interfejs – wszystko jest w porządku. Zamknijmy go jednak na razie (CTRL-Q) i przystąpmy do jego konfiguracji. Wszystko zapisujemy oczywiście w /home/torrent, bo przecież rtorrent będzie odpalany spod użytkownika „torrent”.

Konfiguracja rTorrenta sprowadza się do wyedytowania pliku .rtorrent.rc, który powinien się znajdować w katalogu domowym użytkownika. Przykładowy plik znajduje się tutaj – http://libtorrent.rakshasa.no/browser/trunk/rtorrent/doc/rtorrent.rc?rev=latest – w szczegóły konfiguracji nie będę wchodził, bo jest to sprawa raczej indywidualna, a opcje w tym pliku są raczej oczywiste i dobrze objaśnione. Oczywistym wydaje się włączenie szyfrowania, DHT, trackerów UDP i PEX. Co do katalogów – ja ustawiam ścieżkę do ściągania po prostu na /home/torrent, sesję na /home/torrent/session i – ważne! – katalog „nowych torrentów” na /home/torrent/newtorrents (jest to potrzebne do poprawnego działania rtGUI). Nie zapominamy oczywiście o włączeniu obsługi dla XMLRPC linijką :

scgi_local = /home/torrent/rpc.socket # ścieżka podana tutaj musi być taka sama jak wcześniej w konfigu lighttpd!

Warto też włączyć wsparcie dla UTF-8 :

encoding_list = UTF-8

Tym sposobem mamy skonfigurowany rTorrent dla użytkownika „torrent”. Uruchomimy go więc jako ten użytkownik :

su - torrent -c "rtorrent"

Jeśli po wywołaniu tej komendy ukaże się nam interfejs rTorrenta, dumnie oznajmiając, że „XMLRPC initialized with 444 functions”, to wszystko gra i program został skonfigurowany poprawnie. Pomijam kwestie np. przekierowania portów, bo to już poza zasięgiem tego poradnika.

7. dtach.

Jako że rTorrent jest programem ncurses’owskim, wywołuje się wyświetlając swój konsolowy interfejs. Nie ma przełącznika w linii komend, dzięki któremu możliwe byłoby „zdemonizowanie” tego programu. Trzeba się posłużyć programem zewnętrznym. Osobiście bardzo długi czas próbowałem do tego celu użyć wszystkim znanego screen’a, jednak bez względu na to, jak długo i mocno próbowałem, on wiedział lepiej i nie chciał współpracować. Na stronie rTorrenta jest jednak wspomniany inny program – dtach. I on właśnie zadziałał bez problemu, i go właśnie do tego celu użyjemy.

Na początek oczywiście ściągamy ten program – jego stroną domową jest http://dtach.sf.net. Na dzień pisania najnowszą wersją jest 0.8.

tar -zxf dtach*.tar.gz
cd dtach*
./configure
make
mv dtach /usr/bin/

Tym sposobem mamy zainstalowany program dtach, dzięki któremu możemy „chować” programy i wracać do nich później. Spróbujmy więc wywołać rtorrenta jako użytkownik „torrent” i jednocześnie go schować :

su - torrent -c "dtach -n torrent rtorrent"

Spowoduje to uruchomienie jako użytkownik „torrent” komendy „dtach -n torrent rtorrent”, która to spowoduje utworzenie nowego gniazda ekranowego o nazwie „torrent”, uruchomienie w nim komendy „rtorrent” i jego automatyczne schowanie. Nie wiemy więc, czy rTorrent działa, ale możemy to szybko sprawdzić wpisując

ps -A | grep rtorrent

Jeśli zobaczymy PID procesu i jego nazwę obok, to wszystko gra.

8. Instalacja rtGUI.

Instalacja rtGUI jest dziecinnie prosta i sprowadza się do rozpakowania paczki z tym interfejsem w katalogu z dokumentami serwera HTTP i wyedytowania pliku konfiguracyjnego. Domową stroną tego projektu jest http://code.google.com/p/rtgui/, stamtąd też pobieramy jego źródła. Na dzień pisania najnowszą wersją jest 0.2.6.

cd /srv/www/htdocs # przy okazji wywal index.php, bo to niedobrze udostępniać takie dane
wget http://rtgui.googlecode.com/files/rtgui-0.2.6.tgz
tar -zxf rtgui-0.2.6.tgz
cd rtgui
cp config.php.example config.php

Następnie edytujemy tak otrzymany config.php zmieniając tam wartość zmiennej „watchdir” na ścieżkę „nowych torrentów” w konfiguracji rTorrenta. Ponadto zmieniamy też zmienną „downloaddir” na ścieżkę, gdzie pojawiają się ściągane dane oraz zmienną „rtguiurl” – najlepiej zamiast adresu IP wpisać tam domenę, szczególnie jeśli mamy dynamiczny IP. Można też pobawić się jeszcze w kolorowanie adresów trackera i podobne bajery, ale nie jest to w żadnym przypadku konieczne.

W tym momencie rtGUI powinien już poprawnie działać. Wchodzimy więc na http://localhost/rtgui/ (bądź ze zdalnej maszyny, graficzną przeglądarką) i widzimy piękny GUI do rtorrenta. Dobrze jest też przetestować możliwość uploadu torrenta.

Jeśli coś nie działa – odsyłam do rozdziału „Problemy” (na końcu).

9. Instalacja PureFTPd.

Mając ściągnięte pliki na dysku, chcielibyśmy mieć do nich dostęp. rtGUI takiej możliwości nam nie daje, dlatego na maszynie postawimy jeszcze serwer FTP, a mianowicie PureFTPd. Jego stroną domową jest www.pureftpd.org, z której to też pobieramy najnowszą wersję. Na dzień pisania jest to 1.0.21.

tar -jxf pure-ftpd*.tar.bz2
cd pure-ftpd*
./configure --with-largefile --with-puredb
make
make install

Mamy już zainstalowany serwer FTP. Jego konfiguracja polega na uruchomieniu go z odpowiednimi parametrami, jednak najpierw trzeba skonfigurować użytkowników, którzy będą mieli do niego dostęp. Aby to zrobić, użyjemy „wirtualnych użytkowników”, którzy nie istnieją w systemie, jednak pureFTPd ich rozpoznaje i przyznaje im dostęp do serwera.

Początkowo musimy utworzyć grupę i użytkownika, do której będą „wpadali” wszyscy użytkownicy wirtualni.

groupadd ftpgroup
useradd -g ftpgroup -d /dev/null -s /bin/false ftpuser

Teraz możemy już dodawać użytkowników wirtualnych. Niech nasz nazywa się „torrent”.

pure-pw useradd torrent -u ftpuser -d /home/torrent

Komenda ta spowoduje dodanie użytkownika torrent, „wpadającego” pod użytkownika systemowego ftpuser i mogącego uzyskać dostęp przez FTP tylko i wyłącznie do swojego domowego katalogu, czyli /home/torrent. Po jej wywołaniu zostaniemy dwukrotnie zapytani o hasło. Użytkownicy wirtualni są przechowywani początkowo w pliku w standardzie podobnym do /etc/passwd, ulokowanego pod nazwą pureftpd.passwd w katalogu /etc. Aby jednak mógł z tego pliku korzystać sam pureFTPd, musi być on w formacie pdb – co uzyskujemy komendą

pure-pw mkdb

Komendę tą musimy powtarzać za każdym dodaniem bądź zmodyfikowaniem użytkownika. Możemy teraz już odpalić serwer następującą komendą :

pure-ftpd -4 -A -B -c 5 -E -p 59900:60000 -P doritos.dontexist.org -l puredb:/etc/pureftpd.pdb -u 1000

Spowoduje ona uruchomienie pureFTPd nasłuchującego tylko na adresach IPv4, zamknięcie wszystkich do swoich katalogów domowych (w sensie, że nie mogą z nich wychodzić na teren systemu plików), w trybie demona, ograniczenie jednoczesnej liczby połączeń do 5, odrzucanie wszelkich loginów anonimowych, z zakresem portów używanych dla pasywnego FTP od 59900 do 60000, z IP podawanym w trybie pasywnym odpowiadającym hostowi doritos.dontexist.org (uaktualniane z każdym zalogowaniem się użytkownika – dobre rozwiązanie jeśli IP jest dynamiczne), odczytanie bazy danych wirtualnych użytkowników z /etc/pureftpd.pdb i odrzucanie wszelkich loginów na konta systemowe, jeśli ich UID jest niższy od 1000.

10. Zabezpieczenie rtGUI.

Nie chcemy, oczywiście, żeby do naszego rTorrenta przez GUI miał dostęp ktokolwiek. Dlatego ograniczymy dostęp do tego katalogu z poziomu lighttpd – aby wejść do „rtgui”, potrzebne będzie podanie nazwy użytkownika i hasła. W tym celu edytujemy /etc/lighttpd.conf i na jego końcu dodajemy następujące linijki :

auth.backend = "plain"
auth.backend.plain.userfile = "/etc/lighttpdpasswd"
auth.require = ( "/rtgui/" =>
(
"method" => "basic",
"realm" => "rTorrent",
"require" => "user=torrent" # zmien w zaleznosci od tego, jakiej nazwy uzytkownika chcesz uzywac
)
)

I tworzymy plik /etc/lighttpdpasswd, w którym wpisujemy nazwę użytkownika i, po dwukropku hasło, czyli np. torrent:supertajnehaslo. Dbamy oczywiście o zabezpieczenie tego pliku :

chmod 400 /etc/lighttpdpasswd
chown torrent:torrent /etc/lighttpdpasswd

Dzięki temu nikt poza użytkownikiem torrent z grupy torrent go nie odczyta.

11. Skrypty startowe.

W tym momencie wszystko powinno być skonfigurowane w taki sposób, że działa. Warto to jeszcze sprawdzić, wywołując – w kolejności! – rtorrent, lighttpd i pure-ftpd. rTorrent musi zostać koniecznie wywołany przed lighttpd, ponieważ tworzy gniazdo do dostępu do siebie przez XMLRPC – jeśli lighttpd go nie zlokalizuje, zgłupieje i przy dostępie do rtgui zobaczymy smutny komunikat „Cannot connect to rtorrent :(„.

Chcielibyśmy też, aby wszystkie te demony były wywoływane przy starcie systemu. Napisałem więc parę bardzo prostych skryptów które się właśnie tym zajmują, proszę je dostosować do własnych potrzeb i nie zapomnieć dodać im uprawnień do uruchomienia (chmod +x nazwapliku)

rc.lighttpd :
#!/bin/sh
#Start/stop/restart Lighttpd
light_start() {
/usr/local/sbin/lighttpd -f /etc/lighttpd.conf
}
light_stop() {
killall lighttpd
}
case "$1" in
'start')
echo "Starting Lighttpd..."
light_start
;;
'stop')
echo "Stopping Lighttpd..."
light_stop
;;
'restart')
echo "Restarting Lighttpd..."
light_stop
light_start
;;
*)
echo "$0 start|stop|restart"
;;
esac

rc.pureftpd :
#!/bin/sh
#Start/stop/restart Pure-FTPd
pure_start() {
/usr/local/sbin/pure-ftpd -4 -A -B -c 5 -E -p 59900:60000 -P doritos.dontexist.org -l puredb:/etc/pureftpd.pdb -u 1000
}
pure_stop() {
killall pure-ftpd
}
case "$1" in
'start')
echo "Starting Pure-FTPd..."
pure_start
;;
'stop')
echo "Stopping Pure-FTPd..."
pure_stop
;;
'restart')
echo "Restarting Pure-FTPd..."
pure_stop
pure_start
;;
*)
echo "$0 start|stop|restart"
;;
esac

rc.rtorrent :
#!/bin/sh
#Start/stop/restart rTorrent as a different system user
rtorrent_init() {
if [ -f /home/torrent/rpc.socket ] ; then
rm -f /home/torrent/rpc.socket
fi
if [ -f /home/torrent/torrent ] ; then
rm -f /home/torrent/torrent
fi
}
rtorrent_start() {
su - torrent -c "dtach -n torrent /usr/local/bin/rtorrent"
}
rtorrent_stop() {
killall rtorrent
}
case "$1" in
'start')
echo "Starting rTorrent..."
rtorrent_init
rtorrent_start
;;
'stop')
echo "Stopping rTorrent..."
rtorrent_stop
;;
'restart')
echo "Restarting rTorrent..."
rtorrent_stop
rtorrent_start
;;
*)
echo "$0 start|stop|restart"
;;
esac

Trzeba też te skrypty dodać do rc.M i rc.6 według ustalonego w nich wzoru. W obydwu przypadkach nie dodajemy ich na samym końcu, lecz tak w środku mniej więcej, razem z innymi serwisami. Zamykamy je oczywiście w kolejności odwrotnej do tej, w której je uruchamialiśmy. Ale żeby nie było, do dorzucenia :

do rc.M :

# Start rTorrent
if [ -x /etc/rc.d/rc.rtorrent ]; then
. /etc/rc.d/rc.rtorrent start
fi
# Start Lighttpd
if [ -x /etc/rc.d/rc.lighttpd ]; then
. /etc/rc.d/rc.lighttpd start
fi
# Start Pure-FTPd
if [ -x /etc/rc.d/rc.pureftpd ]; then
. /etc/rc.d/rc.pureftpd start
fi

do rc.6 :

# Stop Pure-FTPd
if [ -x /etc/rc.d/rc.pureftpd ]; then
. /etc/rc.d/rc.pureftpd stop
fi
# Stop Lighttpd
if [ -x /etc/rc.d/rc.lighttpd ]; then
. /etc/rc.d/rc.lighttpd stop
fi
# Stop rTorrent
if [ -x /etc/rc.d/rc.rtorrent ]; then
. /etc/rc.d/rc.rtorrent stop
fi

12. Koniec.

Jeśli przeszedłeś wszystkie kroki od początku do końca, to po ponownym uruchomieniu komputera powinieneś mieć w stu procentach działającą zdalną maszynę torrentową.

13. Problemy.

a) rtGUI wywala „Cannot connect to rtorrent :(”
Najwyraźniej lighttpd nie jest w stanie podpiąć się do socketa XMLRPC – najczęstszą przyczyną tego błędu jest to, że Lighttpd został uruchomiony PRZED rTorrentem, a zawsze musimy najpierw uruchomić właśnie rTorrenta, a później dopiero Lighttpd. Jeśli to nie pomaga – jest zawsze errorlog lighttpd, domyślnie  zlokalizowany w /var/log/lighttpd – przyczyny można szukać tam.

Informacje o Daniel

freezingly cold soul
Ten wpis został opublikowany w kategorii komputer. Dodaj zakładkę do bezpośredniego odnośnika.

3 odpowiedzi na „Zdalna maszyna torrentowa oparta na Slackware Linux i rTorrent z wykorzystaniem rtGUI – krok po kroku

  1. pawel pisze:

    Artykul nie powiem, zacny, ale niestety mam problem z odpaleniem rtGUI. xmlrpc sprawia wrazenie dzialajacego:
    $ xmlrpc 192.168.1.104 get_upload_rate
    Result:

    Integer: 15360

    rtGUI wywala Cannot connect to rtorrent. Uzywam archlinux’a, a zamiast dtach screen (skrypt z wiki archlinux’a). Program na pewno dziala i na pewno jest uruchamiany po lighttpd. W logach nic nie ma, gdzie szukac przyczyny? Podejrzewam ze chodzi o config rtGUI, chce to skonfigurowac pod dostep z zewnatrz. Z gory dzieki za wskazowki.

  2. Daniel pisze:

    może brak wkompilowanej obsługi XMLRPC do PHP? jedyne, co mi w sumie przychodzi do głowy…w configu rtgui niewiele można pozmieniać, a tym bardziej namieszać, więc wątpię, żeby właśnie tam siedział sęk.

  3. ArtKar pisze:

    witam,
    mam pewne pytanie… niby w temacie ale nie do konca.
    otoz posiadam na serverze niceshapera, ktory przycina pasmo wg HTB. postawilem dodatkowo wlasnie rtorrenta.

    wiesz moze czy i w jaki sposob powinienem w klasach niceshapera uwzglednic server? bo chyba powinienem skoro ma torrenta na sobie. dopoki tego nie zrobie to pasmo dla torrenta nie leci wg regul HTB, prawda? czyli torrent moze zawalic cale lacze i klapa.
    dzieki

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Log Out / Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Log Out / Zmień )

Facebook photo

Komentujesz korzystając z konta Facebook. Log Out / Zmień )

Google+ photo

Komentujesz korzystając z konta Google+. Log Out / Zmień )

Connecting to %s