Transmission - Bit Torrent klient - 1

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 10877×

Transmission 1.93

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.

Balení

Transmission je jedinečný tím, že se dodává v několika provedeních.

  1. GTK2 GUI aplikace

  2. QT GUI aplikace

  3. MacOS aplikace

  4. Transmission daemon

  5. Web aplikace pro ovládání daemona

  6. CLI aplikace transmission-remote pro vzdálené ovládání daemona z řádky

  7. stahovač transmissioncli z řádky ala wget

  8. 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).

Co Transmission umí

Download limity

  1. Dvě nastavení globálních upload/download limitů

  2. 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.

  3. U jednotlivých torrentů můžete vypnout respektování globálních upload/download limitů

  4. U jednotlivých torrentů můžete nastavit zrušení upload nebo download limitu

Stahování / Download

  1. Oddělené adresáře pro dokončené a nedokončené torrenty

  2. Možnost sledovat adresář na výskyt .torrent souborů a pak automaticky začít stahovat torrenty

  3. Možnost stahovat jen vybrané soubory z torrentu

  4. Nastavení priority (malá, standardní, vysoká) u vybraných souborů v torrentu

  5. Přesunutí torrentu do jiného adresáře

  6. Přiřazení existujících souborů k torrentu - import jiným způsobem stažených dat

Distribuce / Seedování

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.

  1. Podpora globálního seed ratio - standardně se přiřadí ke každému nově přidanému torrentu.

  2. 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í

  3. 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.

Pokročilé funkce

  1. Několik úrovní šifrování spojení - vyžadováno, preferováno, tolerováno

  2. uPNP mapování portů

  3. Podpora Peer Exchange protokolu

  4. Podpora DHT databáze

  5. Podpora blacklistu

  6. Hledání peerů na lokální síti. Způsob vyhledávání je kompatibilní s programem uTorrent.

  7. Podpora magnet linků

Co neumí

Po několikatýdením užívání Transmission jsem zjistil tyto neimplementované ale jinak užitečné vlastnosti:

  1. Stahování torrentů z RSS feedů. Velmi dlouhodobě žádaná funkce, implementace se zatím neplánuje. Musí se na to použít externí script.

  2. Nastavovat download/upload rychlosti podle IP adresy připojeného klienta

  3. 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.

  4. Pokud je torrent již v seznamu stahovaných tak nelze přidáním dalšího .torrent souboru načíst případné další trackery

GTK GUI verze

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í

Web rozhraní

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.

Příkazová řádka

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]

Příště

V druhém díle si ukážeme jak nainstalovat a používat Transmission daemona na serveru.

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