Estoy buscando una forma simple pero directa de transferir un archivo de cualquier tipo y tamaño entre dos personas. Si es posible, tener solo un navegador web, sin tener el archivo almacenado en una tercera máquina mientras tanto.
Deseo hacerlo sin requerir que los usuarios finales se conecten a un tercer servidor, porque de esa manera los datos fluirán a través de la máquina xyz.com
, posiblemente ralentizando la transferencia y presentando riesgos de seguridad.
Me gustaría evitar configurar un servidor FTP completo solo para transferencias de archivos ocasionales. Hasta ahora he descubierto JetBytes , Click2Copy y PipeBytes . Esos servicios web deberían facilitar la transferencia. Sin embargo, el tráfico pasa a través de sus servidores, por lo que no son buenos para lo que quiero.
Quiero que la transferencia sea directa entre el cliente y yo. El cifrado sería una buena característica adicional.
Sé que al hacerlo tengo que abrir un puerto en mi computadora y configurar una redirección de puerto de bits en mi enrutador. Sin embargo, el recorrido NAT también sería una buena adición.
Mi pregunta es:
¿Hay una manera simple para una sola transferencia directa de archivos de extremo a extremo entre dos computadoras, evitando a terceros? (si es posible, con encriptación y transversal NAT)
fuente
Respuestas:
La forma más sucia si usa * nix es usar netcat (
nc
) para conectar el archivo al host remoto. Pero si desea cifrar, también podría usar SCP / SSH.Tiene que darse cuenta de que si alguna de las partes está detrás de un NAT y no desea configurar el reenvío de puertos, entonces es imposible hacer una conexión directa sin conectarse primero a un servidor de terceros. El servidor no necesariamente tiene que retransmitir el tráfico (consulte http://en.wikipedia.org/wiki/UDP_hole_punching ) y la mayoría de ellos no lo hace, ya que el ancho de banda es costoso.
Por ejemplo, Skype intentará usar muchos métodos de recorrido NAT para establecer una conexión directa antes de recurrir a la retransmisión de tráfico a través de sus supernodos. (Skype es una red muy P2P).
En cuanto al problema de la cuenta. Supongo que es inevitable. Todos los métodos requerirán algún tipo de configuración o configuración que generalmente es más difícil que registrar una cuenta.
fuente
Las soluciones basadas en WebRTC le dan lo que necesita, quizás en la forma más simple. Usted se conecta a un sitio web de terceros, pero eso es solo para conectar a los pares y no a la parte de transferencia de archivos.
Servicios de ejemplo:
https://www.justbeamit.com/
https://www.sharedrop.io/
EDITAR: entiendo que esto no cumple con todos los requisitos del OP, pero hay otra solución muy útil: Firefox Send . Con esto, carga su archivo a un servidor de terceros en forma cifrada. El servicio le proporciona una URL, que puede compartir con otros. La URL también contiene la clave para descifrar el archivo. Luego pueden descargar el archivo. El archivo se elimina automáticamente después de un número determinado de descargas o después de 24 horas. El servidor nunca ve la clave y, por lo tanto, no puede descifrar el archivo. La ventaja de utilizar un servidor de terceros es que la parte que comparte y la parte que descarga no necesitan estar en línea simultáneamente.
fuente
Puede sincronizar archivos entre computadoras remotas usando un rsync. Esta utilidad está disponible para Windows en cygwin , o puede instalarla con el cwRsync preempaquetado .
Dejaré mi respuesta anterior aquí intacta, pero dadas las recientes revelaciones sobre la NSA, ya no recomendaría Skype para transferencias de archivos seguras.
Puede enviar un archivo directamente a otra persona usando Skype . Skype a veces incluso funciona cuando ambos usuarios están detrás de NAT. Si tiene la habilidad suficiente para abrir un puerto en su enrutador, hacerlo aumentará la probabilidad de negociar una conexión directa.
En términos más generales, muchos programas de chat incluyen un mecanismo para compartir / enviar archivos. La mayoría no proporciona cifrado por defecto como Skype. Pero mientras usted y su destinatario tengan el mismo cliente de chat, tienen una "herramienta simple" para compartir archivos.
fuente
Si ejecuta Linux / unix ssh es una forma segura de transmitir archivos en un modelo de servidor cliente. Sin embargo, se requieren puertos hacia adelante en las conexiones entrantes si están detrás de NAT.
fuente
FTP Ha existido por años. Es inseguro como diablos. Y es simple.
Descargue Filezilla, que puede funcionar como servidor y cliente. Asegúrese de que su firewall esté configurado para permitir que salga. Haga que su destino descargue Filezilla y conéctese a su servidor Filezilla. Transferir archivo.
Solo así, todos sus fragmentos se lanzan a través de Internet para que todos vean tanta ropa que se mueve en la brisa del patio trasero.
fuente
Una vez escribí una publicación de blog sobre la transferencia de archivos con el servidor HTTP incorporado de Python . En resumen, instale Python, abra un símbolo del sistema
cd
en el directorio con archivos para compartir y ejecutarpython -m SimpleHTTPServer
. Muy conveniente si está en Linux u OS X porque Python está instalado de forma predeterminada (también es fácil de instalar en Windows).Si está detrás de un NAT, entonces necesita configurar el reenvío de puertos en su enrutador o algo (lo que supongo que ya sabe).
fuente
Un servidor web que pueda hacer un recorrido NAT UPnP funcionaría, el receptor solo necesitaría un navegador web. Como un cifrado adicional es fácil con un servidor web, solo use https.
Aquí hay un ejemplo (payware 99USD) RaidenHTTPD
fuente
La sincronización de bit torrent sincroniza carpetas en la web. Los archivos también están encriptados. Echale un vistazo.
http://www.bittorrent.com/sync
fuente
Deberías visitar http://filesovermiles.com Parece que hace exactamente lo que quieres. Transferencia directa P2P a través del navegador (flash).
fuente
Puede probar Folder Transfer desde http://www.foldertransfer.com , que puede transferir directamente un archivo entre dos computadoras en Internet. Puede satisfacer plenamente sus necesidades.
fuente
¿Por qué nadie menciona la transferencia IRC DCC? https://en.wikipedia.org/wiki/Direct_Client-to-Client , obtienes tu cliente HexChat, lo instalas en ambas computadoras, ingresas digamos Freenode y luego creas un canal para que ambos se unan, luego haz clic derecho en el otro "contacto / PC" y enviar archivo. Tecnología antigua que siempre funciona, aparte de Hyperterminal para conexión directa de marcado, alrededor de 1995-1998, DCC era la forma principal de descargar música y películas.
fuente
Magic Wormhole se puede usar para esto. En Ubuntu puede instalar a través de apt-get (también está disponible a través de Python pip):
Para enviar un archivo, simplemente diga qué enviar
Esto generará la línea de comando que debe ejecutar en el extremo receptor. Esto incluye una clave secreta (que es tal que también puede leerla por teléfono). No especifica ningún nombre de máquina o dirección IP. Wormhole establece la conexión automáticamente y cifra los archivos a transferir.
https://magic-wormhole.readthedocs.io/en/latest/welcome.html
fuente