Mittel und Wege um Daten über das Internet zu übertragen gibt es viele. croc sticht allerdings aus der Masse etwas heraus.

Die Vorteile liegen auf der Hand:

  • Open Source
  • Cross-Platform (Windows, Linux, Mac)
  • Keine Installation nötig
  • Funktioniert via CLI oder im Browser
  • Verbindung Peer-to-Peer oder via Relay-Server
  • Kann mit öffentlichen oder einem selbst-gehostete Relay-Server genutzt werden
  • Keine Port-Freigaben (außer beim Relay-Server) notwendig
  • Und vor allem: Schnell, einfach und sicher

By the Way: Es gibt diverse GUIs von Dritt-Anbietern.

Ich hatte croc schon ein paar Tage auf meiner Liste, als sich (leider) ein Support-Fall ergab, bei dem über 97 GB von einem System über das Internet auf ein anderes System übertragen werden mussten. Man hätte das Ganze auch über einen vorhandenen S3-Storage Server machen können, das hätte allerdings den Nachteil gehabt, das die Daten dort erst hin übertragen und von diesem wiederum heruntergeladen werden müssen. Der direkte Weg war schlicht schneller.

Bei dieser Menge an Daten hat allerdings der Weg über den Browser nicht funktioniert. Macht nichts, dann via CLI war es ebenfalls easy:

Sender-Seite

croc send <Datei oder Ordner>

Es werden Prüfsummen gebildet und ein Code erzeugt der auf der Empfänger-Seite benötigt wird.

Empfänger-Seite

croc <Code>

Es erscheint eine Abfrage ob man die Übertragung akzeptiert, diese bestätigt man und schon läuft es.

Was passiert bei einem Übertragungsfehler oder Abbruch?

Bei dem erwähnten Support-Fall kam es im Laufe der Übertragung zu einer Unterbrechung, an welcher Stelle, wieso weshalb warum wurde nicht untersucht. croc kommt allerdings auch damit klar und bot an entweder die Übertragung der betroffenen Datei fortzusetzen (Resume) oder diese neu zu übertragen.

Eigenen Relay-Server nutzen

croc ist bis hier hin (imho) schon großartig. Das Sahnehäubchen ist allerdings, das man einen eigenen Relay-Server betreiben kann. Die Voraussetzungen sind einfach;

  • Server mit öffentlicher IPv4- und/oder IPv6-Adresse.
  • Die Ports 9009-9013/tcp müssen freigegeben sein. Diese können angepasst werden.

Der Relay-Server wird einfach mit

croc relay

gestartet.

Damit der eigene Relay-Server nicht einfach so von jedem genutzt werden kann, sollte dieser mit einem (eigenen) Passwort gesichert werden. Zu diesem Zweck muss die Umgebungsvariable %CROC_PASS% gesetzt werden und anschließend startet man den Relay-Server. Unter Windows sieht das so aus:

set CROC_PASS=<Passwort>
croc relay

Auf Sender- und Empfänger-Seite muss natürlich der eigene Relay-Server samt zugehörigen Passwort angegeben werden:

croc --pass "<Password>" --relay "<FQDN oder IP>:9009" send ...
croc --pass "<Password>" --relay "<FQDN oder IP>:9009" <Code>

Was noch?

Es gibt noch mehr Optionen, wie beispielsweise Text übertragen (z.B. URLs), eigene Codes verwenden, Daten ausschließen, uvm., daher lohnt ein Blick in die Doku.

Am ehesten ist vermutlich die Angabe eines Ausgabe-Ordners auf der Empfängerseite interessant. In der Voreinstellung wird als Ziel der Ordner verwendet, in dem sich die croc-Binary befindet. Mit

--out <Pfad>

kann ein anderer Ordner angegeben werden, z.B. “.\Temp” wenn es ein Unterordner im croc-Ordner sein soll oder “C:\Temp” als absoluter Pfad. Der Ziel-Ordner muss existieren.

Wichtig zu Wissen ist außerdem, das nach erfolgter Übertragung auf beiden Seiten croc beendet wird.

Fazit

Gleich in die Vollen zu gehen ist nicht unbedingt mein liebstes Vorgehen, ging allerdings nicht anders. croc hat das richtig gut gemacht und die Daten konnten selbst über den öffentlichen Relay-Server ohne Probleme, mit Ausnahme dieser einen Unterbrechung, erfolgreich und bei Sättigung des Internetanschlusses übertragen werden. Sowas klappt nicht überall von Anfang an so gut.

Daher und das man einen eigenen Relay-Server betreiben kann gibt es von mir einen Daumen hoch 👍


Wie hat Dir der Artikel gefallen ?

(Bislang keine Stimmen erhalten.)

Du möchtest den Blog unterstützen ?

Neben PayPal.ME gibt es noch weitere Möglichkeiten, lies hier wie du diesen Blog unterstützen kannst.


Quellen

YouTube – Practical IT with Jeremy Leik – Transfer Files Between Any Computer in Seconds