Syncthing, mi programa favorito para compartir archivos en grupo

40 messages, 2 pages:  1 2 ↖ Go back to topic list

Score: +10

1. el_pichon,

Hola a todos.
Hoy me apetecía escribir sobre esto, y para romper un poco la tradición, no le pongo la palabra "Tutorial" en el título del hilo, aunque va a ser algo muy similar.
Imagina que quieres compartir una carpeta enorme con otra persona. Dejas la carpeta en tu nube favorita, y esperas pacientemente a que se sincronice con el servidor, un proceso que va a tardar horas. La otra persona comenzará a descargarla en cuanto se haya terminado de subir. Seguramente tardará menos horas que tú, porque su velocidad de descarga es algo mayor, pero le llevará también mucho tiempo. Para colmo, te has quedado sin espacio en tu cuenta y uno de los archivos no cabe. ¿Y si la transferencia se hiciera por P2P, directamente al ordenador de la otra persona, y el único límite estuviera en el espacio del disco duro?
Empecé a usar Syncthing allá por el 2016, cuando se puso de moda la sincronización P2P con BitTorrent Sync. A mí no me gustaba porque era algo muy centralizado, había que pagar por funciones extra y ocurrían cosas que no recuerdo con la privacidad. Así que me fui por la alternativa más libre, como siempre. Y desde entonces no la he soltado, ¡será por algo!
Syncthing permite sincronizar carpetas entre dispositivos de una manera casi descentralizada. Las transferencias son de un ordenador a otro, cifrando los datos y aplicando SSL a la conexión con certificados y claves privadas en ambos extremos. Pero dejemos la parte técnica para más adelante, y empecemos por lo fácil.

Instalación

Por defecto, el ejecutable de Syncthing para Windows funciona desde consola, almacena todos sus datos en appdata\local y deja una ventana abierta permanentemente, y eso queda feo. Además, no arranca solo al iniciar sesión. Hay que complementarlo con algo, y ese algo se llama Sync Trayzor.
Sync Trayzor se encarga de arrancar Syncthing, vigilar su actividad y enviar notificaciones cuando tienen lugar una serie de eventos, como cambios en las carpetas locales o dispositivos que se conectan y se desconectan. Se minimiza a la bandeja del sistema, y no deja ventanas molestas en medio. Una vez instalado y configurado, nos podemos olvidar de él.
La versión más reciente, compatible con sistemas de 32 y 64 bits, está aquí. Incluye instaladores y portables, y requiere .net Framework para funcionar: https://github.com/canton7/SyncTrayzor/releases/tag/v1.1.29
Al instalarlo y ejecutarlo, abrirá una ventana con una barra de menú. Desde Archivo > Preferencias se puede configurar todo lo necesario. Las únicas cosas que yo suelo cambiar están en la primera pestaña. Me interesa que Sync Trayzor arranque con Windows, que se minimice y se cierre a la bandeja del sistema, que arranque minimizado y que no envíe notificaciones cuando se conecta o desconecta alguien (de verdad, pueden ser muy molestas).
En Mac no existe Sync Trayzor, hay que instalar Syncthing como una aplicación normal y corriente: https://github.com/syncthing/syncthing-macos/releases/tag/v1.22.0-1
En Linux, para no variar, depende de la distribución. El equipo de Syncthing tiene un repositorio propio para Debian y derivados, y en Centos, Fedora y compañía Syncthing está como paquete en el repositorio EPEL. Una vez instalado, se puede activar del siguiente modo:
systemctl enable syncthing@usuario
systemctl start syncthing@usuario
Aunque es jugar con fuego y no lo recomiendo, no tiene por qué pasar nada si ese usuario es root, sólo manejamos nosotros el sistema y está bien asegurado.
En Android, Syncthing se puede descargar desde la Play Store.
Ahora que ya hemos instalado Syncthing y está en funcionamiento, podemos empezar a jugar con él. No hay que preocuparse por las actualizaciones, llegarán de forma totalmente transparente y sin que nos enteremos (Windows), o se instalarán de la forma habitual, como cualquier otro paquete o aplicación (Mac, Linux y Android).

Primeros pasos

Syncthing se maneja desde la web. Concretamente, desde esta dirección. Su interfaz es plenamente accesible y muy intuitiva. Necesita alguna mejora, como todo, pero son detalles insignificantes. Se puede dividir la ventana en las siguientes regiones:

  • Menú principal.
  • Notificaciones (si las hay).
  • Carpetas.
  • Este dispositivo.
  • Otros dispositivos.
  • Enlaces a webs externas.
  • Diálogos varios (siempre se irán abajo del todo). Sólo aparecerán cuando los abramos nosotros.
Cómo obtener nuestro ID de dispositivo

Por defecto, nuestro dispositivo tiene un identificador único. No va asociado a la máquina, sino a los datos empleados en la generación de nuestro certificado y clave. Por lo tanto, una copia de Syncthing podría migrarse con todos sus datos de un ordenador a otro mientras no se ejecute varias veces simultáneamente. El nombre legible del dispositivo se copia del nombre del equipo, pero podemos editarlo. Para ello, haz lo siguiente:

  • En el menú principal, pulsa Acciones.
  • Pulsa Ajustes.
  • En el primer cuadro de edición que encontrarás, cambia el nombre de tu dispositivo.
  • Pulsa Guardar.

Los cambios de nombre no se reflejarán en el resto de la red, salvo al vincular nuevos dispositivos. Para no causar confusión, se recomienda un nombre único, tan único y duradero como el identificador.
Para conectar con otras personas, tendremos que pasarles (siempre en privado) nuestro identificador, o pedirles el suyo. Para conocer tu identificador de dispositivo, haz lo siguiente:

  • Pulsa Acciones.
  • Pulsa Mostrar ID.
  • Aparecerá el identificador, junto con un código QR. Copia el texto del identificador y dáselo a la otra persona.
  • Pulsa Cerrar.
Conexión con otro dispositivo

Si recibes un identificador de otra persona, busca y activa el botón "Añadir un dispositivo". En el formulario que se muestra, introduce el identificador en el primer campo. En el segundo, introduce el nombre que quieres darle, o déjalo vacío para tomar el nombre remoto elegido por la otra persona. Finalmente, pulsa Guardar. ¿Esperabas más? Hay más cosas que se pueden configurar de cada dispositivo, pero no las veremos todavía.
Por otro lado, si eres tú quien comparte su identificador, recibirás una notificación en la parte superior de la ventana cuando un dispositivo nuevo quiera conectar contigo. Confirma que quieres agregarlo, y se desplegará un diálogo idéntico al anterior. Los campos de identificador y nombre estarán rellenos, con todo listo para que pulses el botón Guardar.

Creación de nuestra primera carpeta compartida

Hemos conectado con éxito con el otro dispositivo. En este momento, aparece como conectado, pero sin uso. Al pulsar intro sobre su encabezado, se desplegará una tabla debajo con la información del dispositivo. Se pueden ver ciertos datos sensibles, como la dirección ip del dispositivo, su versión de Syncthing y su sistema operativo. Por este motivo, lo ideal es conectar sólo con gente de mucha confianza. Ten en cuenta que tus "contactos" también podrán saber cuándo te conectas y te desconectas, y crear un perfil con tus hábitos frente al ordenador.
Ahora, vamos a compartir una carpeta. Para ello, busca y activa el botón "Agregar carpeta". Se desplegará un diálogo en la parte inferior.
De nuevo, vamos a rellenar dos campos:

  • Etiqueta de la carpeta: el nombre que se verá en los otros dispositivos.
  • Ruta de la carpeta: la ruta absoluta a la carpeta, tal y como aparece en la barra de direcciones del explorador de Windows. Por ejemplo, D:\Carpeta compartida.

Pero esta vez no pulsaremos el botón Guardar. Mientras agregabas dispositivos, seguramente viste una lista con varios enlaces antes del formulario. Es una lista con "pestañas" que muestran otras partes del diálogo. En el diálogo de agregar carpeta, esa lista también está presente. Pulsamos sobre un enlace llamado "Compartiendo".
Desde aquí, podremos seleccionar el dispositivo o dispositivos con los que se compartirá la carpeta. Marcamos los que queramos y esta vez sí, podemos pulsar Guardar.

¡Todo listo! Ahora, la carpeta se comportará como cualquier carpeta en la nube. Cuando dejemos un archivo, le llegará a la otra persona, y cuando lo borremos, desaparecerá. El navegador puede estar cerrado mientras hacemos un uso cotidiano de Syncthing.
Podemos añadir más dispositivos a la carpeta, pero hay un problema: si nuestro ordenador se apaga, no podrán comunicarse entre sí. De hecho, cualquier dato que llegue a la carpeta deberá pasar por nuestro equipo antes de propagarse. Somos el centro de comunicación entre dispositivos, y de transferencia de datos. No parece muy práctico, así que vamos a solucionarlo.

Creación de un clúster radial

Si has llegado hasta aquí, has completado los primeros pasos con Syncthing, así que ¡enhorabuena! Vamos a desatar toda la potencia del P2P.
En los apartados anteriores hemos conectado dos dispositivos, que podríamos llamar A y B. Ahora, queremos agregar a la misma carpeta un dispositivo C. Repetimos todos los pasos anteriores y lo conectamos, pero sólo queda vinculado al dispositivo que lo enlazó, por ejemplo al dispositivo A. El dispositivo A puede comunicarse con B y con C, pero B no puede comunicarse con C directamente. Para que esto sea posible, el dispositivo A debe convertirse en un "presentador". Nos lo podemos imaginar en el centro de un círculo, presentando al resto de dispositivos entre sí, y estando estos en el exterior de la circunferencia. Si quieres indicar que uno de tus dispositivos enlazados es un presentador, haz lo siguiente:

  • Busca el dispositivo que quieres modificar y despliégalo pulsando intro sobre su encabezado.
  • Busca y activa el botón "Editar".
  • En el diálogo que se muestra, pulsa intro sobre el enlace "Compartiendo" para activar la pestaña correspondiente.
  • Busca la casilla "Presentador" y márcala.
  • Explora esta parte del diálogo. Observa que se muestran todas tus carpetas, y están marcadas las que compartes con ese dispositivo.
  • Pulsa Guardar.

A partir de ahora, cuando ese dispositivo agregue más dispositivos a la carpeta, aparecerán automáticamente en tu lista de dispositivos, y cuando los elimine desaparecerán. Esto trae múltiples ventajas:

  • Si el presentador apaga su dispositivo, el resto de dispositivos seguirán comunicándose y sincronizando datos entre ellos.
  • Las transferencias hacia un dispositivo se repartirán entre todos, consiguiendo que cada uno tenga que enviar menos información y consumir menos ancho de banda para completar la sincronización de la carpeta.

Creación de un clúster en malla

Esta es una práctica posible, pero no recomendada. Consiste en marcar todos los dispositivos como presentadores en ambos extremos. Es decir, tanto el que invita como el invitado indican que el otro es un presentador. De esa forma, cualquiera puede vincular dispositivos a una carpeta existente y propagar por toda la red la información del nuevo dispositivo. Cuando un dispositivo se da de baja de la red y alguien lo elimina, la información sobre el mismo vuelve a propagarse, por lo que es imposible hacerlo desaparecer y nuestra lista puede acabar llena de dispositivos fantasma. Si Syncthing detecta que la casilla de presentador se marca en ambos lados, emitirá un mensaje de advertencia.

Carpetas sólo enviar o sólo recibir

Por defecto, las carpetas que creamos son de tipo "Enviar y recibir". Esto significa que cualquiera puede modificar su contenido y propagar los cambios por toda la red. Pero a veces, nos puede interesar otro enfoque donde un dispositivo envíe algo y todos los demás lo reciban. Por ejemplo, imaginemos que tenemos los archivos de una web en nuestro disco duro, y todo preparado para sincronizar una carpeta con el servidor web. El servidor puede generar archivos temporales que no nos interesa recibir, pero queremos modificar la web y que los cambios queden reflejados allí casi al instante.
Al igual que con los dispositivos, las carpetas deben modificarse desde ambos extremos. Uno o más dispositivos pueden elegir que la carpeta sea de tipo "Sólo enviar", mientras otros que sea "sólo recibir". Esto no afecta a la hora de sincronizar el contenido, que se propagará por toda la red según corresponda. Para cambiar el tipo de una carpeta, haz lo siguiente:

  • Pulsa intro en el encabezado de la carpeta para expandirla.
  • Busca y activa el botón Editar.
  • Activa el enlace "Avanzado" para desplegar la parte correspondiente del diálogo.
  • Modifica el tipo de carpeta en el cuadro combinado correspondiente.
  • Finalmente, pulsa Guardar.

Se pueden modificar los archivos en una carpeta de tipo sólo recibir, pero no se propagarán por la red. Syncthing detectará que hay contenido que no debería estar ahí, y ofrecerá desde la web la posibilidad de eliminar las diferencias. El resto de dispositivos también verán que la carpeta no está totalmente sincronizada.

Syncthing y la privacidad

Como ya se ha mencionado anteriormente, las transferencias en Syncthing son seguras y van cifradas de extremo a extremo. Se realizan por conexiones SSL, y cada dispositivo dispone de su propio certificado y clave privada, generados la primera vez que arranca el programa. No obstante, hay algunas consideraciones de privacidad que se deben tener en cuenta:

  • Cada dispositivo puede ver la dirección ip y el estado (conectado, desconectado, sincronizando) de todos los que tiene agregados. Usa Syncthing para compartir contenido sólo con personas de confianza.
  • Ciertos datos pasan por los servidores del proyecto. Enseguida hablaremos más de ellos.

Componentes de Syncthing

Si bien es cierto que las transferencias en Syncthing suelen ser de equipo a equipo, este programa sólo es totalmente descentralizado en redes de área local. Sin embargo, a diferencia de otras soluciones de la competencia, todos los actores involucrados en el funcionamiento de Syncthing se pueden replicar y modificar desde la configuración. Veamos cuáles son:

  • Servidor de descubrimiento global: es el servidor que Syncthing usa para descubrir otros dispositivos por su identificador y conectar con ellos.
  • Repetidor: aunque Syncthing soporta UPNP y gestiona de forma transparente la apertura de puertos, a veces se encuentra con algún router que no tiene activada esta tecnología o un firewall muy estricto. En esos casos, recurre a un repetidor para sincronizar las carpetas. Los repetidores suelen reducir notablemente la velocidad de transferencia.
  • Servidor de lista de repetidores: un servidor al que Syncthing acude para buscar los repetidores disponibles, por si tuviera que usarlos.
  • Servidor de actualizaciones: el lugar donde el programa busca nuevas versiones.
  • Servidor de recopilación de datos y estadísticas: el lugar donde Syncthing envía datos de carácter anónimo para mejorar el producto, si se lo consentimos. La primera vez que abramos la web nos pedirá consentimiento mediante una notificación. Este consentimiento se puede modificar desde las opciones.

Se recomienda no modificar ninguno de estos servidores, a menos que sepas lo que estás haciendo y quieras montar una red completa y privada.

Conclusiones

Existen muchas más cosas que se pueden cambiar en Syncthing. Se pueden limitar las velocidades de descarga y subida por dispositivo, configurar la interfaz web para que sea accesible desde el exterior, asignar un nombre de usuario y contraseña, cifrar carpetas sólo en algunos dispositivos, comprimir los datos antes de transferirlos, y mucho más. Sin embargo, son aspectos muy avanzados que no afectarán a la experiencia general de uso, y por lo tanto no hablaremos de ellos en este tutorial.
Muchas gracias por leer hasta aquí. Ahora, ¡a sincronizar carpetas!
P.S.: no, no puedes publicar archivos, ni generar enlaces ni nada. Esto es para compartir, no para publicar. Que ya os conozco.

Score: +5

2. ivanack13,

ese pichon , me suena , me suena de todo!
no son las carpetas que empiesan por un tal resilio cink?
o algo así?
me suena de todo eso
yo tengo una donde saqué de ahí un chingo de gb de efectos de sonido , pero no he visto carpetas mas allá que solo eso
buen aporte , eres el primero acá que escucho que habla de esto

Score: +0

3. readan,

yo usé en su día el resilio, justamente. era bastante útil aunque un poco engorro de manejar con lector de pantalla. de momento no tengo nada que compartir por esa vía, pero me guardo esto que parece útil.

Score: +0

4. Primeape ,

se puede utilizar a larga distancia con otro usuario? o solamente se puede de manera local.

Score: +0

5. Dherhion,

Es, es útil.

Score: +0

6. readan,

tal y como se explica arriba, se puede usar a larga distancia, si solo fuera para local se reduciría su utilidad.

Score: +0

7. Primeape ,

osea que yo puedo decirle a mi familia: ei, súbeme el archivo de documento que se me olvidó suvir a drive en la carpeta, y desde la calle, ya lo tengo en mi dispositivo android?

Score: +0

8. el_pichon,

Sí, exactamente así. Ese es un uso que se le podría dar.

Score: +0

9. Primeape ,

veamos si podemos aplicarlo con mis amigos.

Score: +0

10. Borja ,

interesante. lo voy a probar, muchas gracias por tus aportes

Score: +0

11. Primeape ,

justo que voy a formatear, me viene de pelo para poner todo en el celular, ricozi

Score: +0

12. Lost-the-game,

cuantas carpetas se puede tener?
digamos, tengo una con mi mejor amiga otra con amigos y otra con las chicos de la uni, se puede?

Score: +0

13. Primeape ,

Si, se puede todo eso señor, mientras añadas carpetas

Score: +0

14. Lost-the-game,

esto se puede montar en una vps?

Score: +0

15. Dherhion,

¿Con qué objetivo?

Score: +0

16. el_pichon,

Tengo un Syncthing montado en el servidor de galaxia, y una carpeta que apunta a /var/www/html. Cada vez que actualizo un archivo php en mi equipo, se va allí en cuestión de segundos, y yo me voy al navegador y pulso f5 en un momento para ver el resultado.

Score: +0

17. Lost-the-game,

upa, hermoso. sí, eso, poder subir o compatir archivos.
yo, vengo con un problema. listo, cree la carpeta, la compartí con ambos dispositivos y a ambos los tengo enlazados, todo normal; cuando quiero ahcerme a mi mismo presentador, pulso en mi encabezado, pero no aparece nada. solo pausar, mientras que al otro dispositivo si que lo pude ahcer presentador.
¿por qué puede ser?

Score: +0

18. Arya_Stark,

¡Oh! Más interesante me terminó pareciendo esto de lo que supuse sería cuando estaba leyendo las primeras partes del mensaje d introducción. Genial @el pichon, me gusta porque siempre hacés buenos aportes relacionados a aplicaciones o funcionalidades en lo que a tecnología se refiere. Buena herramienta para tener en cuenta en caso de ser necesario.

Score: +1

19. el_pichon,

Porque tú no puedes hacerte a ti mismo presentador en tu propio dispositivo. Cuando marcas la casilla para otro, estás diciendo "permito que este dispositivo me presente otros dispositivos". Además, nunca verás un botón editar en tu propio dispositivo, porque para eso ya tienes la configuración. En las carpetas, en cambio, sí.

Score: +0

20. Hector,

Jajajaj, 120 GB en un periquete e @ el_pichon.

Gracias, vengo usándolo también hace mucho sobre todo con Android y sincronizando con el PC.

Pero @ el_pichon fue quien por necesidad me hizo desempolvarlo, solo puedo decir que es una genialidad.

Por cierto, gracias por el tuto por que hay cosas que yo no necesitaba en su momento y con esos GB necesitamos y no me apunte.

Guardado en favoritos.

De nuevo gracias.

Score: +0

21. CristianLeon,

Muchas gracias, no sabía que necesitaba esto hasta que lo vi.
Gran aporte.

Score: +0

22. Lost-the-game,

¡hola!
revivo esto para 2 preguntas puntuales.

  1. cómo puedo hacer para copiar los datos de mi dispositivo, y no tener que estar creando carpetas nuevas cada vez que, por ejemplo, formateo el pc?
  2. cómo puedo iniciar y hacer toda la configuración para Ubuntu? porqu eme interesa tenerlo en uan vps para actualizar por ejemplo archivos HTML o php.
  3. ¡Gracias!

Score: +0

23. Venusaur,

Hola. quiero saber si es posible hacer que el programa no borre mis archivos cuando creo una carpeta para enviar en la computadora, y otra para recivir archivos en el teléfono, cuando los boro de mi computadora, desaparecen del teléfono. Bueno, quiero seguir usando la misma carpeta para enviar y recivir archivos, pero yo al borrar archivos del pc, no quiero que estos se borren del teléfono. Hay algo que tenga que hacer para que este comportamiento se evite?

Score: +0

24. Siervodejusticia,

De hecho esto era como el equivalente de BT sync o resilio en su momento, no?
recuerdo que allá por el 2015 usé un programita llamado Aero FS, el cual em permitía esta misma funcionalidad. Pero este tengo que probarlo a ver qué tal.

Score: +0

25. el_pichon,

Puedes pausar la carpeta en uno de los dos dispositivos para que Syncthing deje de buscar cambios en ella, y reanudar la sincronización más adelante. Lo ideal es que salves en tu teléfono los archivos que quieras conservar antes de borrarlos del ordenador, por ejemplo moviéndolos a otra carpeta.

Score: +0

26. Venusaur,

Gracias pichon, osea que para no perder esos archivos antes de borrarlos del pc los muevo a otra carpeta en el teléfono y ya? y luego los borro del pc para que no ocupen más espacio?

Score: +0

Last edited by Venusaur, Sep 28 2023 17:20:54

27. sukil,

Creo que también podrías hacer que un lado sea "solo enviar" y el otro "solo recibir". Sé que en la configuración de la carpeta había algo de eso.

Score: +0

28. Delicious_icecream,

yo me pregunto, y si quiero compartir unos archivos Python, cómo puedo hacer que la carpeta de mi virtualenv, así como la carpeta pycache se ignoren?

Score: +0

29. Lost-the-game,

yo dejé esto porque no encontré ni como poner en una vps ni como clonar la configuración de un dispositivo para no tener que recincronizar carpetas.

Score: +0

30. Delicious_icecream,

donde están las carpetas en el equipo sincronizado además?

Score: +0

40 messages, 2 pages:  1 2 ↖ Go back to topic list

Answer to topic

You must be connected in order to be allowed to post

Lost password ? Create account