Podíváme se na Transmission, přenositelného a jednoduchého Bit Torrent klienta.
24.6.2010 10:00 | Radim Kolář | přečteno 11190×
Bit Torrent klient Transmission se v poslední době stává ve světě Unixu a MacOS stále více a více oblíbenějším. Vydobil si své místo standardního BT klienta v distribuci Ubuntu a díky svým malým systémovým nárokům a hezky vypadajícímu web rozhraní se zabydlel i v komerčních NAS boxech.
Úspěch v komerčních NAS boxech považuji především za znamení toho, že Bit Torrent technologie už není vnímána především jako nástroj pirátů. Průlom ve vnímání této technologie přinesla Opera verze 9, která obsahovala dvě kontraverzní vylepšení s kterými si do té doby nikdo netroufl přijít - vestavěný blokovač reklam a klient pro Bit Torrent. Bit Torrent upoutal tak velkou pozornost a tak se kontraverznímu blokovači reklam dostalo jen okrajové pozornosti. Zabudovaný a velmi snadno použitelný blokovač reklam dodávaný v základní verzi prohlížeče je revoluční i dnes.
Transmission je jedinečný tím, že se dodává v několika provedeních.
GTK2 GUI aplikace
QT GUI aplikace
MacOS aplikace
Transmission daemon
Web aplikace pro ovládání daemona
CLI aplikace transmission-remote pro vzdálené ovládání daemona z řádky
stahovač transmissioncli z řádky ala wget
GUI aplikace pro ovládání daemona - externí projekt Transmission remote GUI.
Oficiální verze pro MS Windows v současné době není, ale můžete si ji vyrobit, protože grafická QT knihovna je portována i do prostředí Windows.
Transmission umí všechny základní funkce, které potřebujete od BitTorrent klienta. Ne každé rozhraní dává přístup ke každé jeho funkci - kupříkladu web rozhraní zpřístupňuje jen základní funkce. Není konfigurovatelný do takových detailů a nemá tolik pokročilých funkcí a pluginů jako třeba Azerus, ale je zaměřen na takovou cílovou skupinu které to nevadí. Není tak agresivní v navazování spojení jako uTorrent a proto nedosahuje takových přenosových rychlostí na torrentech s menším počtem peeru (do deseti).
Dvě nastavení globálních upload/download limitů
Mezi těmito nastavení se dá přepínat podle časového plánu (podle dnů v týdnu a hodin) nebo ručně. Říká se jim želví a normální download nastavení, přičemž se očekává že nastavení želva bude pomalejší a uvolní linku jiným aplikacím.
U jednotlivých torrentů můžete vypnout respektování globálních upload/download limitů
U jednotlivých torrentů můžete nastavit zrušení upload nebo download limitu
Oddělené adresáře pro dokončené a nedokončené torrenty
Možnost sledovat adresář na výskyt .torrent souborů a pak automaticky začít stahovat torrenty
Možnost stahovat jen vybrané soubory z torrentu
Nastavení priority (malá, standardní, vysoká) u vybraných souborů v torrentu
Přesunutí torrentu do jiného adresáře
Přiřazení existujících souborů k torrentu - import jiným způsobem stažených dat
Seed ratio je poměr mezi přijatými a odeslanými daty. Pro férové sdílení se doporučuje používat minimálně seed ratio 1, což znamená naseedovat minimálně tolik dat co jsme stáhli. Protože ne všichni bittorrent uživatelé po stažení seedují tak se obvykle seed ratio používá v rozmezí 1.2-1.5.
Podpora globálního seed ratio - standardně se přiřadí ke každému nově přidanému torrentu.
U každého torrentu lze nastavit specifické seed ratio, případně se vrátit z lokálního zpět ke globálnímu nastavení
Seed ratio se dá u jednotlivých torrentů úplně vypnout, upload bude pak omezen jen rychlostí odchozích dat, nikoliv jejich objemem. Omezení rychlosti odesílání lze v případě potřeby navíc úplně vypnout.
Několik úrovní šifrování spojení - vyžadováno, preferováno, tolerováno
uPNP mapování portů
Podpora Peer Exchange protokolu
Podpora DHT databáze
Podpora blacklistu
Hledání peerů na lokální síti. Způsob vyhledávání je kompatibilní s programem uTorrent.
Podpora magnet linků
Po několikatýdením užívání Transmission jsem zjistil tyto neimplementované ale jinak užitečné vlastnosti:
Stahování torrentů z RSS feedů. Velmi dlouhodobě žádaná funkce, implementace se zatím neplánuje. Musí se na to použít externí script.
Nastavovat download/upload rychlosti podle IP adresy připojeného klienta
Editovat seznam trackerů pro torrent. Toto přes API které poskytuje transmission udělat lze, GUI klienti tuto možnost nabízejí ale neni možné to dělat přes příkazovou řádku.
Pokud je torrent již v seznamu stahovaných tak nelze přidáním dalšího .torrent souboru načíst případné další trackery
Nejčastěji používaným balením bude transmission v GTK2 případně QT grafickém provedení - podle toho zda používáte Gnome nebo KDE. GTK verze pro Gnome je nejpoužívanější.
Nastavení šifrování a blacklistu včetně jeho automatických aktualizací
Jako všichni hlavní BitTorrent klienti tak i Transmission obsahuje web rozhraní přes které ho můžete vzdáleně ovládat. Web rozhraní je zabudováno jednak v GUI klientech a jednak si ho můžete nainstalovat na server v kobinaci s daemonem podobně jako to má udělané FreeNAS, ačkoliv grafické konfigurační rozhraní je součástí FreeNASu nikoliv Transmission.
Web rozhraní Transmission poskytuje jen základní funkce: přídání, odebrání či pauza torrentu. Zobrazuje ale v sidebaru relativně podrobné informace o právě stahovaném torrentu.
CLI klient transmission se podobá známému GNU wgetu. Je to nejjednoduší způsob jak si z příkazové řádky rychle stáhnout torrent, pokud nemáme spuštěného transmission daemona. Tento CLI klient se hodí nejvíce pro torrenty, které se stáhnou rychleji než se ze systému odhlásíme, což bývají nově uveřejněné torrenty s populárním obsahem které mívají tisíce peerů a seedů. Pro pomaleji stahující se torrenty se doporučuje použít daemona, jelikož umí stahovat na pozadí.
Program pro stahování z příkazové řádky se jmenuje transmissioncli a má následující volby:
Usage: transmissioncli [options] <file|url|magnet> Options: -h --help Display this help page and exit -a --announce <url> Set the new torrent's announce URL -b --blocklist Enable peer blocklists -B --no-blocklist Disable peer blocklists -c --comment <comment> Set the new torrent's comment -d --downlimit <speed> Set max download speed in KB/s -D --no-downlimit Don't limit the download speed -er --encryption-required Encrypt all peer connections -ep --encryption-preferred Prefer encrypted peer connections -et --encryption-tolerated Prefer unencrypted peer connections -f --finish <script> Run a script when the torrent finishes -g --config-dir <path> Where to find configuration files -i --info Show torrent details and exit -m --portmap Enable portmapping via NAT-PMP or UPnP -M --no-portmap Disable portmapping -n --new <source> Create a new torrent -p --port <port> Port for incoming peers (Default: 51413) -r --private Set the new torrent's 'private' flag -s --scrape Scrape the torrent and exit -t --tos <tos> Peer socket TOS (0 to 255, default=0) -u --uplimit <speed> Set max upload speed in KB/s -U --no-uplimit Don't limit the upload speed -v --verify Verify the specified torrent -w --download-dir <path> Where to save downloaded data
V praxi to funguje nejlépe s předáním URL na kterém se nechází torrent soubor nebo magnet linku, protože nemusíme torrent soubor ručně stahovat a jen provedeme copy and paste do okna terminálu.
fbsd8:~> transmissioncli -w /tmp "magnet:?xt=urn:btih:817c557566f54146bbdaf9b6b9a9a68a86b84bb4 &dn=Raavan+2010+Hindi+Pre-DVDRip+x264+E-SuB+xRG&tr=http://nemesis.1337x.org/announce" Transmission 1.93 (10621) - http://www.transmissionbt.com/ [11:13:55.831] Transmission 1.93 (10621) started [11:13:55.832] RPC Server: Adding address to whitelist: 127.0.0.1 [11:13:55.835] DHT: Generating new id [11:13:55.943] Saved "/home/hsn/.config/transmissioncli/torrents/Raavan+2010.817c557566f54146.torrent" [11:13:56.179] Port Forwarding (NAT-PMP): initnatpmp succeeded (0) [11:13:56.179] Port Forwarding (NAT-PMP): sendpublicaddressrequest succeeded (2) [11:14:04.216] Port Forwarding: Port Forwarding [11:14:38.846] DHT: Attempting bootstrap from dht.transmissionbt.com [11:15:38.709] Raavan+2010+Hindi+Pre-DVDRip+x264+E-SuB+xRG: Starting DHT announce (poor, 9 nodes) [11:15:55.845] Saved "/home/hsn/.config/transmissioncli/resume/Raavan+2010.817c557566f54146.resume" [11:16:03.981] Port Forwarding: Port Forwarding Progress: 0.0%, dl from 5 of 5 peers (0 KB/s), ul to 0 (0 KB/s) [None] [11:17:10.747] Saved "/home/hsn/.config/transmissioncli/torrents/Raavan 2010.817c557566f54146.torrent" Progress: 0.0%, dl from 5 of 39 peers (14 KB/s), ul to 0 (0 KB/s) [0.00] [11:17:55.856] Saved "/home/hsn/.config/transmissioncli/resume/Raavan 2010.817c557566f54146.resume" [11:17:55.862] Saved "/home/hsn/.config/transmissioncli/stats.json" Progress: 0.0%, dl from 6 of 49 peers (22 KB/s), ul to 0 (0 KB/s) [0.00]
V druhém díle si ukážeme jak nainstalovat a používat Transmission daemona na serveru.