Cómo mantener archivos y directorios sincronizados en diferentes dispositivos utilizando Syncthing en Linux

Cómo mantener archivos y directorios sincronizados en diferentes dispositivos utilizando Syncthing en Linux

Syncthing se define como un programa continuo de sincronización de archivos: se puede usar para mantener archivos y directorios sincronizados en diferentes dispositivos o "nodos". La aplicación utiliza TLS como método de cifrado, y lo es, junto con su protocolo, software de código abierto y de código abierto. Al usar Syncthing, nuestros datos permanecen en nuestro dispositivo y se transfieren directamente al destino sin transmitir en un servidor central (par a igual). En este tutorial veremos cómo instalar, configurar y usar Syncthing en Linux.

En este tutorial aprenderás:

  • Cómo instalar sincronización en las distribuciones de Linux más utilizadas
  • Cómo configurar el firewall para que la sincronización funcione correctamente
  • Cómo compartir y mantener un directorio sincronizado en dos dispositivos
  • Cómo austostar el demonio de sincronización automáticamente en el inicio de sesión del usuario
Logotipo de sincronización

Requisitos de Software

Requisitos de software y convenciones de línea de comandos de Linux
Categoría Requisitos, convenciones o versión de software utilizada
Sistema Distribución independiente
Software Sincronización
Otro Permisos de raíz
Convenciones # - requiere que los comandos de Linux dados se ejecuten con privilegios raíz directamente como un usuario raíz o mediante el uso de sudo dominio
$-Requiere que los comandos de Linux dados se ejecuten como un usuario regular no privilegiado

Instalación



Básicamente, hay dos métodos que podemos usar para instalar Syncthing en nuestra distribución favorita de Linux: podemos usar la versión empaquetada en los repositorios nativos, o podemos descargar un tarball del sitio web oficial de sincronización. Además, solo si usamos Debian o Ubuntu, podemos agregar el repositorio de sincronización oficial como una fuente de software adicional e instalar el paquete desde él.

Instalación de la versión nativa

Syncthing está disponible en los repositorios nativos de las distribuciones de Linux más utilizadas, como Fedora, Debian/Ubuntu y Archlinux, por lo tanto, podemos instalarlo fácilmente con nuestro Administrador de paquetes favorito. Esta es siempre la forma recomendada de obtener software; El único problema es que, especialmente en distribuciones como Debian "estable", el repositorio puede contener versiones obsoletas de los paquetes. Para instalar sincronización en Fedora, podemos usar el DNF Administrador de paquetes y emitir el siguiente comando:

$ sudo dnf instalación de instalación 

En Debian y sus muchos derivados, en cambio, podemos ejecutar:

$ sudo apt instalación de instalación 

En Archlinux podemos usar Pacman para instalar el paquete Syncthing, que forma parte del repositorio de la "comunidad". Obtener el software es solo cuestión de lanzar nuestro emulador terminal y ejecutar:

$ sudo Pacman -sy Syncthing 

Descargar un tarball



El segundo método para instalar Syncthing consiste en descargar el Tarball Linux dedicado de la sección Descargas del sitio oficial. Deberíamos descargar el archivo que contiene la versión compatible con la arquitectura de nuestro sistema. Si estamos utilizando Debian o Ubuntu, también podemos agregar el repositorio oficial a nuestras fuentes de software y luego instalarlo usando apto.

Configuración del firewall

Antes de ejecutar la sincronización, para que funcione correctamente, debemos configurar algunas reglas de firewall para permitir el tráfico entrante a través de ciertos puertos. Versiones recientes de los gerentes de firewall de Firewalld y UFW, ya vienen con un servicio preconfigurado para sincronizar (aquí con la palabra "servicio" nos referimos a un conjunto definido de reglas). Si usa Firewalld, para activar el servicio y, por lo tanto, para habilitar el tráfico a través de los puertos requeridos), debemos ejecutar:

$ sudo firewall-cmd --Permanent --Add-service = Synching && sudo firewall-cmd--Reload 

Observe que con el comando anterior, ya que no se especifica ninguna zona, el servicio se agregará al "predeterminado". Si queremos agregar el servicio a una zona específica, debemos especificarlo con el --zona opción, pasar el nombre de la zona como argumento. Para recopilar información sobre el servicio y ver qué puertos están incluidos en él, podemos ejecutar:

$ sudo firewall-cmd --info-service = personalizado 

La salida del comando anterior es lo siguiente:

Puertos de sincronización: 22000/TCP 21027/UDP Protocolos: Fuente-Ports: Módulos: Destino: Incluye: Ayudos: 


Como podemos ver, los puertos "involucrados" en el servicio están 22000/tcp y 21027/UDP. Si estamos utilizando UFW (firewall sin complicaciones), para activar el servicio, debemos ejecutar:

$ sudo UFW Permitir sincronización 

Usando sincronización

Para comenzar el demonio de sincronización, todo lo que tenemos que hacer es invocar el binario de sincronización desde nuestro terminal:

$ Syncthing 

Syncthing viene con una interfaz web que se puede utilizar para administrar la aplicación, agregar directorios compartidos y dispositivos remotos. Una vez que ejecutamos el comando anterior, se inicia el demonio de sincronización y una pestaña del navegador web se abre automáticamente al 127.0.0.1: 8384 dirección, que es donde se puede alcanzar la interfaz.

El directorio compartido de sincronización predeterminado es ~/Sincronizar; It y todos los demás que deben sincronizarse se muestran en la columna izquierda de la interfaz. En la columna derecha, en su lugar, podemos ver la información sobre la sincronización del dispositivo y se está ejecutando, y una lista de dispositivos remotos asociados. En nuestro caso, la lista todavía está vacía:

La interfaz web de sincronización de la interfaz web de sincronización

Para agregar una máquina remota y compartir un directorio con ella, lo que debemos hacer es intercambiar ID de dispositivos. Para verificar una ID de dispositivo, podemos hacer clic en el botón "Acciones" en la parte superior derecha de la interfaz web y hacer clic en "Show ID". La ID del dispositivo actual se mostrará junto con el Ccode QR corresponsal:

Verificación del dispositivo

Para que la aplicación funcione correctamente, los dos (o más dispositivos) deben conocer sus respectivas IDS. En la siguiente sección veremos cómo agregar un dispositivo remoto.

Agregar un dispositivo

Para comenzar a sincronizar un directorio, necesitamos agregar un dispositivo remoto a nuestra configuración. En aras de este tutorial, usaré la máquina Linux donde instalamos sincronización como "fuente" de sincronización, mientras que el sistema remoto será un dispositivo Android (la sincronización se puede instalar fácilmente desde la tienda de Google Play); Los dos dispositivos deben estar conectados a la misma LAN.

Hacemos clic en el botón "Agregar dispositivo remoto" en la parte inferior derecha de la interfaz web. En la pestaña FIST de la ventana emergente que se abrirá, debemos ingresar a la ID de dispositivo complementario y un nombre opcional para humanos:



Añadir dispositivo

Como puede ver, si el descubrimiento automático funciona como debería, el otro dispositivo de sincronización en la LAN debe descubrir e informar automáticamente en la lista de "dispositivos cercanos". En tales casos, todo lo que debemos hacer es hacer clic en el
enlace corresponsal, y el campo de entrada de ID se llenará automáticamente.

En la segunda pestaña, "Compartir", podemos seleccionar qué directorios queremos compartir con el dispositivo complementario. En este caso seleccionamos el predeterminado:

Agregar intercambio de dispositivos

Una cosa conveniente que debe hacer es verificar la casilla de verificación "Aceptación automática": de esta manera, el sistema no nos pedirá que confirme si queremos aceptar la sincronización del directorio ofrecido por el sistema remoto, pero lo creará automáticamente.



La tercera pestaña contiene "Configuración avanzada". Aquí podemos elegir ingresar una dirección estática para el dispositivo remoto, si tiene algún descubrimiento dinámico no funciona. También podríamos elegir el límite de tasa entrante y saliente para el dispositivo, y qué datos deben comprimirse (todos los datos frente a los metadatos, el valor predeterminado).

Agregar dispositivo avanzado

Una vez hecho, podemos hacer clic en el botón "Guardar". El dispositivo remoto debe aparecer en la lista en la página principal. En el otro dispositivo realizamos la misma operación (tenga en cuenta que en la aplicación Android, haciendo clic en el menú "Hamburguesa", tenemos la opción de usar la interfaz web) y agregar nuestra ID de dispositivo "Fuente". Una vez que los dos dispositivos se emparejan correctamente, su estado debe comenzar a sincronizar. Una vez que se termine el proceso de sincronización, se informará como "actualizado":

Dispositivos remotos

En este punto, nuestra sincronización (bidireccional) debe estar lista, y el directorio se mantendrá sincronizado en los dos dispositivos.

AutoStart el demonio de sincronización



Para que el demonio de sincronización comience automáticamente, podemos usar Systemd, que es el Linux Init Manager. En este caso, lo comenzaremos como un servicio por usuario, por lo que no necesitaremos privilegios administrativos. Cuando un servicio se configura de esta manera, se iniciará solo una vez que el usuario inicie sesión.

Lo primero que queremos hacer es copiar el archivo de servicio SystemD en el directorio apropiado. Si instalamos sincronización desde los repositorios nativos de nuestra distribución de Linux, dicho archivo debería ser: /usr/lib/systemd/user/syncthing.servicio; Si descargamos el tarball del sitio de sincronización oficial, el archivo debe encontrarse dentro del etc/linux-systemd/usuario directorio.

Creamos el ~/.config/systemd/usuario directorio si aún no existe, y copie el archivo dentro de él:

$ mkdir -p ~/.config/systemd/user && cp/usr/lib/systemd/user/syncthing.servicio ~/.config/systemd/usuario 

Una vez que el archivo está en su lugar, ejecutamos el siguiente comando para habilitar el servicio:

$ systemctl -user habilitar sincronización.servicio 

Conclusiones

En este tutorial, aprendimos a instalar y configurar Syncthing, una aplicación muy pura que nos permitió mantener uno o más directorios sincronizados entre múltiples dispositivos, sin la necesidad de usar un servidor "central". Vimos cómo instalar la aplicación, cómo configurar el firewall para permitir el tráfico a través de los puertos requeridos, cómo compartir un directorio entre dos dispositivos y cómo autoestactar el demonio de sincronización automáticamente cuando un usuario inicia sesión.

Tutoriales de Linux relacionados:

  • Cosas para instalar en Ubuntu 20.04
  • Una introducción a la automatización, herramientas y técnicas de Linux
  • Cosas que hacer después de instalar Ubuntu 20.04 fossa focal Linux
  • Cómo configurar un servidor OpenVPN en Ubuntu 20.04
  • Mastering Bash Script Loops
  • Cómo arrancar dual Kali Linux y Windows 10
  • Cosas para instalar en Ubuntu 22.04
  • Mint 20: Mejor que Ubuntu y Microsoft Windows?
  • Archivos de configuración de Linux: los 30 principales más importantes
  • Descarga de Linux