Direkte Übertragung einer Datei zwischen zwei Computern im Internet


27

Ich suche nach einer einfachen, aber direkten Möglichkeit, eine Datei beliebiger Art und Größe zwischen zwei Personen zu übertragen. Wenn möglich, nur mit einem Webbrowser, ohne dass die Datei in der Zwischenzeit auf einem dritten Computer gespeichert wird.

Ich möchte dies tun, ohne dass die Endbenutzer eine Verbindung zu einem dritten Server herstellen müssen, da auf diese Weise die Daten durch den Computer fließen xyz.comund möglicherweise die Übertragung verlangsamen und Sicherheitsrisiken aufwerfen.

Ich möchte vermeiden, einen ganzen FTP-Server nur für gelegentliche Dateiübertragungen einzurichten. Bisher habe ich JetBytes , Click2Copy und PipeBytes entdeckt . Diese Webdienste sollten die Übertragung vereinfachen. Der Datenverkehr wird jedoch über ihre Server abgewickelt, sodass sie nicht meinen Wünschen entsprechen.

Ich möchte, dass die Übertragung direkt zwischen dem Kunden und mir erfolgt. Verschlüsselung wäre eine nette zusätzliche Funktion.

Ich weiß, dass ich dazu einen Port auf meinem Computer öffnen und eine Bit-Port-Umleitung auf meinem Router konfigurieren muss. NAT-Traversal wäre aber auch eine schöne Ergänzung.

Meine Frage ist:

Gibt es eine einfache Möglichkeit für eine einzige direkte Dateiübertragung von Ende zu Ende zwischen zwei Computern, um Dritte zu vermeiden? (wenn möglich mit Verschlüsselung und NAT-Traversal)


Suchen Sie eine Lösung, die nur über HTTP überträgt, oder was?
Pacerier

Persönlich verwende ich einen chroot-inhaftierten Webserver mit aktivierter automatischer Indizierung, um Dateien für andere Personen freizugeben. Dann habe ich einen anonymen FTP-Account im Gefängnis, mit dem die Leute Dateien direkt an mich senden können. Die Skype-Lösung würde ich meiner Mutter sagen, wenn sie eine Datei mit jemandem teilen möchte. Zumindest ist es besser, als E-Mail-Anhänge zu verwenden.
Isuldor

1
vielleicht direktes Dateiübertragungsprogramm sourceforge.net/projects/file-transfer - Open Source, Drag & Drop, verspricht optional Upnp (auf XP?), Teredo, sichere Verbindungen und automatische
Erkennung

Können wir das wieder öffnen? Ich habe dies umformuliert, um die Vorschläge
n611x007

Antworten:


13

Der schmutzigste Weg, wenn Sie * nix verwenden, besteht darin nc, die Datei mit netcat ( ) auf dem Remote-Host zu speichern. Wenn Sie jedoch eine Verschlüsselung wünschen, können Sie auch SCP / SSH verwenden.

Sie müssen sich darüber im Klaren sein, dass es unmöglich ist, eine direkte Verbindung herzustellen, ohne sich zuerst mit einem Server eines Drittanbieters zu verbinden, wenn sich einer der beiden Anbieter hinter einem NAT befindet und Sie keine Portweiterleitung einrichten möchten. Der Server muss den Datenverkehr nicht unbedingt weiterleiten (siehe http://en.wikipedia.org/wiki/UDP_hole_punching ) und die meisten von ihnen nicht, da Bandbreite teuer ist.

Skype versucht beispielsweise, mithilfe vieler NAT-Traversal-Methoden eine direkte Verbindung herzustellen, bevor der Datenverkehr über die Superknoten weitergeleitet wird. (Skype ist ein sehr P2P-Netzwerk.)

Wie für das Konto Problem. Ich denke, das ist unvermeidlich. Alle Methoden erfordern eine Konfiguration oder Einrichtung, die normalerweise schwieriger ist als die Registrierung eines Kontos.


3
Cryptcat ist Netcat mit Verschlüsselung
Journeyman Geek

netcat ist auch für Windows verfügbar. Ich mag diesen Weg.
Benoit

Als Referenz verwendet Skype nicht mehr P2P: support.skype.com/en/faq/FA12381/what-is-the-cloud
Radderz

10

WebRTC-basierte Lösungen bieten das, was Sie benötigen, vielleicht in der einfachsten Form. Sie stellen eine Verbindung zu einer Website eines Drittanbieters her, dies dient jedoch nur dazu, die Peers zu verbinden, und nicht zum Dateitransfer.

Beispieldienste:
https://www.justbeamit.com/
https://www.sharedrop.io/

EDIT: Ich verstehe, dass dies nicht alle Anforderungen des OP erfüllt, aber es gibt eine andere, sehr nützliche Lösung: Firefox Send . Auf diese Weise laden Sie Ihre Datei in verschlüsselter Form auf einen Drittanbieter-Server hoch. Der Dienst gibt Ihnen eine URL, die Sie mit anderen teilen können. Die URL enthält auch den Schlüssel zum Entschlüsseln der Datei. Sie können dann die Datei herunterladen. Die Datei wird nach einer festgelegten Anzahl von Downloads oder nach 24 Stunden automatisch gelöscht. Der Server sieht den Schlüssel nie und kann die Datei daher nicht entschlüsseln. Der Vorteil bei der Verwendung eines Drittanbieter-Servers besteht darin, dass die Freigabe- und die Download-Partei nicht gleichzeitig online sein müssen.


In meinem (hoch gesicherten) Unternehmensnetzwerk funktionierte reep.io nicht, justbeamit.com jedoch! Ich hätte erwartet, dass beide Dienste gleich funktionieren, da sie beide auf der WebRTC-Technologie basieren, aber es scheint, dass es ein bisschen komplizierter ist. Vielen Dank für den Hinweis!
munter

8

Sie können Dateien zwischen Remotecomputern mithilfe von rsync synchronisieren. Dieses Dienstprogramm ist für Windows in Cygwin verfügbar , oder Sie können es mit dem vorgefertigten cwRsync installieren .

Ich werde meine vorherige Antwort hier intakt lassen, aber angesichts der jüngsten Enthüllungen über die NSA würde ich Skype nicht mehr für sichere Dateiübertragungen empfehlen.

Sie können eine Datei mit Skype direkt an eine andere Person senden . Skype funktioniert manchmal sogar, wenn beide Benutzer sich hinter NAT befinden. Wenn Sie sicher genug sind, um einen Port auf Ihrem Router zu öffnen, erhöht dies die Wahrscheinlichkeit, dass eine direkte Verbindung ausgehandelt wird.

Im Allgemeinen enthalten viele Chat-Programme einen Dateifreigabe- / Sendemechanismus. Die meisten bieten standardmäßig keine Verschlüsselung wie Skype. Solange Sie und Ihr Empfänger denselben Chat-Client haben, steht Ihnen ein "einfaches Tool" zum Freigeben von Dateien zur Verfügung.


Vielen Dank für diese Antwort. Das Problem hierbei ist, dass ich mich immer auf ein drittes Unternehmen verlassen muss, ein spezielles Konto dafür erstelle und dass der Dienst möglicherweise unterbrochen wird oder sich die Nutzungsbedingungen ändern. Wenn möglich möchte ich das vermeiden. Allerdings wusste ich nicht, dass Skype eine Direktverbindung aushandeln kann. Immer noch aus Ihrer Antwort kann ich schließen, dass dies nicht immer der Fall ist?
Benoit

@Benoit - Ich hatte noch nie Skype-Probleme beim Senden einer Datei. Der einzige Datenverkehr, der zu den Skype-Servern geleitet wird, ist der zum Einrichten der Verbindung. Alle Daten gehen zwischen Ihnen und Ihrem Empfänger. Was die Nutzungsbedingungen angeht , ist dies sehr unübersichtlich, da die gemeinsame Nutzung von Dateien ein zentraler Bestandteil von Skype ist.
Nifle

@Benoit Skype verwendet immer Direktverbindungen. Sogar die Datenbank der Skype-Benutzer wird verteilt. Der Vorteil von Skype ist die End-to-End-Verschlüsselung. Skype kann die von Ihnen übertragenen Daten nicht sehen. (+1 übrigens)
squircle

5

Wenn Sie Linux / Unix verwenden, ist ssh eine sichere Methode zum Übertragen von Dateien in einem Client-Server-Modell. Portforwards werden bei eingehenden Verbindungen benötigt, wenn sie sich hinter NAT befinden.


3

FTP. Es gibt es schon seit Ewigkeiten. Es ist verdammt unsicher. Und es ist ganz einfach.

Laden Sie Filezilla herunter, das sowohl als Server als auch als Client fungieren kann. Stellen Sie sicher, dass Ihre Firewall so eingestellt ist, dass sie ausgehend ist. Lassen Sie Ihr Ziel filezilla herunterladen und eine Verbindung zu Ihrem filezilla-Server herstellen. Datei übertragen.

Auf diese Weise werden alle Ihre Teile über das Internet geschleudert, damit alle sehen können, wie viel Wäsche im Wind im Hinterhof weht.


Ist auch nicht so zuverlässig. Sie benötigen Hash-Checks, um sicherzustellen, dass das, was Sie erhalten haben, genau das ist, was Sie gesendet haben. TCP / IP gibt vor, zuverlässig zu sein, ist aber am Ende des Tages nicht 100%. Zum Beispiel Ich habe gerade versucht, eine Sicherung mit mehreren Gigabyte zu senden, und festgestellt, dass die von mir erstellte Zip-Datei Fehler auf dem Ziel, aber nicht auf der Quelle enthält. Keine Fehler angezeigt. Hashes für das ganze sind gut, können aber trotzdem ein falsches OK geben. Besser sind mehrere Hashes zu je 1 mb Punkten. Ein Strom zwischen den beiden Computern wäre also besser für eine große Datei.
Rxantos

FTP hat es wirklich schwer mit sehr, sehr großen Dateien (es hat die Verwendung von so großen Dateien wie heute, als es entwickelt wurde, nie in Betracht gezogen). SFTP ist ein viel besser ausgestattetes Protokoll für größere Dateien und außerdem viel sicherer als FTP.
MaQleod

3

Ich habe einmal einen Blog-Beitrag über das Übertragen von Dateien mit dem in Python integrierten HTTP-Server geschrieben . Kurz gesagt, installieren Sie Python und öffnen Sie eine Eingabeaufforderung cdin dem Verzeichnis mit den Dateien, die Sie freigeben und ausführen möchtenpython -m SimpleHTTPServer . Sehr praktisch, wenn Sie unter Linux oder OS X arbeiten, da Python standardmäßig installiert ist (die Installation unter Windows ist ebenfalls einfach).

Wenn Sie sich hinter einem NAT befinden, müssen Sie eine Portweiterleitung auf Ihrem Router oder etwas anderem einrichten (was Sie vermutlich bereits kennen).


1
Der Link "Blogpost" führt zu einer Spam-Site
MFB

@ MFB Ich vermute, es wurde früher auf seine legitime Website zugegriffen, aber seitdem hat er die Kontrolle über die Website verloren und leitet jetzt auf eine geparkte Domain-Typ-Seite weiter. Ich habe den Link erst einmal bearbeitet. Um phunehehe, wenn Sie dies sehen, kommentieren Sie bitte den Link. Wenn Sie eine Kopie des Blogposts bereits an einer anderen Stelle haben, können Sie diese bearbeiten. Beachten Sie jedoch, dass das absichtliche Verknüpfen mit Spam nicht toleriert wird.
nhinkle

Endlich habe ich den Blog-Beitrag wiederhergestellt, aktualisiert :)
Phunehehe

2

Ein Webserver, der UPnP-NAT-Traversen ausführen kann würde funktionieren, der Empfänger würde nur einen Webbrowser benötigen. Da eine Bonusverschlüsselung mit einem Webserver einfach ist, verwenden Sie einfach https.

Hier ist ein Beispiel (Payware 99USD) RaidenHTTPD





1

Warum erwähnt niemand die IRC-DCC-Übertragung? https://en.wikipedia.org/wiki/Direct_Client-to-Client , Sie erhalten Ihren HexChat-Client, installieren ihn auf beiden Computern, Sie geben Freenode ein und erstellen dann einen Kanal für beide, um beizutreten. Klicken Sie dann mit der rechten Maustaste auf andere "Kontakt / PC" und Datei senden. Alte Technologie, die immer funktioniert. Abgesehen von Hyperterminal für Direktverbindungen (1995-1998) war DCC die gängige Methode zum Herunterladen von Musik und Filmen.


1

Hierfür kann das magische Wurmloch verwendet werden. Unter Ubuntu können Sie über apt-get installieren (es ist auch über Python pip verfügbar):

sudo apt install magic-wormhole

Zum Senden einer Datei geben Sie einfach an, was gesendet werden soll

wormhole send README.md

Dadurch wird die Befehlszeile ausgegeben, die Sie auf der empfangenden Seite ausführen sollten. Dies beinhaltet einen geheimen Schlüssel (der so ist, dass Sie ihn auch über das Telefon lesen können). Sie geben keine Computernamen oder IP-Adressen an. Wurmloch baut die Verbindung automatisch auf und verschlüsselt die zu übertragenden Dateien.

https://magic-wormhole.readthedocs.io/en/latest/welcome.html

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.