Artikelformat
27. März 2007

Howto Linux Bittorrent / Bittornado über Shell

“Filesharing-Alternative zur Konsole: siehe Installation Torrentflux

Vorwort bzgl. Linux + Torrent:

Bittorrent ist ein tolles Programm um vorallem große Dateien zu verteilen. Ich MUSS aber darauf hinweisen, dass dieses Howto bzw. der Einsatz von Bittorrent über die Konsole ausschließlich für LEGALE Zwecke gedacht ist. Gerade Open-Source Projekte haben Ressourcenschwierigkeiten um bsp. ihre neusten Versionen zu verteilen, Bittorrent kann hier sehr hilfreich sein. Ich habe aus diesem Grund das Howto um eine Anleitung ergänzt, wie man einen Bittorrenttracker startet und dies automatisiert.

Für Ernsthaft interessierte: Wenn ihr einen Web-Server betreibt könnt ihr monatlich mit dem “Resttraffic” die Verbreitung einer Linuxdisribution oder eines guten Opensource-Programmpackets unterstützen. Einfach die Linux Torrents verteilen wenn noch “Reste” da sind und sonst halt drosseln.

Für alle besonders klugen: Geht doch lieber ins Kino oder in die Videothek um in den Genuss von Filmen zu kommen, weil wer diesen Howto braucht um illegalen Stuff herunter zu laden, der sollte schnellsten die Finger von “Bit und Freunden” lassen! Glaubt nicht ihr würdet mit einem Server bzw. einer dicken Anbindung nicht auffallen. Also laßt es!

Von was gehe ich aus?

VServer oder RootDS bei S4Y mit Linux (sollte aber auch für andere Anbieter gelten)
SSH-Zugang über Konsole (bei win putty)
Anwender hat keine bis wenig Ahnung/ Wissen über Linux oder die Konsole

Was brauchen wir (außer der Standardinstallation)?

primär:
bittornado oder bittorrent
screen

sekundär: (sollte schon vorhanden sein oder wird mitinstalliert aufgrund von Abhängigkeiten)
python
mc #Midnightcommander; ist meist vorinstalliert
putty #SSH-Windowsclienten; Anleitung bitte googlen

Wie wird installiert?

$ su #Admin zu werden
$ PASSWORT #Passwort-Eingabe

Debian Linux Torrent:
$ apt-get update && apt-get install bittornado #jeweils alle Abhängigkeiten mit Yes bestätigen
$ apt-get install screen

Fedora/ RedHat: (müsste so funzen, habe gerade keine laufende Distri)
$ yum install bittornado #Kommandos
$ yum install screen #jeweils alle Abhängigkeiten mit Yes bestätigen

Suse:(für alle die kein APT installiert haben; was man nachholen sollte!)
1. über $ yast #Benutzung über Konsoleninterface, falls in den Quellen eins der Programme nicht gefunden wird müssen entsprechende Quellen gesucht werden oder
$ yast -i bittornado
$ yast -i screen #habe es nicht testen können, da kein System
oder siehe 2
2. über $ apt-get install #nach Installation weiter machen, wie unter Debian
Installationsanleitung für APT unter Suse 9.x
$ exit #zurückkehren zum Benutzermodus

Was sollte vorbereitet werden?

Torrentordner im Benutzerverzeichnis #zwecks Ordnung
Skript #wir sind ja alle schreibfaul!

Vorgehen:
$ cd /home/BENUTZER/ #übrigens für alle die es nicht wissen mit TABULATOR [einmal] wird eine angefangene Eingabe vollendet
$ mkdir torrent #erstellt Ordner
$ cd ./torrent/ #wir gehen ins Verzeichnis
$ touch tor.sh #Erstellung Skriptdatei
$ chmod 777 tor.sh #Datei ausführbar machen
$ mc #Midnightcommander starten
[im MC]
…mit Tabulatortaste auf tor.sh
…F4 drücken (Editiermodus)
…einfügen
—-
#!/bin/bash
btdownloadcurses –responsefile $1 –max_uploads 99 –max_upload_rate 0 –minport 33333 –super_seeder 1
—–
Anmerkung: die # vor Bash muss vorhanden sein und der Zeilensprung auch; ihr braucht den Befehlssatz nicht abtippen: einfach makieren und kopieren und in putty bzw. mc mit SHIFT+RechteMaustase einfügen
Anmerkung: mit –max_download_rat und –max-upload_rate könnt Maximas bestimmen; mit –minport und –maxport könnt ihr die Portrange bestimmen
…F2 drücken (speichern)
…F10 drücken und YES-Return (MC verlassen)

Wie lade ich nun einen Torrent unter Linux?

1. Torrent per Ftp oder scp in “/home/BENUTZER/torrent/” verschieben; ich nennne den Torrent mal Dude.torrent
2. Benutzerkonsole öffnen und
$ screen #+ “Return” #wir öffnen eine Unterkonsole
Anmerkung: “screen” bietet die Mögllichkeit einen Prozess in einer Unterkonsole zu öffnen ohne, dass dieser beendet wird wenn man die Konsole schließt!
$ cd /home/BENUTZER/torrent/
$ sh tor.sh TORRENT.torrent #also in meinem Beispiel: ‘sh tor.sh Dude.torrent’ #sh bedeutet Ausführung der tor.sh Datei, die wiederum den Bittornado mit bekanntem Befehlssatz startet
–> es geht ein Bittornadofenster auf
–> Möglichkeiten mit “Q” beenden/abbrechen und mit “Crtl+A+D” Fenster verlassen
…wir drücken “Crtl+A+D” #und wir kommen wieder auf die konsole zurück; BT läuft im Hintergrund
$ exit #Zum verlassen der Konsole

Wie lade ich mehere Linux Torrents und wie komme ich zurück?

1. Weitere Torrents gleiches Vorgehen wie gerade zuvor
2. Zu Torrent(s) zurück kehren
$ screen -r #bei nur einem screen wird der screen sofort geöffnet; bei mehren fragt er welchen man haben will, dass kann über die Zahl.pid eingeben werden; Beispiel: screen -r 8812
–> Bittornadofenster… Möglichkeiten wie zuvor, so dass wars!
3. Torrents per Ftp oder scp ziehen

Was gilt es noch zu beachten bzl. Linux Torrents?

*Ich übernehme keine Verantwortung für Schaden durch das Ausprobieren dieses HOW-TOs.
*Die Firewall bzw. vei S4U die POWERFIREWALL muss konfiguriert werden für TCP 33333
*Wer hiermit keine Torrents laden kann sollte wirklich keinen “Server” sein Eigen nennen bzw. erst einmal sich über Linux schlau lesen und @home tranieren!

Anhang:
Kleine Einführung Screen:
$ screen #öffnet neues Unterfenster
$ exit #schließt Unterfenster und Prozess (beispielsweise Bit) läuft weiter oder schließt screen “[screen is terminating]”, wenn kein Prozess mehr läuft!!!
$ screen -r #holt screens/ Unterfenster wieder hervor; bei mehreren Unterfenstern muss die Pid hinter “screen -r PID” eingeben werden
# VORSICHT: man verliert schnell mal die Übersicht, wenn man in einem Unterfenster einen Unterfenster öffnet…,wenn man “screen -r” tippt sieht man an (Attached) den aktuellen screen

Anhang 2:
Aufgrund von Usernachfragen hier nun ein Hinweis für das starten des Bittorrent-Trackers der mitgeliefert wird bei Bittorrent sowie bei Bittornado. Ich weise nochmals daraufhin, dass gerade der Tracker nicht für illegales Material genutzt werden sollte! Außerdem rate ich zur Vorsicht, den Sicheitsrelveant ist das brisant einen BT-Tracker laufen zu lassen, wenn man nicht genau weiß was man macht! Aber genug der Vorrede.

# Als erstes braucht man einen Tracker
$ screen
$ bttrack.bittorrent –port 6969 –dfile btstatus
# Crt + A + D #Screen verlassen
# Check ob tracker läuft unter http://IP:6969

# Jetzt muss man einen Torrent erstellen
$ btmakemetafile http://DEINE-IP:6969/announce FILE # Wenn @home keine feste IP habt, wie immer Dyndns
# Wobei FILE die Datei ist die man vertreiben möchte und IP der Tracker auf den verbunden werden soll. Es entsteht eine Datei mit dem Namen FILE.torrent. Diese verteilt man unter den Interessenten an der eigentlichen Datei.

# Man startet jetzt selbst einen Bittorrent Client mit dem FILE.torrant und gibt als Dateiziel die bereits vollständig heruntergeladene Datei an.
#Bsp. im gleichen Verzeichnis
$ screen
$ btdownloadcurses FILE.torrent
# Crt + A + D #Screen verlassen

# Hinweis: Der Tracker ist nach dem reboot aus, wenn ihr keinen entsprechenden Cronjob für Tracker und BT-Client erstellt oder ein Softlink in das entsprechende Runlevel gemacht wird.

#Runlevel-Anpassung:
#welches Runlevel startet ihr Server bzw. ggf. Anpassung des RL
$ mcedit /etc/inittab

#The dafault runlevel
id:2:initdefault

#Startskrip erstellen
$ mkdir /etc/MeineStartskrite
$ mcedit /etc/MeineStartskrite/bttracker
#Inhalt

#!/bin/bash
bttrack.bittorrent –port 6969 –dfile btstatus

#ausführbar machen
$ chmod 7777 /etc/MeineStartskrite/bttracker

#Softlinks setzen
$ ln -s /etc/MeineStartskrite /etc/rc.d/rc2.d/S90bttrack

Zweite Möglichkeit (nicht getestet)
#Sagen wir mal der Tracker soll zu einer bestimmten Zeit an sein; bsp. 18Uhr bis 6Uhr
#Beispiel:
$ mcedit /etc/crontab
#Inhalt hinzufügen
# m h dom mon dow user command
00 18 * * * root /sbin/bttrack.bittorrent –port 6969 –dfile btstatus
05 18 * * * root /sbin/btdownloadcurses /Pfad/FILE.torrent
00 06 * * * root /sbin/shutdown -r now