Cómo instalar Syncthing en Ubuntu 22.04
Syncthing es un programa de sincronización de archivos seguro y de código abierto para múltiples plataformas, como Windows, macOS, Linux, Android, Solaris, Darwin y BSD. Es una herramienta de sincronización de archivos descentralizada y entre iguales (P2P) que te permite sincronizar archivos entre dispositivos de una red local o entre dispositivos remotos a través de Internet.
En este tutorial, te mostraré cómo instalar Syncthing en un servidor Ubuntu 22.04. A continuación, aprenderás a establecer una conexión entre instancias de Syncthing, a configurar la sincronización de directorios y a comprobar la sincronización.
Requisitos previos
Para empezar con este tutorial, debes tener lo siguiente:
- Dos máquinas Ubuntu 22.04 – En este ejemplo, utilizaremos dos servidores Ubuntu servidor1 y servidor2.
- Un usuario no root con privilegios de administrador.
Añadir el repositorio de Syncthing
Syncthing se puede instalar de varias formas, puedes instalarlo manualmente mediante un archivo binario, o instalarlo mediante APT para Ubuntu. En este ejemplo, instalarás syncthing mediante APT añadiendo el repositorio oficial a ambas máquinas Ubuntu.
Para empezar, ejecuta el siguiente comando para instalar algunos paquetes básicos en tu sistema Ubuntu.
sudo apt install gnupg2 curl apt-transport-https -y
Ahora, añade la clave GPG de syncthing y el repositorio a tus dos sistemas Ubuntu. En este caso, instalarás la última versión de Syncthing a través del repositorio APT.
curl -fsSL https://syncthing.net/release-key.txt | \ sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/syncthing.gpg
echo «deb https://apt.syncthing.net/ syncthing release» | \
sudo tee /etc/apt/sources.list.d/syncthing.list
A continuación, actualiza y refresca tu repositorio de Ubuntu utilizando el siguiente comando.
sudo apt update
Cuando veas que el repositorio de Syncthing está disponible, estarás listo para empezar.
Instalar Syncthing
Ahora que has añadido un repositorio syncthing a ambas máquinas Ubuntu, el siguiente paso será instalarlo en ambas máquinas y configurarlo para que se ejecute como un servicio systemd. Además, asegúrate de que tienes un usuario no root en ambas máquinas para ejecutar syncthing.
Para instalar syncthing, ejecuta el siguiente comando apt. Escribe y y pulsa ENTER para proceder con la instalación.
sudo apt install syncthing
Una vez completada la instalación, verifica la versión de syncthing de la siguiente manera:
syncthing --version syncthing -h
En la siguiente salida, deberías ver que syncthing 1.26 está instalado.
Ahora que has instalado syncthing, debes iniciarlo como per-usuario. En este ejemplo, utilizaremos el usuario alice en el servidor1, y el usuario bob en el servidor2.
Inicia sesión con tu usuario utilizando el comando que aparece a continuación.
su - alice
A continuación, inicia y activa el servicio syncthing para el usuario alice utilizando el comando siguiente:
sudo systemctl start [email protected] sudo systemctl enable [email protected]
Asegúrate de introducir tu contraseña para obtener los privilegios de root cuando se te pida:
Ahora verifica el servicio syncthing para asegurarte de que se está ejecutando mediante el siguiente comando.
sudo systemctl status [email protected]
Deberías ver que el servicio syncthing para el usuario alice se está ejecutando. Asegúrate también de que el servicio syncthing del bot de tus servidores se está ejecutando.
Configurar el cortafuegos
En esta guía, habilitarás el cortafuegos en ambas máquinas Ubuntu. En Ubuntu, puedes utilizar UFW (Uncomplicated Firewall), y por defecto, syncthing también proporciona un perfil de aplicación UFW, para que puedas habilitarlo fácilmente.
Ejecuta el siguiente comando para añadir los perfiles syncthing y syncthing-gui a UFW.
sudo ufw allow syncthing sudo ufw allow syncthing-gui
Añade ahora el perfil OpenSSH y, a continuación, inicia y habilita UFW mediante el siguiente comando. Escribe y para confirmar la operación.
sudo ufw allow OpenSSH sudo ufw enable
Una vez completada, verás la siguiente salida.
A continuación, verifica las reglas y perfiles habilitados en UFW utilizando el comando siguiente.
sudo ufw status verbose
Asegúrate de que tanto syncthing como syncthing-gui están añadidos a UFW.
Inicializar las instancias de Syncthing
Ahora que has instalado Syncthing y configurado UFW, estás listo para empezar a inicializar tu instalación. En este paso, configurarás syncthing para que se ejecute en una dirección IP local con HTTPS activado, y configurarás la autenticación de usuario para syncthing.
Por defecto, syncthing se ejecuta en localhost. Si quieres ejecutar syncthing en una dirección IP local, modifica el archivo de configuración de syncthing ~/.config/syncthing/conf.xml.
Abre el archivo ~/ .config/syncthing/conf. xml utilizando el comando del editor nano que aparece a continuación.
nano ~/.config/syncthing/conf.xml file
Dentro de la sección ‘<gui ..>’, cambia el valor‘tls‘ a‘true‘ y cambia el localhost por defecto por tu dirección IP local.
<gui enabled="true" tls="true" debugging="false" sendBasicAuthPrompt="false"> <address>192.168.5.30:8384</address> <apikey>GENERATED-API-KEY</apikey> <theme>default</theme> </gui>
Guarda y cierra el archivo cuando hayas terminado.
Ahora ejecuta el siguiente comando para reiniciar el servicio syncthing.
sudo systemctl restart [email protected]
Abre tu navegador web y visita syncthing a través de la dirección IP del servidor y el puerto 8384 (es decir: https://192.168.5.30:8384/).
Si la instalación se ha realizado correctamente, deberías obtener la siguiente página:
Haz clic en Configuración para configurar syncthing.
Dentro de la pestaña GUI, cambia tu usuario y contraseña, y haz clic en Guardar.
Una vez configurada la nueva contraseña, se te solicitará la autenticación syncthing.
Introduce tu nombre de usuario y contraseña, y luego haz clic en Iniciar sesión.
Si tienes el usuario y la contraseña adecuados, deberías obtener el tablero de syncthing como el siguiente:
A continuación se muestra el panel de syncthing del servidor2 una vez configurados el usuario y la contraseña.
Conectar dos instancias de Syncthing
Después de configurar Synthing en ambas máquinas Ubuntu, se conectarán, para que puedas sincronizar archivos entre esas máquinas. Para ello, debes verificar ambas máquinas a través de la GUI.
En el servidor1, haz clic en el botón Acción de la parte superior derecha y selecciona Mostrar ID.
Copia el ID de dispositivo del servidor1. El ID del dispositivo de sincronización se genera automáticamente durante la estadística. Además, también puedes utilizar el código QR para conectarte entre instancias de syncthing, por ejemplo entre ordenadores y teléfonos Android.
Desplázate al servidor2, y haz clic en Añadir Dispositivo Remoto para añadir una nueva instancia de syncthing.
Pega el ID del dispositivo del servidor1, introduce el nombre como servidor1 y haz clic en Guardar para confirmar.
A continuación, vuelve al panel del servidor1 y a la información sobre el servidor2 al que quieres conectarte. Haz clic en Añadir dispositivo para añadir el servidor1.
Ahora, aparecerá la nueva ventana emergente, verifica el ID de dispositivo del servidor2 y, a continuación, haz clic en Guardar.
Por último, ve al panel de sincronización y desplázate a la sección Dispositivos Remotos. Si el proceso se realiza correctamente, deberías ver el servidor2 con el estado conectado.
Por otro lado, cuando compruebes el servidor2, deberías ver que el servidor1 está conectado.
Sincronizar directorio con Syncthing
Llegados a este punto, tanto el servidor1 como el servidor2 están conectados mediante syncthing. Ahora, aprenderás cómo compartir un directorio/carpeta y sincronizar archivos entre instancias de syncthing.
En el panel de control del servidor 1, echa un vistazo a la sección Carpetas, y encontrarás la Carpeta por Defecto con la ruta directorio /home/alice/Sync y el estado No Compartido.
Haz clic en Editar para compartir la Carpeta por Defecto.
- Pasa a la pestaña Compartir, y verás la lista de instancias de sincronización conectadas. Selecciona servidor2 para compartir la Carpeta por Defecto con la instancia de syncthing servidor2.
- Ve a la pestaña Versionado de Ficheros, selecciona el método de Versionado de Ficheros que quieras utilizar e introduce la cantidad de versionado que quieras mantener.
Haz clic en Guardar para aplicar tu modificación.
Por último, ve al panel de control del servidor 2, y recibirás el mensaje de notificación de que el servidor1 quiere compartir la Carpeta por Defecto. Haz clic en Compartir para confirmar.
Una vez finalizado el proceso, deberías ver que la Carpeta por defecto está compartida.
En la sección Carpeta por defecto del servidor 1, deberías ver la sección Compartida con con el valor servidor2.
En el servidor2, deberías ver la sección Carpeta por Defecto y Compartida con el servidor1.
Sincronización de archivos entre instancias de sincronización
Ahora que has configurado el directorio compartido mediante Syncthing, vamos a verificarlo creando nuevos archivos desde el servidor1 y verificando los archivos de la lista en el servidor2 para asegurarnos de que la sincronización funciona.
En el servidor1, ve al directorio Sync y crea nuevos archivos utilizando el siguiente comando.
cd ~/Sync/ touch {1..20}.txt
Desplázate al servidor2, ve al directorio Sync y comprueba la lista de archivos de ese directorio.
cd ~/Sync/ ls -ah
Si ves varios archivos .txt en el directorio Sync, habrás realizado la instalación de Syncthing sin ningún problema.
Desde aquí, puedes crear y compartir un nuevo directorio entre instancias de syncthing. También puedes añadir nuevas instancias.
Conclusión
¡Enhorabuena! Has completado la instalación de Syncthing en servidores Ubuntu 22.04. También has aprendido a asegurar syncthing con UFW (Uncomplicated Firewall), conectar entre instancias de syncthing, configurar carpetas compartidas y verificar la sincronización entre directorios compartidos.
Además, puedes añadir nuevos dispositivos a tu instalación actual de syncthing y configurar carpetas compartidas, para que puedas acceder a los archivos desde varios dispositivos.