Sincroniza tus archivos con Syncthing

Syncthing es un fantástico servicio, que nos va a permitir tener acceso instantáneo a una o más carpetas en muchos dispositivos. Se trata de una solución de sincronización de archivos multiplataforma. Sigue la filosofía de desarrollo del código abierto y utiliza una licencia de software libre, en este caso la Mozilla Public License en su versión 2.0 La herramienta esta desarrollada en el lenguaje Go y  utiliza su propio protocolo de intercambio de bloques (Block Exchange Protocol) Dispone de clientes tanto para GNU/Linux, macOS o Windows. Incluso nos ofrece una aplicación para Android, para así poder sincronizar desde y hacia nuestros teléfonos inteligentes. Además de una versión para Docker

Entre los objetivos de esta herramienta se encuentran:

  • Estar a salvo de la pérdida de datos. Hace todo lo posible y razonable para evitar daños los archivos de los usuarios.
  • Seguro antes los atancantes. Nunca debe permitir que los datos del usuario sean susceptibles de escucha o modificación por parte de terceros no autorizados.
  • Fácil de usar. La sincronización debe ser accesible, comprensible e inclusiva.
  • Automático. La acción del usuario debe ser solo necesaria cuando sea absolutamente necesario.
  • Disponible de forma universal. La sincronización debería ejecutarse en todas las computadoras comunes. El equipo de desarrollo es consciente de que la última tecnología no siempre está disponible para cualquier individuo.
  • Para personas. La sincronización se trata principalmente de capacitar al usuario individual con una sincronización de archivos segura, segura y fácil de usar..

El programa nos ofrece una interfaz web para usar en nuestro navegador web, como una interfaz de usuario (GUI) para el escritorio. En el caso de GNU/Linux utilizando GTK.

Sin duda una buena forma de tener acceso a nuestros ficheros prácticamente desde cualquier lugar. Tal y como indican en su página web «Sus datos son solo sus datos y merece elegir dónde se almacenan, si se comparten con un tercero y cómo se transmiten a través de Interne

Logo oficial de Syncthing

Cómo funciona Syncthing

Syncthing utiliza un modelo de nube tipo BYO donde los usuarios proporcionan el hardware en el que se ejecuta el software. Es compatible tanto con IPv6 como IPV4. En este último se ofrece retransmisiones NAT. Los dispositivos que se conectan entre sí requieren una aprobación explicita, como veremos más adelante. Esto aumenta la seguridad. Todos los datos siempre van cifrados, mediante TLS

Si existen conflictos se manejan cambiando el nombre del archivo más antiguo con un sufijo de «conflicto de sincronización», además de la fecha y de la hora. Esto permite al usuario dedecidir cómo administrar dos o más archivos con el mismo nombre.

Su eficiente sincronización se logra mediante la compresión de los metadatos o de todos los datos de transferencia, la reutilización de bloques y el escaneo ligero, para los archivos modificados, una vez que se ha calculado y guardado un hash completo.

Instalar Syncthing en GNU/Linux

Dependerá de nuestra distribución, en versiones Ubuntu o similares, como Linux Mint, debemos seguir estos pasos. El primero es añadir el repositorio:

echo "deb https://apt.syncthing.net/ syncthing stable" | \
sudo tee /etc/apt/sources.list.d/syncthing.list

Importamos la llave PGP:

curl -s https://syncthing.net/release-key.txt | sudo apt-key add -

Actualizamos e instalamos:

sudo apt install syncthing

Además, añadimos el servicio al arranque y lo encendemos. Para ello utilizamos el paquete oficial, ubicado en «/lib/systemd/system/syncthing.service». Debemos cambiar el valor «username«, por el nombre de nuestro usuario.

sudo systemctl enable syncthing@username.service
sudo systemctl start syncthing@username.service

En mi caso:

Habilitamos y encendemos el servicio

Por defecto el servicio funciona sobre el puerto 8384, desde nuestro localhost. Para muestra un botón:

Interfaz web de Syncthing

Tal y como se muestra en la imagen, el programa detecta el idioma que tengamos configurado para el usuario en el sistema operativo.

En el caso de Fedora, solo hemos de escribir:

dnf install syncthing

En Manjaro seguimos estos pasos:

sudo pacman -S snapd
sudo systemctl enable --now snapd.socket
sudo ln -s /var/lib/snapd/snap /snap

Empezando a utilizar la web de Syncthing

Lo primero que vamos a hacer es agregar un dispositivo, para así poder sincronizarlo. Un grupo de dispositivos que sincronizan carpetas entre sí se denomina clúster en este herramienta. Todos ellos deben tener el cliente instalado. En el caso de dispositivos móviles con Android, debemos utilizar Syncthing para Android.

Mostrar nuestro ID de dispositivo

En esta herramienta los dispositivos se identifican mediante una cadena alfanumérica larga única. Esta cadena se conoce como ID de dispositivo. Para ver el ID de nuestro dispositivo, nos vamos a «Acciones» y «Mostrar ID«

Mostrar ID

Añadir dispositivo

Para agregar un nuevo dispositivo, debemos hacer clic en el botón «Añadir un dispositivo«, que se encuentra en la parte inferior derecha. El programa reconoce de forma automática los dispositivos que se encuentran en la red local, que tienen instalado su cliente. Si no se muestra el dispositivo con el que queremos sincronizar, debemos ingresar la ID de forma manual.

Podemos añadir los dispositivos que encuentra en la red local

Una vez ya hemos añadido el dispositivo, que lo podemos hacer de forma inversa, esto es, añadir el pc desde el móvil, o el móvil desde el pc, nos aparecerá un mensaje similar al siguiente:

Petición de conexión del recurso

Una vez hecho esto, ya vemos la información del recurso y del nuevo dispositivo:

Información del dispositivo conectado

A partir de aquí ya podemos empezar a trabajar. Por ejemplo, tal y como se muestra en la imagen anterior, he compartido la carpeta «Cámara» de mi móvil Android, y estoy sincronizando las fotos con mi PC. Es una buena manera de tener una copia de las fotos de tu móvil en tu ordenador, sin tener que utilizar programas de terceros.

Opciones de sincronización

Has tres tipos de opciones de sincronización, que son, enviar y recibir, solamente enviar o recibir solo. Estas opciones se pueden modificar desde el menú «Editar», marcando previamente sobre la carpeta. Para después ir «Avanzado» y «Tipo de carpeta«

La carpeta la marcamos para solo recibir

En el menú también existen opciones interesantes, como indicar que siempre tiene que haber un tanto por ciento libre en el sistema de ficheros, para así no quedarnos sin espacio disponible.

Para saber más y agredecimientos

Si queremos saber sobre esta fantástica herramienta, siempre podemos consultar su página web: syncthing.net, o bien su página en Github

Por último y no menos importante, quiero dar las gracias al equipo de personas detrás de la cuenta de Canaima GNU/Linux en Twitter, que tuvieron a bien recordarme la existencia de esta herramienta.

Fuentes consultadas

Entrada sobre Syncthing en Wikipedia