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
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.
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.
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]
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/
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]
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.
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.
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.
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.
Si tu configuración es correcta, se te presentará un panel de control de syncthing como el siguiente:
A continuación puedes ver el panel de control de syncthing del 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.
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.
Ahora ve al panel de control del nodo2, en la sección Dispositivos Remotos, haz clic en Añadir Dispositivo Remoto.
Pega el ID del nodo1, e introduce el nombre como nodo1.
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.
Vuelve al panel del nodo1 y deberías ver los mensajes de solicitud del nodo2. Haz clic en Añadir Dispositivo para confirmar.
Cuando se te solicite, haz clic en Guardar para confirmar. Asegúrate también de comprobar el ID de dispositivo del 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.
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.
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.
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
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.
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.