Transmission - Bit Torrent klient - 2

Jak nainstalovat a provozovat Transmission na serveru.

14.7.2010 00:00 | Radim Kolář | přečteno 8790×

Transmission na serveru

BitTorrent klient transmission lze provozovat v neinteraktivním režimu s využitím klient/server architektury. Když pomineme provozování rtorrentu ve screenu tak je transmission jedinou rozumnou volbou pro provozování bittorrent klienta na serverech. Proto je taky často nasazován na NAS boxy a do video přehrávačů s hardiskem běžících pod linuxem. Na rozdíl od rtorrentu ve screenu který je na ovládání poněkud hardcore se s transmission pracuje velice pohodlně.

Stahování bittorrentů na serveru má několik výhod. V první řadě je to kvalitní síťové připojení s velkým přenosovým pásmem. Narozdíl od ADSL linek je připojení serverů symetrické - download je stejně rychlý jako upload. To znamená že můžeme odeslat do sítě více dat čímž nám ostatní peery na oplátku zase více dat pošlou a stažení bude tak výrazně rychlejší. Servery mívají také kvalitnější připojení s menší latencí a menší ztrátovostí dat než počítače připojené přes ADSL nebo nedejbože přes Wifi na větší vzdálenost. Poslední výhodou je čas k dispozici. Server běží neustále a tak může torrenty jednak stahovat neustále a jednak se mu může díky tomu že je neustále online povést stáhnout i torrent který má jen málo seedu, které jsou navíc připojeny jen občas.

Kompilace

Distribuce mívají transmission v zastaralých verzích, protože jde o rychle se vyvíjející se projekt, je nejlepší vlastní kompilace. Pro kompilaci budeme potřebovat knihovny libcurl a libevent. V Ubuntu nainstalujeme balíčky libcurl4-openssl-dev, libevent-dev, intltool. Ve FreeBSD budeme potřebovat porty devel/libevent a ftp/curl.

Pokud máme starou verzi libevent 1.3 která je například v Ubuntu 8.04 LTS tak potřebujeme odinstalovat starou libevent a pak stáhnout verzi 1.4 odtud a nainstalovat ji pomocí známého ./configure;make install ručně.

Vlastní kompilaci a instalaci transmission daemona provedeme pomocí:

./configure --enable-daemon LDFLAGS="-L/usr/local/lib" CPPFLAGS="-I/usr/local/include"
make install

Instalace

Instalace přeloženého programu transmission-daemon je triviální, stačí jej spustit bez parametrů pod uživatelem který má vlastnit stažená data a on se sám spustí na pozadí. Pokud nerebootujete server příliš často, u mých FreeBSD serverů je průměrný uptime okolo 300 dnů, tak ho můžete spouštět ručně a nemusíte vytvářet jeho startovací skript v /etc/init.d

Konfigurace

Konfigurace se provádí buďto přímou editací /.config/transmission-daemon/settings.json nebo pomocí programu pro vzdálené ovládání daemona transmission-remote. Použití ovládacího programu je mnohem jednoduší, ale není v něm možné nastavit všechny volby.

Po spuštění daemona si vypíšeme jeho tovární nastavení:

> transmission-remote -si
VERSION
  Daemon version: 1.93 (10621)
  RPC version: 8
  RPC minimum version: 1

CONFIG
  Configuration directory: /home/admin/.config/transmission-daemon
  Download directory: /home/admin/Downloads
  Listenport: 51413
  Portforwarding enabled: Yes
  Peer exchange allowed: Yes
  Encryption: preferred

LIMITS
  Peer limit: 240
  Default seed ratio limit: Unlimited
  Upload speed limit: Unlimited  (Disabled limit: 100 KB/s; Disabled turtle limit: 50 KB/s)
  Download speed limit: Unlimited  (Disabled limit: 100 KB/s; Disabled turtle limit: 50 KB/s)

Tak se pustíme do nastavování. Zapneme povinné šifrování a zvolíme náhodně port na kterém budeme přijímat příchozí spojení abychom se vyhnuli případnému traffic shapingu který dělají někteří ISP na standardních BitTorrent portech.

> transmission-remote --random-port --encryption-required

Zapneme použití DHT databáze, vypneme uPNP mapování portů protože to na serveru nepotřebujeme, vypneme hledání lokálních peerů (novinka v Transmission 2.0) a zapneme peer exchange protokol protože bez něj nemá DHT prakticky cenu.

> transmission-remote --dht --no-portmap  --no-lpd --pex

Pokud se jedná o přenosové pásmo zabírané transmission na serveru tak většina serverů má poměr mezi příchozím a odchozím trafikem zhruba 1:8 ve prospěch odchozího. Download rychlost transmission proto omezovat prakticky nemusíme jelikož máme kapacity dostatek. Omezit musíme upload rychlost. Další šikovná věc je že server mimo špičku spotřebovává výrazně méně přenosového pásma a tak můžeme Transmission přidat.

Nastavíme download a upload limity abychom si moc nezacpávali linku řekněme 100 KB Upload a 250 KB Download. Nastavíme také default seed ratio na 1.8, přenosového pásma máme na serveru dost a navíc můžeme seedovat 24hodin denně.

> transmission-remote --downlimit 250 --uplimit 100 --global-seedratio 1.8

Ve špičce ovšem budeme chtít rychlost omezit na řekněme 30KB upload a 150KB download.

> transmission-remote --alt-speed-downlimit 150 --alt-speed-uplimit 30

Špičku máme od pondělí do pátku 8:00 - 16:00

> transmission-remote --alt-speed-days 1-5 --alt-speed-time-begin 0800 --alt-speed-time-end 1600 \
  --alt-speed-scheduler

Teď už jen nastavíme kam se má downloadovat a nastavení je hotovo.

> transmission-remote --download-dir /home/admin/rtorrent/down/
> transmission-remote --incomplete-dir /home/admin/rtorrent/wip/

Nyní musíme nastavení uložit protože to daemon nedělá automaticky ale jen při svém ukončení. To je dost nemilá vlastnost protože když dojde k výpadku proudu tak ztratíme jeho současné nastavení pokud bylo odlišné od nastavení s kterým byl spuštěn. Nastavení uložíme:

> killall transmission-daemon

a je uloženo. Konfigurační soubor programu transmission-daemon se jmenuje settings.json, je v JSON formátu a nachází v adresáři ~/.config/transmission-daemon/ uživatele který daemona spustil. Daemon totiž nemusí běžet pod rootem.

Poslední věcí na kterou bych rád upozornil a není součástí automaticky vytvořeného konfiguračního souboru je možnost automaticky sledovat adresář na výskyt .torrent souborů. Každý .torrent soubor který bude v adresáři objeven se automaticky začne stahovat. Pokud ho však později soubor z adresáře odstraníte nedojde ani k zastavení stahování ani k vymazání dat. Tyto věci si musíte zařídit stejně jako u ručně přidaných torrentů. Tuto vlastnost aktivujete tak že do konfiguračního souboru settings.json přidáte následující:

"watch-dir": "/home/admin/rtorrent/watch",
"watch-dir-enabled": true

Pokud chceme ovládat daemona vzdáleně z jiného počítače potřebujeme přidat jeho adresu do whitelistu. Zastavte daemona a překontrolujte zda máte v settings.json uvedeno:

"rpc-authentication-required": false,
"rpc-whitelist-enabled": true,
"rpc-whitelist": "127.0.0.1,88.162.81.225",

Podrobnější dokumentace ke konfiguračnímu souboru je zde.

Srovnání s rtorrentem

Jak je z použité konfigurace vidět, používal jsem dříve na serveru program rtorrent ve screenu. Musím říci, že se s Transmission výrazně snadněji pracuje - ovládání z příkazová řádky je snadné a intuitivní, což se o klávesách v rtorrentu říct nedalo, navíc toho umí transmission trochu víc a tak bych už zpět neměnil - je s ním radost pracovat.

Online verze článku: http://www.linuxsoft.cz/article.php?id_article=1732