Transfert direct d'un fichier entre deux ordinateurs sur Internet


27

Je cherche un moyen simple mais direct de transférer un fichier de toute nature et de toute taille entre deux personnes. Si possible, ne disposant que d'un navigateur Web, sans avoir entre-temps le fichier stocké sur une troisième machine.

Je souhaite le faire sans obliger les utilisateurs finaux à se connecter à un troisième serveur, car de cette façon, les données circuleront à travers la machine xyz.com, ce qui pourrait ralentir le transfert et poser des risques de sécurité.

Je voudrais éviter de configurer un serveur FTP entier juste pour des transferts de fichiers occasionnels. Jusqu'à présent, j'ai découvert JetBytes , Click2Copy et PipeBytes . Ces services Web devraient faciliter le transfert. Cependant, le trafic passe par leurs serveurs, ils ne sont donc pas bons pour ce que je veux.

Je veux que le transfert soit direct entre le client et moi. Le cryptage serait une fonctionnalité supplémentaire intéressante.

Je sais que ce faisant, je dois ouvrir un port sur mon ordinateur et configurer une redirection de port bit sur mon routeur. Cependant, la traversée NAT serait également un ajout intéressant.

Ma question est:

Existe-t-il un moyen simple pour un seul transfert de fichier direct de bout en bout entre deux ordinateurs, en évitant les tiers? (si possible, avec chiffrement et traversée NAT)


cherchez-vous une solution qui transfère uniquement via HTTP ou quoi?
Pacerier

Personnellement, j'utilise un serveur Web emprisonné chroot avec auto-indexation activé pour partager des fichiers avec d'autres personnes. Ensuite, j'ai un compte anonyme ftp emprisonné que les gens peuvent utiliser pour m'envoyer des fichiers directement. La solution Skype est quelque chose que je dirais à ma mère si elle voulait partager un fichier avec quelqu'un. C'est mieux que d'utiliser des pièces jointes au moins.
Isuldor

1
peut-être programme de transfert de fichiers direct sourceforge.net/projects/file-transfer - open source, glisser-déposer, promet éventuellement upnp (sur xp?), teredo, connexions sécurisées et découverte automatique, (les éléments facultatifs doivent être cochés dans la page des paramètres )
n611x007

Pouvons-nous rouvrir cela? J'ai reformulé ceci pour implémenter les suggestions
n611x007

Réponses:


13

La façon la plus sale si vous utilisez * nix est d'utiliser netcat ( nc) pour envoyer le fichier à l'hôte distant. Mais si vous voulez un chiffrement, vous pouvez aussi utiliser SCP / SSH.

Vous devez comprendre que si l'une des parties est derrière un NAT et que vous ne souhaitez pas configurer la redirection de port, il est impossible d'établir une connexion directe sans vous connecter à un serveur tiers au préalable. Le serveur n'a pas nécessairement à relayer le trafic (voir http://en.wikipedia.org/wiki/UDP_hole_punching ) et la plupart d'entre eux ne le font pas car la bande passante est coûteuse.

Par exemple, Skype essaiera d'utiliser de nombreuses méthodes de traversée NAT pour établir une connexion directe avant de retomber sur le relais du trafic via leurs super nœuds. (Skype est un réseau très P2P.)

Quant au problème de compte. Je suppose que c'est inévitable. Toutes les méthodes nécessiteront une sorte de configuration ou d'installation qui sont généralement plus difficiles que l'enregistrement d'un compte.


3
cryptcat est netcat avec cryptage
Journeyman Geek

netcat est également disponible pour Windows. J'aime cette façon.
Benoit

Pour référence, Skype n'utilise plus P2P: support.skype.com/en/faq/FA12381/what-is-the-cloud
Radderz

10

Les solutions basées sur WebRTC donnent ce dont vous avez besoin, peut-être sous la forme la plus simple. Vous vous connectez à un site Web tiers, mais uniquement pour connecter les pairs et non pour la partie de transfert de fichiers.

Exemples de services:
https://www.justbeamit.com/
https://www.sharedrop.io/

EDIT: Je comprends que cela ne répond pas à toutes les exigences de l'OP mais il existe une autre solution très utilisable: Firefox Send . En utilisant cela, vous téléchargez votre fichier sur un serveur tiers sous une forme cryptée. Le service vous donne une URL que vous pouvez partager avec d'autres. L'URL contient également la clé pour déchiffrer le fichier. Ils peuvent ensuite télécharger le fichier. Le fichier est automatiquement supprimé après un nombre défini de téléchargements ou après 24 heures. Le serveur ne voit jamais la clé et ne peut donc pas décrypter le fichier. L'avantage de l'utilisation d'un serveur tiers est que la partie de partage et la partie de téléchargement n'ont pas besoin d'être en ligne simultanément.


Sur mon réseau d'entreprise (hautement sécurisé), reep.io n'a pas fonctionné, mais justbeamit.com l'a fait! Je m'attendais à ce que les deux services fonctionnent de la même manière car ils sont tous deux basés sur la technologie WebRTC, mais il semble que c'est un peu plus compliqué que cela. Merci beaucoup pour l'astuce!
génial

8

Vous pouvez synchroniser des fichiers entre des ordinateurs distants à l'aide d'un rsync. Cet utilitaire est disponible pour Windows dans cygwin , ou vous pouvez l'installer avec le cwRsync préemballé .

Je laisserai ma réponse précédente ici intacte, mais compte tenu des récentes révélations sur la NSA, je ne recommanderais plus Skype pour les transferts de fichiers sécurisés.

Vous pouvez envoyer un fichier directement à une autre personne à l'aide de Skype . Skype fonctionne parfois même lorsque les deux utilisateurs sont derrière NAT. Si vous êtes suffisamment sûr pour ouvrir un port sur votre routeur, cela augmentera les chances de négocier une connexion directe.

Plus largement, de nombreux programmes de chat incluent un mécanisme de partage / envoi de fichiers. La plupart ne fournissent pas de cryptage par défaut comme Skype. Mais tant que vous et votre destinataire avez le même client de chat, vous disposez d'un "outil simple" pour partager des fichiers.


Merci pour cette réponse. Le problème ici est que je dois toujours compter sur une troisième entreprise, créer un compte spécifiquement pour cela, et ce service peut perturber ou les conditions de service peuvent changer. Si possible, je voudrais éviter cela. Cependant, je ne savais pas que Skype peut négocier une connexion directe. Toujours d'après votre réponse, je peux déduire que ce n'est pas toujours le cas?
Benoit

@Benoit - Je n'ai jamais vu Skype échouer à envoyer un fichier. Le seul trafic qui va vers les serveurs skype est celui pour établir la connexion. Toutes les données vont entre vous et votre destinataire. En ce qui concerne les conditions de service, ce qui est très peu clair car le partage de fichiers est une partie centrale de skype.
Nifle

@Benoit Skype utilise toujours des connexions directes; même la base de données des utilisateurs de Skype est distribuée. L'avantage de Skype est son cryptage de bout en bout; Skype ne peut pas voir les données que vous transmettez. (+1 btw)
squircle

5

Si votre ssh Linux / unix en cours d'exécution est un moyen sûr de transmettre des fichiers dans un modèle client-serveur. port vers l'avant nécessaire sur les connexions entrantes si derrière NAT cependant.


3

FTP. Il existe depuis des lustres. C'est aussi dangereux que ça. Et c'est simple.

Téléchargez Filezilla, qui peut fonctionner à la fois comme serveur et comme client. Assurez-vous que votre pare-feu est configuré pour lui permettre de sortir. Demandez à votre destination de télécharger Filezilla et de vous connecter à votre serveur Filezilla. Transférer le fichier.

Juste comme ça, tous vos morceaux sont jetés sur Internet pour que tous les voient comme autant de linge qui flotte dans la brise dans l'arrière-cour.


N'est pas non plus fiable. Vous avez besoin de contrôles de hachage pour vous assurer que ce que vous avez est exactement ce que vous avez envoyé. TCP / IP prétend être fiable mais en fin de compte n'est pas à 100%. Par exemple, j'ai juste essayé d'envoyer une sauvegarde de plusieurs giga octets et j'ai constaté que le zip que j'avais créé comportait des erreurs sur la cible, mais pas sur la source. Aucune erreur affichée. Les hachages pour l'ensemble sont bons, mais peuvent toujours vous donner un faux ok. Plusieurs hachages chacun à des points de 1 Mo sont meilleurs. Un torrent entre les deux ordinateurs serait donc préférable pour un gros fichier.
rxantos

FTP a du mal avec des fichiers vraiment très volumineux (il n'a vraiment jamais considéré l'utilisation de fichiers aussi volumineux que nous l'avons aujourd'hui quand il a été développé). SFTP est un protocole bien mieux équipé pour les fichiers plus volumineux et est également beaucoup, beaucoup plus sécurisé que FTP.
MaQleod

3

J'ai écrit une fois un article de blog sur le transfert de fichiers avec le serveur HTTP intégré de Python . En bref, installez Python, ouvrez une invite de commande, cddans le répertoire contenant les fichiers à partager et à exécuter python -m SimpleHTTPServer. Très pratique si vous êtes sous Linux ou OS X car Python est installé par défaut (il est également facile à installer sous Windows).

Si vous êtes derrière un NAT, vous devez configurer la redirection de port sur votre routeur ou quelque chose (que je suppose que vous connaissez déjà).


1
lien vers un site de spam
MFB

@MFB J'imagine que cela allait sur son site Web légitime, mais il a depuis perdu le contrôle du site et il redirige maintenant vers une page de type de domaine parqué. J'ai édité le lien pour l'instant. Pour phunehehe, si vous voyez cela, veuillez commenter le lien. Si vous avez maintenant une copie du billet de blog ailleurs, vous pouvez le modifier dans, mais attention à ne pas tolérer un lien intentionnel avec du spam.
nhinkle

enfin j'ai récupéré le billet de blog, mis à jour :)
phunehehe

2

Un serveur Web qui peut effectuer une traversée UPnP NAT fonctionnerait, le récepteur n'aurait besoin que d'un navigateur Web. Comme un cryptage bonus est facile avec un serveur Web, utilisez simplement https.

Voici un exemple (payware 99USD) RaidenHTTPD





1

Pourquoi personne ne mentionne le transfert IRC DCC? https://en.wikipedia.org/wiki/Direct_Client-to-Client , vous obtenez votre client HexChat, l'installez sur les deux ordinateurs, vous entrez disons Freenode puis créez un canal pour les deux à rejoindre, puis faites un clic droit sur le autre "contact / PC" et envoyer le fichier. Ancienne technologie qui fonctionne toujours, à part Hyperterminal pour la connexion directe par ligne commutée, vers 1995-1998, DCC était le moyen le plus courant pour télécharger de la musique et des films.


1

Magic Wormhole peut être utilisé pour cela. Sur Ubuntu, vous pouvez installer via apt-get (il est également disponible via Python pip):

sudo apt install magic-wormhole

Pour envoyer un fichier, vous dites simplement quoi envoyer

wormhole send README.md

Cela générera la ligne de commande que vous devez exécuter sur l'extrémité de réception. Cela comprend une clé secrète (qui est telle que vous pouvez également la lire par téléphone). Vous ne spécifiez aucun nom d'ordinateur ni aucune adresse IP. Wormhole établit automatiquement la connexion et chiffre les fichiers à transférer.

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

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.