BitTorrent Sync

Jeder kennt das Probleme, mehrer Computer, an mehreren Orten, zu unterschiedlichen Zeiten online, und dennoch möchte man seine Daten immer und überall synchron haben. USB-Sticks werden auf die Dauer unübersichtlich, lästig und zu klein, Festplatten sind vielleicht als Backuplösung oder zum einmaligen Übertragen großer Daten gut und Online-Speicherlösungen wie Dropbox, HiDrive, Google Drive, und wie sie auch alle heißen mögen, sind oftmals zu klein bzw. begegnet man gerne mit etwas Respekt. Was also tun um dem händischen Daten hinundherschieben endgültig ein Ende zu setzen? Ausgerechnet die Firma BitTorrent möchte mit einem angepassten peer-to-peer Protokoll Abhilfe im Datenchaos schaffen und bringt mi dem vor wenigen Monaten veröffentlichen BitTorrent Sync eine komfortable Lösung die noch dazu auf Windows, Mac und Linux einsetzbar ist.

Theorie

BitTorrent Sync ist ein Programm zum Synchronisieren von Dateien das wie gesagt auf einem modifizierten BitTorrent Protokoll aufsetzt und somit auf peer-to-peer Basis arbeitet. Es ist besonders effizient im Umgang mit großen Dateien, da diese in einzelne (4MB große) Stücke (Pieces) aufgeteilt werden und bei Änderungen an einer Datei, nur die veränderten Stücke neu übertragen werden müssen. Die einzelnen Clients verbinden sich wenn möglich direkt mittels UDP und bohren sich meist auch durch Firewalls einen Weg (Stichwort NAT Traversal, UPnP Port Mapping). Ganz wie beim echten BitTorrent Protokoll muss man seine Synchronisationspartner nicht selbst kennen/konfigurieren, vielmehr kommen verschiedene Mechanismen zum Einstatz, um Synchronisationspartner zu finden. Auf LAN-Ebene etwa Broadcast-Pakete, auf WAN-Ebene DHT oder im Notfall auch einen zentralen Tracker, der eine Liste aller aktiven Clients verwaltet. Wie wird nun aber sichergestellt, dass meine privaten Dateien auch nur zwischen meinen eigenen Clients ausgetauscht werden? Dafür erstellt das Programm einen 21-byte langen zufälligen Schlüssel. Dieser muss allen an der Synchronisation beteiligten Clients mitgeteilt werden, nur so können sie sich miteinander verbinden und Daten austauschen. Das Prinzip ist ähnlich den SSH-Schlüsseln. Zusätzlich wird der gesamte Traffic mit AES verschlüsselt und übertragen, lediglich die Datenspeicherung erfolgt unverschlüsselt und muss vom Nutzer selbst gewährleistet werden (etwa durch Truecrypt, LUKS, etc…). Neben dem vollwertigen Synchronisationsschlüssel gibt es auch noch einen ReadOnly-Key, der wie der Name schon sagt, nur das Lesen der Dateien ermöglicht.

Nun klingt all das im Prinzip sehr sehr gut, leider auch ein bisschen zu gut. BitTorrent Sync ist momentan noch im Beta-Stadium und nur als Binary verfügbar. Das der Source-Code veröffentlicht wird, ist momentan nicht geplant. Wer damit nicht Leben kann, sollte sich eventuell das Programm Unison anschauen. Es ist leider nicht mehr in aktiver Entwicklung, allerdings sehr stabil und für den Produktiveinsatz durchaus zu empfehlen, verfolgt allerdings auch einen etwas anderen Ansatz als BitTorrentSync.

Eine kleine Anmerkung am Rande noch, bevor BitTorrent Sync veröffentlicht wurde, gab es eine geschlossene Testphase, während dieser das Programm noch btsync hieß. btsync und BitTorrent Sync meinen genau das gleiche!

Praxis

Der Client kann ganz einfach von der BitTorrent Homepage heruntergeladen werden.  Dabei wird MacOSX ab Snow Leopard, Microsoft Windows XP ab SP3 und Linux ab Kernel 2.6.16 unterstützt. Weiteres wird FreeBSD und einige NAS-Systeme unterstützt. Betonen sollte man, dass es nicht nur Binaries für die i386 und amd64 Architektur gibt, sondern auch Linux Binaries für ARM und PPC existieren. Somit lässt sich BitTorrent Sync auch gut auf einem Raspberry Pi mit externer Festplatte betreiben.

Im Download-Archiv findet man die Datei btsync die man am besten nach /usr/bin/ oder /usr/local/bin installiert. Weiteres sollte man noch eine Konfigurationsdatei erstellen etwa unter /etc/btsync.conf. Diese lässt sich ganz einfach mittels sudo btsync –dump-sample-config > /etc/btsync.conf erstellen. Dort sollte man ein Passwort für den Webzugang erstellen.

BitTorrent Sync Webclient

BitTorrent Sync Webclient

Im Unterschied zur Windows-Variante verwendet die Linux-Variante einen kleinen Webserver zur Steuerung der Synchronisationsordner. Das hat den Vorteil, dass man btsync auch leicht auf einem Server installieren kann, ohne ein GUI zu benötigen. Danach kann man den Client auch schon mittels btsync –config /etc/btsync.conf starten und sollten den Webserver unter http://127.0.0.1:8888 erreichen. Dort können anschließend Ordner zum Synchronisieren ausgewählt werden. Mithilfe des Schlüssels, kann man diese Ordner schließlich auf weiteren Systemen einbinden.

Für ArchLinux gibt es auch bereits ein AUR-Paket mit einem komfortablen Startskript. Zuvor sollte man allerdings noch in der Datei /usr/lib/systemd/system/bittorrent-sync.service im Block [Service] den Wert User=USERNAME einsetzen, wobei USERNAME der Name des Benutzer sein sollte, mit welchem Dateien und Ordner erstellt werden sollten (per Default root). Danach kann man btsync ganz einfach mittels sudo systemctl start bittorrent-sync.service starten.

Gelöschte Dateien werden standardmäßig im übrigen in einen versteckten .SyncTrash Ordner verschoben und müssen von dort händisch gelöscht werden. Wer dem Programm vertraut, kann diese Option auch deaktivieren und btsync gelöschte Dateien auch auf anderen Clients automatisch löschen lassen.

Fazit

Mit BitTorrent Sync lassen sich Dateien bequem zwischen verschiedenen Geräten synchroniseren. Wer ein NAS oder einen Server sein eigen nennt, kann sich damit sogar seinen eigenen Dropbox Ersatz zusammenbauen. Eine Android/iOS-App ist laut Forum bereits in Entwicklung und wird den komfortablen Zugriff auf die Dateien in der „Cloud“ noch vereinfachen. In meinem nun ca ein Monat langem Test synchronisierte Bittorrent Sync mehrer 100 000 Dateien zuverlässig, nur einmal kam es zu einigen Holpern, da die Versionen der Synchronisationspartner unterschiedlich war. Größtes Manko, BitTorrent Sync ist „nur“ Freeware, eine OpenSource Variante wäre wünschenswert.

  1. Marcus Moeller sagt:

    Zur Synchronisation ist es wirklich ein geniales Tool. Zum Sharen von einzelnen Files finde ich es eher ungeeignet. Hier wäre eine Erweiterung gut, mit der sich einfach einzelne Files oder Verzeichnisse durch einen Link teilen lassen.

  2. John Wayne sagt:

    Meines Wissens sollte nur die Paketverwaltung in das Verzeichnis /usr/bin/ „installieren“. Für Software, die nicht über die Paketverwaltung verwaltet werden sollte das Verzeichnis /opt verwendet werden.

  3. besserwisser sagt:

    Größtes Manko, BitTorrent Sync ist “nur” Freeware, eine OpenSource Variante wäre wünschenswert.
    – ist bittorrent sync denn keine open source software?

    • schneida sagt:

      Nein es wird nur als Freeware angeboten. Ob tatsächlich alles so sicher ist, und die Firma BitTorrent Inc. keinen Zugriff auf deine Daten bekommen kann, ist somit nicht 100%ig ausgeschlossen.

  4. tuxpoldo sagt:

    Es gibt auch Pakete für Debian und Ubuntu die alle Architekturen unterstützen. Mehr Informationen zum DEB Paket für Workstations (welches unter anderem auch ein hübsches Applet enthält), findet sich auf http://forum.bittorrent.com/topic/19560-debian-and-ubuntu-desktop-packages-for-bittorrent-sync/

    Es gibt auch ein Installationspaket speziell für Server. Informationen dazu: http://forum.bittorrent.com/topic/18974-debian-and-ubuntu-server-packages-for-bittorrent-sync/

  1. Es gibt noch keine Trackbacks für diesen Post!