Dienstag, November 08, 2005

bittorrent unter Debian Linux


Traffic records
Originally uploaded by emeidi.

Für was benötigt der gemeine Leecher ein Bittorrent-GUI, wenn es auch weniger performancehungrig im Shell funktioniert? Hier ein kleines Howto, das sich an die semiprofessionellen Linux-Hacker richtet.

Debian-User laden sich zuerst folgende zwei Pakete herunter:

apt-get install screen
apt-get install bittorrent

Exkurs screen

Mit screen lassen sich Terminal-Sessions auch beim Disconnect (ich denke hier an ssh oder entfernt telnet) weiterlaufen lassen. Hierzu ruft man nach einer erfolgreichen Verbindungsaufnahme im Shell einfach den Befehl screen auf, worauf sich die aktuelle Bildschirmanzeige leert. Nun ist man in einem virtuellen screen und kann dort beliebige Programme starten - bspw. ein wget, um eine riesengrosse Datei aus dem Netz zu saugen. Nun drückt man Ctrl-A-D und man springt zurück in das Ursprungs-Shell. Im Hintergrund läuft wget weiter, man kann die SSH-Verbindung sogar trennen, und es lädt weiter herunter.

Wenn man sich am nächsten Morgen wieder einloggt, reicht ein

screen -r

um die "gespeicherte" Session wieder herzustellen. Wer wie ich manchmal mehrere Screens im Hintergrund laufen hat, gibt folgendes ein:

screen -r <pid>

Wer die Nummern partout nicht auswendig kann, kann sich die Liste der geöffneten Screens mittels

screen -ls

anzeigen lassen.

Nun haben wir also das zwingend nötige Werkzeug zur Hand, um Bittorrent-Downloads non-stopp laufen zu lassen - auch, wenn man sich plötzlich aus der Shell ausloggen sollte.

bittorrent

Auf meinem Server habe ich ein spezielles Verzeichnis eingerichtet, in das ich a) die .torrents speichere, deren Inhalt ich heruntergeladen haben möchte sowie b) wo auch gerade die herunterzuladenden Filme etc. gespeichert werden sollen.

Ist das Verzeichnis eingerichtet, eröffne ich zuerst einmal eine neue Screen-Session und starte bittorrent.sh, ein kleines Script, um btlaunchmanycurses alle nötigen Parameter zu übergeben:

screen
cd /usr/local/bin/
./bittorrent.sh

Selbstverständlich benutze ich dazu einen eigens dafür eingerichteten User (bittorrent heisst er bei mir), der nur auf einen kleinen Teil der Harddisk Schreibberechtigung erhält. Man weiss ja nie, wann in dem Tool die ersten Sicherheitslücken auftauchen.

Das Script schaut so aus:

#!/bin/bash
ulimit -n 8192 # Prevent torrents containing lot of files crashing btlaunchmanycurses
cd /multimedia/Incoming/
/usr/bin/btlaunchmanycurses /multimedia/Incoming/ --maxport 6889 --max_upload_rate 5

Sobald ich ein .torrent gefunden habe, dessen Inhalt mir gefällt, lade ich dieses in den oben angegebenen Ordner (cp oder direkt per wget oder auch per smbclient). btlaunchmanycurses bemerkt die neue Datei innert Zehntelssekunden und beginnt mit dem Download.

Wenn mich der Lade-Zustand interessiert, logge ich mich per ssh auf den Server ein, stelle die mit screen gesicherte Sitzung wieder her und schaue mir die rasant vonstatten gehenden Downloads an.

Labels:

9 Kommentare | neuen Kommentar verfassen

Kommentare

neuen Kommentar verfassen

Anonymous Wojciech Wnuk um 20.05.2006 23:27:00 Uhr

Etwas mehr Details zu dem Bittorrent-Konto und Absicherung würde die Beschreibung perfektionieren und fast in eine HowTo verwandeln. :-)

Anonymous Anonym um 28.06.2006 21:12:00 Uhr

apt-get "install" xxx

heißt es oder?

Blogger eMeidi um 28.06.2006 23:53:00 Uhr

Danke für den Hinweis, "install" wurde nun ergänzt.

Anonymous alexander um 03.09.2006 20:36:00 Uhr

Habe da so etwas ähnliches gebastelt. Bei mir sieht das so aus: http://www.boesch.be/bitdo

mit "bitdo start" starten
mit "bitdo stop" stoppen
mit "bitdo show" status ansehen

Anonymous Anonym um 21.10.2006 20:21:00 Uhr

ich hab es gerade installiert und eingerichtet nach deinem howto. vielen dank.
ein torrent ist gerade geadded worden.
ich seh ihn im screen aber es tut sich seit einer stunde nichts.

muss ich sonst noch was starten???
/etc/init.d/bittorent?
oder noch ne config umstellen?

Blogger eMeidi um 21.10.2006 22:00:00 Uhr

ich seh ihn im screen aber es tut sich seit einer stunde nichts.

Wahrscheinlich gibt es einfach keine Seeds für das betreffende .torrent (?). Schau mal unter torrentz.com nach und wähle zu Testzwecken eine Datei, die rege getauscht wird ...

Blogger Stefan um 08.08.2007 01:20:00 Uhr

Hallo,

Installation hat prima geklappt. hatte auch schon angefangen was runterzuladen. Jetzt findet der rechner ab keine dateien mehr, obwohl schon zum testen die torrents auf nem anderen rechner hinter dem debian rechner angefangen haben zu downloaden? auf dem debian rechner kommt immer :

.torrent died 6 times, added to dead list

muss ich noch irgendwelche ports forwarden?

danke schonmal

Blogger eMeidi um 08.08.2007 01:37:00 Uhr

.torrent died 6 times, added to dead list

Bei mir gibt es solche Fehlermeldungen ab und zu. Diese deuten daraufhin, dass der Tracker-Server nicht (mehr) läuft.

Versuche es probehalber mit irgendeinem äusserst populären Torrent auf torrentz.com, das viele Leechers und Seeders hat.

Natürlich musst du auf deiner Firewall die Ports 6881-9 (TCP) auf den Zielrechner forwarden; sprich auf die IP-Adresse desjenigen Linux-Rechners, auf dem bittorrent läuft.

Viel Erfolg!
Mario

Blogger Stefan um 09.08.2007 18:31:00 Uhr

Hallo und danke für die schnelle Antwort.

Der Debian PC wo bittorent darauf läuft ist mein Router. er ist direkt mit einer netzwerkkarte, konfiguriert mit pppoe, an das inet angeschlossen. an der anderen netzwerkkarte hängt das lokale netz.

ich verbinde mich mit putty und screen usw. u starte bittorrent über die konsole. als ich es nach deiner anleitung installierte funktionierte es einwandfrei. das war vor ca. 3 wochen.

jetzt wollt ich wieder was runterladen und da werden alle in die died liste kopüiert. ich habe auch schon bei dem link das am meisten angebotene torrent benutzt, passiert dasselbe...
Und jetzt schau ich wie das schwein ins uhrwerk...

irgend eine idee?

muss ich die torrents aus der died liste rausnehmen?

oder irgendwas anderes?

kenn mich jetzt mit linux ni so gut aus, kann nur einfache howtos umsetzten...

mfg stefan