syncthing

SyncThing: almacenamiento en tu propia nube

Cuando subes un fichero a Dropbox, ¿donde va a parar? ¿Quién lo tiene? ¿Confías en que nadie vaya a hacer un mal uso? Si subes fotos a Facebook o Google, ¿quién tiene esas fotos? Las tiene Facebook o Google, porque se almacenan en sus servidores. Tus datos son tuyos, y deberías poder decidir donde se almacenan y con quién se comparten. ¿Existe alguna manera de almacenar en la nube y compartir con tus amigos sin que ninguna entidad ajena a tí meta sus narices? ¡¡Existe!! Se llama SyncThing

Syncthing

¿Que es SyncThing? Podríamos decir que es un programa para crear tu propia nube, sin pasar por ningún servidor, tus datos no se almacenan en lugares extraños, los tienes tú a buen recaudo. Es como ownCloud pero descentralizado. Resumiendo lo que dice en su página web (en inglés), SyncThing es “algo” abierto, de confianza y descentralizado. Tus datos son tuyos y tú te reservas el derecho de elegir donde se almacenan, si se comparten con alguien y como se transmiten por Internet.

SyncThing simplemente sincroniza carpetas de tu ordenador (o móvil o tablet) con carpetas de otros dispositivos que tú elijas, ya sea en tu propia red local o a través de Internet. Los dispositivos que se sincronizan pueden ser tuyos o de otras personas a quienes invites. Todo esto se hace sin pasar por ningún servidor, tus datos siempre los tienes tú y quién tú elijas, nadie más.

SyncThing es un software relativamente nuevo, ahora mismo anda por su versión 0.10.6. Es una versión pre-lanzamiento, o sea, que todavía no lo consideran suficientemente depurado como para darlo a conocer ampliamente. Sin embargo, a pesar de que “acaba de romper el cascarón”, tiene un rendimiento excelente y sin errores. En las pruebas que he hecho he intentado hacerle la puñeta, lo he sometido a pruebas de estrés, parándolo en mitad de una sincronización, desconectando dispositivos de golpe, etc. Le he hecho una prueba bastante dura: he creado 100 carpetas con ficheros de forma recursiva, es decir, una dentro de otra, y luego he copiado esas carpetas una y otra y otra y otra vez. El programa se ha portado como un campeón, sincronizando en un momento y sin dar un sólo error.

SyncThing es un programa sencillo pero potente, que se puede utilizar de muy diversas formas. Aquí voy a concretar 3 formas de usarlo. Pero antes de seguir he de decir que esto es un artículo, no es un tutorial, por eso no voy a hacer una explicación detallada paso a paso, para eso ya está la documentación en su página web y una guía de inicio rápido.

  • Sincronización en una red local

Hace un tiempo mi cuñado me pregunto más o menos esto: “¿Hay alguna manera de que yo me lleve mi tablet al trabajo, modifique algunos documentos, y luego pueda tener esos cambios en el ordenador? Pero yo no quiero saber nada de la nube y de esas cosas que ahora están de moda, porque tengo archivos importantes y no me hace ninguna gracia que vayan por la nube, vete tú a saber por donde”. Yo le dije que lo investigaría, y al cabo de un tiempo he encontrado este estupendo programa: SyncThing. En fin, hay personas que no son informáticas pero que muestran preocupación por saber donde se almacenan sus datos, no es cosas de 4 frikis conspiranoicos, jeje.

Pongámonos manos a la obra. Este es el aspecto que tiene el programa, se abre con un navegador de Internet:

Syncthing_aspecte

Como vemos, hay 2 secciones: a la izquierda están las carpetas y a la derecha los dispositivos. El funcionamiento es sencillo, se trata de agregar dispositivos primero, después añadir carpetas e indicar con que dispositivos se sincronizan estas carpetas. Cada dispositivo tiene un identificador, un código ID, para añadir dispositivos debemos conocer su ID. Para saber el código ID de nuestro ordenador debemos acceder al engranaje de parámetros, que está arriba a la derecha, y seleccionar “Show ID”.

Syncthing_showID

Y se mostrará nuestro código de identificación, con un código QR para poder añadirlo fácilmente en un móvil o una tablet:

Syncthing_ID

Vayamos ahora con un caso práctico. Vamos a sincronizar nuestro ordenador con una tablet:

– En nuestro ordenador, accedemos al menú “Show ID” como hemos visto, para que se muestre nuestro ID.

– Ahora en la tablet, seleccionamos la opción de añadir dispositivo. La interfaz de Android no es como la de PC, pero es intuitiva y se puede encontrar esa opción sin que sea necesario explicarla aquí, porque como he dicho anteriormente, esto no es un tutorial.

– Accedemos a la opción de hacer una foto para obtener el código ID, y apuntamos al código QR que está en la pantalla de nuestro ordenador, hasta que la tablet lo reconozca.

– Le ponemos un nombre al dispositivo y el resto de opciones las dejamos por defecto.

– Finalmente, pulsamos el botón de añadir el dispositivo.

– Hemos añadido nuestro ordenador en la tablet.

Ahora toca el paso contrario, añadir la tablet en nuestro ordenador, de esta forma confirmamos que aceptamos que la tablet se conecte a nuestro ordenador. Siempre es necesario agregar dispositivos mutuamente, por ejemplo, si ahora viene un amigo con su móvil y se agrega nuestro ordenador, nosotros debemos ir al ordenador y agregar su móvil. Esto que puede parecer un peñazo, es un mecanismo de seguridad indispensable. Si no, imaginemos, apuntamos el ID en un papel donde ponemos “Código SyncThing” (eso no se debe hacer), perdemos el papel, alguien lo coge, se descarga SyncThing y añade nuestro ID, y ale, a robarnos datos sin más. Por eso es necesaria una confirmación. El mecanismo es como solicitar amistad y confirmar amistad en Facebook.

Bueno, pues añadamos la tablet en nuestro ordenador:

– Primero tenemos que ir a la tablet y acceder al menú de mostrar ID. Desde el ordenador no podemos escaner el código QR, no lo tenemos tan fácil, pero podemos escribirlo a mano, o mejor, guardar el código en un fichero de texto y transferirlo por cable de datos de la tablet al ordenador.

– En el ordenador, pulsamos el botón “Add device”, está debajo de la lista de dispositivos, y aparece un diálogo donde introduciremos los datos del dispositivo:

Syncthing_Device

– En “Device ID” pondremos el código ID de la tablet.

– En “Device Name” pondremos el nombre que queremos que se muestre en la parte de dispositivos. Si lo dejamos en blanco el programa mostrará primero un código y luego intenará mostrar el nombre interno de la tablet.

– En “Adresses” pondremos la dirección o direcciones IP del dispositivo. Si ponemos “dynamic” se buscará el dispositivo automáticamente, es la opción más recomendada. Si accedemos por Internet (como veremos en el siguiente punto) y tenemos nuestro dispositivo registrado con un nombre dinámico (en dyn.com, por ejemplo) podemos poner ese nombre para encontrar el dispositivo más rápido, por ejemplo: minombre.dyndns.org:22000 (se accede al puerto 22000)

– El resto de datos los ponemos por defecto.

– Cuando esté todo, pulsamos “Save”.

Lo siguiente es crear una carpeta e indicar con que dispositivos se sincroniza. Por defecto, el programa crea una carpeta llamada “default” que apunta, en nuestro ordenador a “Carpeta_personal/Sync”. La versión de Android crea también una carpeta “default”, pero apunta a la carpeta de fotos.

– En el ordenador, podemos editar la carpeta “default” pulsando el botón “Edit”, o crear una nueva pulsando el botón el botón “Add folder”. En los 2 casos sale un diálogo muy parecido. Si añadimos carpeta debemos indicar a que carpeta de nuestro ordenador queremos que apunte.

– Debemos seleccionar que dispositivo o dispositivos queremos que se sincronicen con esa carpeta, en la sección “Share with devices”:

Syncthing_Folder

– Ahí marcaremos la casilla de la tablet, aunque en esta pantalla que se muestra se sincroniza con dispositivos diferentes.

Ahora debemos ir a la tablet y hacer el mismo paso, añadiendo el ordenador. ¡Ojo! Si hemos creado una carpeta nueva, en la tablet se tiene que llamar exactamente igual, si no, no se podrá agregar el ordenador.

Nuevamente, como ocurre con los dispositivos, es necesario añadir mutuamente carpetas como mecanismo de seguridad. Puede parece que, si ya confiamos en los dispositivos, porque son nuestros o de amigos, no sería necesario confirmar la carpeta. Pero si que es necesario. Supongamos que tenemos un amigo un poco manazas, le decimos que tenemos una carpeta llamada “fotos” para compartir fotos mutuamente. Él debe crear en el programa una carpeta que también se llame “fotos” y que apunte a una carpeta en blanco de su ordenador, pero resulta que se equivoca y apunta a una carpeta con datos. Si la sincronización empezara en cuanto él añade nuestro dispositivo, nos descuajeringaría nuestra carpeta de fotos con datos suyos. Por eso se debe confirmar la carpeta, para que podamos comprobar si lo ha hecho bien y entonces aceptar.

Bueno, pues después de todo esto ya están los dispositivos listos para sincronizar. Por ejemplo, si hemos dejado la carpeta “default” que apunta a una carpeta llamada “Sync” dentro de nuestra carpeta personal, todo lo que modifiquemos, añadamos o borremos en esa carpeta se sincronizará con la tablet.

  • Sincronización a través de Internet

El título de este artículo dice “almacenamiento en tu propia nube”, pero hasta ahora sólo hemos visto sincronización en red local. Bueno, pues con la misma configuración del punto anterior, sin tocar nada, se puede sincronizar a través de Internet. Simplemente nos debemos dejar el ordenador encendido y ya podemos ir por ahí con la tablet, cuando modifiquemos algún fichero se sincronizará a través de Internet. Si queremos gastar menos electricidad podemos usar un portátil pequeño, que suelen gastar unos 20W, frente a un ordenador de sobremesa que suele gastar unos 100W.

Ahora la pregunta es, ¿como encuentra la tablet el ordenador? Pues cuando en un dispositivo ejecutamos el programa lo primero que hacer es registrar su ID y su dirección IP en un servidor especial, llamado “Global discovery server”, que pertenece a los desarrolladores de este software. Como en este artículo se está hablando bastante de privacidad, en la documentación de este programa te explican como puedes montar tu propio “global discovery server”, aunque la verdad, tampoco es muy necesario, el ID y la IP no son datos tan confidenciales. Bueno, pues cuando la tablet está en Internet consulta este servidor para saber la IP del ordenador y entonces se conecta a esa IP en el puerto 22000. Por tanto, ese puerto debe estar abierto en nuestro router. Este programa usa el protocolo uPNP, por lo que si nuestro router es compatible, se habrá configurado automáticamente y no será necesario tocar nada. Si no hay suerte y nuestro router no es compatible, deberemos entrar en nuestro router y abrir el puerto 22000 para que apunte a nuestro ordenador.

  • Compartiendo fotos con amigos

Viajemos por un momento al pasado, a los años 90, donde no existía ni Facebook ni Dropbox, y aunque Google apareció en los últimos años simplemente era un buscador muy bueno, nada más. Llegamos a una tienda de fotos para revelar nuestro carrete de 24 fotos (por aquel entonces había que elegir muy bien que fotos hacer, no se podían hacer a lo loco, jeje). Una vez revelado el carrete, se nos ocurre hacerle al fotógrafo la siguiente propuesta poco común: “Quédate tú con los negativos, así pueden venir mis amigos cuando les apetezca y les haces una copia, y no tienen que estar cada 2 por 3 pidiéndome los negativos. ¡Es muy cómodo! Eso sí, hazle las copias sólo a quién yo te diga. ¿Que te parece la propuesta?”. Puede que el fotógrafo fuera la persona más íntegra del mundo, que no hiciera un mal uso de las fotos, sin embargo, en aquella época, ¿hubieras confiado en dejar tan alegremente tus fotos privadas en una tienda de fotos? Por aquel entonces a nadie se le ocurría hacer estas cosas tan raras, sin embargo, como cambian los tiempos, ¡¡¡esto es exactamente lo que hacemos cuando subimos fotos a Facebook, a Google o a otros servicios!!! Subimos muy alegremente nuestros ficheros y fotos privadas a servicios web, donde si quieren nos pueden mirar nuestras cosas, ¡¡si!!, así es, porque los datos no están encriptados en origen. Nuestros datos son nuestra vida, en definitiva, ¡¡estamos entregando nuestra vida a manos extrañas!!

Después de todo este rollo un tanto conspiranoico, jeje, si he conseguido convencerte sigamos adelante, si no, allá tú.

Como hemos visto en los puntos anteriores, los dispositivos se deben añadir mutuamente, y también las carpetas. Por tanto, si queremos compartir fotos, deberíamos hacer que un amigo nos añada y luego añadirle nosotros a él, a continuación, que él cree una carpeta con el nombre que hayamos acordado, por ejemplo “fotos”, y que nos añada en su lista de dispositivos, y nosotros añadirle a él. Con el resto de amigos tendríamos que hacer lo mismo. Después, cada amigo tendría que añadir de la misma manera el resto de amigos. En fin, si esto fuera así sería un auténtico peñazo imposible de hacer.

Afortunadamente, el programa tiene solución a esto. A la hora de añadir o editar un dispositivo podemos marcar la opción “Introducer”:

Syncthing_Introducer

Esta opción se traduce como “el que hace las presentaciones”. Vendría a ser algo así como que en una fiesta, por ejemplo, una persona se encarga de presentar a sus amigos a las personas que llegan nuevas. Veámoslo con un ejemplo.

Yo soy el “organizador”, decidimos que vamos a crear una carpeta que se llamará “fotos. Mi amigo Juan me añade en su ordenador, a la hora de añadirme marca la casilla “Introducer”. Después crea la carpeta fotos y me añade en la lista. Luego yo añado su dispositivo y la carpeta de la misma manera. En ese momento se sincronizan, no pasa nada especial. Luego llega Ana, me añade en su móvil, marcando la opción “Introducer” y añade la carpeta, yo hago lo mismo. En ese momento a Ana se le añade automáticamente Juan, sin hacer nada. Después llega Carlos, me añade con la opción Introducer y yo le añado. En ese momento a Carlos se le agregan automáticamente Juan y Ana. Después llega Gema, me añade y le añado, y a ella se le agregan Juan, Ana y Carlos. Y así sucesivamente. Si a alguien se le olvida marcar “Introducer” no pasa nada, sólo apareceré yo, después puede modificar el dispositivo, marcar la casilla y en poco tiempo recibirá la lista del resto de amigos.

Si nos hemos organizado bien, estaremos todos interconectados y nos compartiremos las fotos sólo entre nosotros, a salvo de ojos fisgones. El trabajo de compartir se distribuye automáticamente entre todos, como sucede en una red P2P.

Pegas que pueden surgir. Si alguien crea la carpeta fotos y apunta a una carpeta con datos, nos descuajeringará la carpeta al resto. Si algún manazas borra la carpeta de fotos nos las borrará al resto, esto tiene solución, en la carpeta el “organizador” puede marcar la opción “protect master”, así, el organizador debe aprobar los cambios, el problema es que debe estar constantemente aprobando cambios.

En fin, reconozco que para usuarios en general esto resulta un poco complicado, tal vez sólo informáticos puedan compartir fotos de esta manera. Pero por lo menos se abre la puerta al desarrollo del concepto de almacenar y compartir nuestra vida digital privada de manera verdaderamente privada. En fin, en los 90 compartíamos las fotos entre amigos sin necesidad de que el fotógrafo se quedara con los negativos, ¿por qué no podemos hacer lo mismo en la era digital?

Programa similar: BitTorrent Sync. http://www.getsync.com/ Es más fácil de utilizar e incluye una opción de compartir en sólo lectura, para evitar manazas. El problema es que no es software libre, no he visto el código fuente por ningún lado. Eso significa que debemos confiar ciegamente en la buena fe de los desarroladores. Podrían no hacer nada, pero también podrían colarnos algo raro y ni enterarnos.

manuSyncThing: almacenamiento en tu propia nube

Deja un comentario