Cómo instalar Syncthing en AlmaLinux 9

Syncthing es una herramienta de sincronización de archivos peer-to-peer de código abierto diseñada para sincronizar archivos de forma segura entre varios dispositivos. A diferencia de los servicios basados en la nube, Syncthing funciona directamente entre dispositivos sin almacenar datos en servidores externos, lo que proporciona a los usuarios un control total sobre sus archivos y su privacidad. Funciona utilizando comunicación encriptada entre dispositivos, garantizando que los datos se transfieren de forma segura. Syncthing puede utilizarse para sincronizar archivos entre ordenadores, dispositivos móviles e incluso servidores, lo que lo convierte en una solución versátil para usuarios que necesitan una sincronización de archivos fiable, privada y en tiempo real. Es fácil de configurar, multiplataforma y se ejecuta en segundo plano, sincronizando automáticamente los archivos cada vez que se detectan cambios.

En esta guía, aprenderás a instalar el software Syncthing en servidores AlmaLinux 9. También aprenderás a conectarte entre dos instancias de syncthing y a configurar una carpeta compartida en syncthing.

Requisitos previos

Antes de empezar, asegúrate de que tienes lo siguiente:

  • Dos máquinas AlmaLinux 9.
  • Un usuario no root con privilegios de administrador.
  • Un SELinux con modo permisivo.

Descarga del archivo binario Syncthing

Para la distribución basada en RHEL, necesitas instalar syncthing manualmente a través de un archivo binario. Asegúrate de consultar la página oficial de GitHub de syncthing para obtener la última versión de syncthing.

Primero, ejecuta el siguiente comando para instalar los paquetes curl, wget y el editor nano en tus sistemas.

sudo dnf install curl wget nano -y

instalar paquetes

Ahora descarga el archivo binario de syncthing del repositorio de GitHub utilizando el siguiente comando.

curl -s https://api.github.com/repos/syncthing/syncthing/releases/latest | grep browser_download_url | grep linux-amd64 | cut -d '"' -f 4 | wget -qi -

Una vez descargado, extrae el archivo tar.gz de syncthing utilizando el siguiente comando. A continuación, mueve el archivo binario syncthing al directorio /usr/bin/.

tar xvf syncthing-linux-amd64*.tar.gz
sudo mv syncthing-linux-amd64-*/syncthing /usr/bin/

Por último, comprueba la ubicación del archivo binario syncthing y la versión utilizando el comando siguiente.

which syncthing
syncthing --version

Según la siguiente salida, puedes ver que syncthing xxx está instalado en /usr/bin/syncthing.

descargar verificar sincronización

Ejecutar Syncthing como servicio Systemd

Syncthing puede ejecutarse manualmente, pero es más fácil ejecutar syncthing como un servicio systemd. Puedes controlar el servicio syncthing utilizando la utilidad systemctl.

Ejecuta el siguiente comando del editor nano para crear un nuevo archivo de servicio systemd /etc/systemd/system/[email protected].

sudo nano /etc/systemd/system/[email protected]

Introduce la siguiente configuración en el archivo.

[Unit]
Description=Syncthing - Open Source Continuous File Synchronization for %I
Documentation=man:syncthing(1)
After=network.target
[Service]
User=%i
ExecStart=/usr/bin/syncthing -no-browser -gui-address=0.0.0.0:8384 -no-restart -logflags=0
Restart=on-failure
SuccessExitStatus=3 4
RestartForceExitStatus=3 4

# Hardening
ProtectSystem=full
PrivateTmp=true
SystemCallArchitectures=native
MemoryDenyWriteExecute=true
NoNewPrivileges=true

[Install]
WantedBy=multi-user.target

Guarda el archivo y sal del editor cuando hayas terminado.

Por último, y lo más importante, recarga el gestor systemd utilizando el siguiente comando para aplicar los cambios en tu sistema.

sudo systemctl daemon-reload

Configurar Firewalld

Ahora que has configurado syncthing como un servicio systemd, necesitarás abrir puertos para syncthing mediante firewalld. Por defecto, firewalld incluye la aplicación syncthing, puedes habilitarla fácilmente.

Ejecuta el siguiente comando para añadir y habilitar los servicios syncthing y syncthing-gui en firewalld.

sudo firewall-cmd --zone=public --add-service=syncthing --permanent
sudo firewall-cmd --zone=public --add-service=syncthing-gui --permanent

Ahora recarga el firewalld para que surta efecto y, a continuación, comprueba la lista de servicios habilitados en firewalld.

sudo firewall-cmd --reload
sudo firewall-cmd --list-all

Como puedes ver en la siguiente salida, el perfil syncthing está habilitado.

configurar firewalld

Inicializar el Nodo de Sincronización

Antes de empezar a conectar instancias de sincronización, debes inicializar syncthing por usuario en tu sistema. En este ejemplo, utilizaremos a continuación dos servidores Almalinux con usuarios diferentes:

  • nodo1 con el usuario tom
  • servidornodo2 con usuario jerry

Ahora, ejecuta el siguiente comando para iniciar el servicio syncthing e inicializar la instalación de syncthing. Asegúrate de cambiar el usuario tom por tu nombre de usuario.

sudo systemctl start [email protected]

inicializar syncthing

Una vez iniciado el servicio syncthing, se creará el nuevo directorio de configuración ~/.local/state/synching y el directorio Sync. Verifícalo utilizando el comando que aparece a continuación.

ls -ah ~/Sync
ls -ah ~/.local/state/syncthing/

generar archivos de directorio

Después, abre la configuración de syncthing ~/.local/state/syncthing/config.xml utilizando el comando nano del editor que aparece a continuación.

sudo nano ~/.local/state/syncthing/config.xml

Dentro de la sección‘gui‘, cambia la opción‘tls=false‘ por‘tls=true‘ para habilitar el acceso seguro para syncthing.

 <gui enabled="true" tls="true" debugging="false" sendBasicAuthPrompt="false">
 <address>192.168.10.41:8384</address>
 <apikey>GENERATED-API-KEY</apikey>
 <theme>default</theme>
 </gui>

Guarda el archivo y sal del editor cuando hayas terminado.

A continuación, ejecuta el siguiente comando para reiniciar syncthing y aplicar tus cambios.

sudo systemctl restart [email protected]

A continuación, habilita y verifica el servicio syncthing mediante el siguiente comando. Asegúrate de que obtienes una salida enabled and active(running), que confirma que el estado del servicio syncthing es running.

sudo systemctl enable [email protected]
sudo systemctl status [email protected]

verificar sincronización

Configurar usuario y contraseña para Syncthing

Ahora que has iniciado e inicializado syncthing, el siguiente paso será configurar la autenticación de usuario para tu instancia de syncthing.

Antes de empezar, ejecuta el siguiente comando ss para asegurarte de que el puerto 8384 está en estado LISTEN.

ss -tulpn | grep 8384

En la siguiente salida, puedes ver que el puerto 8384 es utilizado por syncthing.

comprobar sincronización

Abre tu navegador web y visita la dirección IP del servidor seguida del puerto 8384 (es decir: https://192.168.5.15:8384/). Si la instalación se ha realizado correctamente, deberías obtener la siguiente página de bienvenida.

Haz clic en el menú Configuración para configurar la autenticación de usuario.

configurando

Haz clic en la pestaña GUI e introduce tu usuario y contraseña de administrador. Asegúrate de marcar la opción Usar HTTPS para GUI. Pulsa Guardar para confirmar los cambios.

configurar auth

Ahora serás redirigido a la página de inicio de sesión de Syncthing. Desde allí, introduce tu nombre de usuario y contraseña, y pulsa Iniciar sesión.

inicio de sesión

Si tu configuración es correcta, se te presentará un panel de control de syncthing como el siguiente:

cuadro de mandos syncthing

A continuación puedes ver el panel de control de syncthing del nodo2.

tablero nodo2

Conectando la Instancia Syncthing

Llegados a este punto, ya has terminado la instalación de syncthing en ambos servidores Almalinux. Es hora de conectar ambas instancias de syncthing, lo que puede hacerse a través del panel de administración web.

En el salpicadero del nodo1, haz clic en Acción y selecciona Mostrar ID para obtener los detalles del ID del nodo.

mostrar id

Puedes ver el ID y el qrcode de la instancia nodo1. Copia el ID del nodo1, lo necesitarás para conectarte a la instancia del nodo2.

copiar nodo1

Ahora ve al panel de control del nodo2, en la sección Dispositivos Remotos, haz clic en Añadir Dispositivo Remoto.

añadir dispositivo remoto

Pega el ID del nodo1, e introduce el nombre como nodo1.

añadir dispositivo

A continuación, ve a la pestaña Compartir. En la sección Carpetas no compartidas, marca la opción Carpeta predeterminada para compartir la carpeta de destino con el nodo1.

Además, asegúrate de marcar la opción Aceptar automáticamente para crear o compartir automáticamente las carpetas que el nodo1 anuncie en la ruta predeterminada.

Haz clic en Guardar para confirmar.

compartir carpeta

Vuelve al panel del nodo1 y deberías ver los mensajes de solicitud del nodo2. Haz clic en Añadir Dispositivo para confirmar.

aceptar dispositivo

Cuando se te solicite, haz clic en Guardar para confirmar. Asegúrate también de comprobar el ID de dispositivo del nodo2.

confirmar dispositivo nodo2

A continuación, recibirás otra notificación de que la instancia del nodo2 compartirá la carpeta Carpeta predeterminada, haz clic en Compartir para confirmar.

compartir carpeta

Una vez finalizado el proceso, podrás ver en el nodo1 la siguiente información:

  • La Carpeta por Defecto con ruta /home/tom/Sync está Compartida con nodo2.
  • En la sección Dispositivos Remotos, puedes ver el nodo2 con el estado Actualizado.

carpeta compartida del dispositivo remoto

Ahora comprueba el panel de control del nodo2, deberías ver información similar de que la Carpeta por Defecto está Compartida con el nodo1. También puedes ver en la sección Dispositivos Remotos el nodo1 con el estado Actualizado.

éxito compartido

Prueba de Sincronización de Archivos

Llegados a este punto, ya has completado la configuración de la carpeta compartida entre dos instancias de sincronización. Ahora, vamos a intentar crear nuevos archivos en el directorio compartido para verificar la sincronización entre dos instancias de syncthing.

En el servidor nodo1, desplázate al directorio ~/Sync y ejecuta el siguiente comando para crear nuevos archivos.

cd ~/Sync/
touch file{1..50}.txt
ls -ah

nodo1 crear archivos

Ahora pasa al servidor nodo2 y ve al directorio ~/Sync. A continuación, comprueba los archivos de la lista en el directorio ~/Sync.

cd ~/Sync
ls -ah

Si la sincronización se ha realizado correctamente, deberías ver los archivos que has creado desde el servidor nodo1.

comprobar sincronización

Con esto, tu instalación de sincronización se ha realizado correctamente.

Conclusión

¡Enhorabuena! Has instalado con éxito syncthing en servidores AlmaLinux 9. También has aprendido a conectarte entre instancias de syncthing, a configurar una carpeta compartida y a verificar la sincronización de las instancias de syncthing.

A partir de ella, ahora puedes añadir más dispositivos y conectarte a tu instancia actual para habilitar el intercambio de archivos y la sincronización entre varios dispositivos.

También te podría gustar...