Cómo instalar Syncthing en Ubuntu 20.04

Interfaz de administración de sincronización

Syncthing es una herramienta de código abierto que se utiliza para sincronizar archivos entre dos o más computadoras en una red. Utiliza una arquitectura de igual a igual e intercambia sus datos directamente entre sus dispositivos. Todos los datos transmitidos entre múltiples dispositivos están encriptados con TLS. Cada vez que cree, modifique o elimine cualquier dato en una máquina Syncthing, se replicará automáticamente en otros servidores. Se puede instalar en todos los principales sistemas operativos, incluidos Linux, Windows, Mac OS X, etc.

En esta guía, le mostraremos cómo instalar y configurar el servidor Syncthing en Ubuntu 20.04.

requisitos previos

  • Dos servidores con Ubuntu 20.04.
  • Un nombre de dominio válido apuntado con la IP de su servidor.
  • Se configura una contraseña de root en ambos servidores.

Empezando

Primero, actualice los paquetes del sistema a la versión actualizada ejecutando el siguiente comando:

apt-get update -y

Una vez que todos los paquetes estén actualizados, puede continuar con el siguiente paso.

Instale el servidor de sincronización en ambos servidores

De forma predeterminada, el paquete Syncthing no está incluido en el repositorio predeterminado de Ubuntu 20.04. Por lo tanto, deberá agregar el repositorio Syncthing al APT.

Primero, instale todas las dependencias requeridas en ambos servidores con el siguiente comando:

apt-get install gnupg2 curl apt-transport-https -y

A continuación, descargue y agregue la clave de lanzamiento con el siguiente comando:

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

A continuación, agregue el repositorio Syncthing a APT con el siguiente comando:

echo "deb https://apt.syncthing.net/ syncthing release" > /etc/apt/sources.list.d/syncthing.list

A continuación, actualice el repositorio e instale el servidor Syncthing con el siguiente comando:

apt-get update -y
apt-get install syncthing -y

Una vez completada la instalación, verifica la versión de Syncthing con el siguiente comando:

syncthing --version

Deberías obtener el siguiente resultado:

syncthing v1.18.0 "Fermium Flea" (go1.16.5 linux-amd64) [email protected] 2021-06-21 20:53:50 UTC [noupgrade]

En este punto, Syncthing está instalado en ambos servidores. Ahora puede continuar con el siguiente paso.

Crear un archivo de unidad Systemd en ambos servidores

A continuación, deberá crear un archivo de unidad systemd para administrar el servicio Syncthing. Puede crearlo en ambos servidores con el siguiente comando:

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

Agregue las siguientes líneas:

[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

[Install]
WantedBy=multi-user.target

Guarde y cierre el archivo cuando haya terminado. Luego, vuelva a cargar el demonio systemd para aplicar la configuración:

systemctl daemon-reload

A continuación, inicie el servicio Syncthing con el siguiente comando:

systemctl start [email protected]

Para verificar el estado del servicio Syncthing, ejecute el siguiente comando:

systemctl status [email protected]

Debería ver el siguiente resultado:

? [email protected] - Syncthing - Open Source Continuous File Synchronization for root
     Loaded: loaded (/etc/systemd/system/[email protected]; disabled; vendor preset: enabled)
     Active: active (running) since Fri 2021-07-09 04:40:12 UTC; 5s ago
       Docs: man:syncthing(1)
   Main PID: 2878 (syncthing)
      Tasks: 14 (limit: 2353)
     Memory: 44.2M
     CGroup: /system.slice/system-syncthing.slice/[email protected]
             ??2878 /usr/bin/syncthing -no-browser -gui-address=0.0.0.0:8384 -no-restart -logflags=0
             ??2889 /usr/bin/syncthing -no-browser -gui-address=0.0.0.0:8384 -no-restart -logflags=0

Jul 09 04:40:14 node1 syncthing[2878]: [WPOF6] INFO: QUIC listener ([::]:22000) starting
Jul 09 04:40:14 node1 syncthing[2878]: [WPOF6] INFO: Loading HTTPS certificate: open /root/.config/syncthing/https-cert.pem: no such file or d>
Jul 09 04:40:14 node1 syncthing[2878]: [WPOF6] INFO: Creating new HTTPS certificate
Jul 09 04:40:14 node1 syncthing[2878]: [WPOF6] INFO: Completed initial scan of sendreceive folder "Default Folder" (default)
Jul 09 04:40:14 node1 syncthing[2878]: [WPOF6] INFO: GUI and API listening on [::]:8384
Jul 09 04:40:14 node1 syncthing[2878]: [WPOF6] INFO: Access the GUI via the following URL: http://127.0.0.1:8384/
Jul 09 04:40:14 node1 syncthing[2878]: [WPOF6] INFO: My name is "node1"
Jul 09 04:40:14 node1 syncthing[2878]: [WPOF6] WARNING: Syncthing should not run as a privileged or system user. Please consider using a norma>
Jul 09 04:40:14 node1 syncthing[2878]: [WPOF6] INFO: quic://0.0.0.0:22000 detected NAT type: Not behind a NAT
Jul 09 04:40:14 node1 syncthing[2878]: [WPOF6] INFO: quic://0.0.0.0:22000 resolved external address quic://45.58.35.6:22000 (via stun.syncthin>

En este punto, el servicio Syncthing se inicia y escucha en el puerto 8384. Puede verificarlo con el siguiente comando:

ss -antpl | grep 8384

Debería ver el siguiente resultado: Anuncio

LISTEN    0         4096                     *:8384                   *:*        users:(("syncthing",pid=2889,fd=12))    

Acceder a la interfaz web de sincronización

A continuación, abra su navegador web y acceda a la interfaz web de Syncthing utilizando las direcciones URL http://first-server-ip:8384 y http://first-server-ip:8384.

Debería ver la siguiente pantalla:

Interfaz de administración de sincronización

Haga clic en el Ajustes para definir el usuario administrador y la contraseña como se muestra a continuación:

Establecer una contraseña

Proporcione su nombre de usuario, contraseña y haga clic en Ahorrar botón para aplicar los cambios. Será redirigido a la página de inicio de sesión de Syncthing:

iniciar sesión

Proporcione su nombre de usuario y contraseña de administrador y haga clic en Iniciar sesión botón. Debería ver la siguiente pantalla:

carpetas

A continuación, deberá agregar la identificación del dispositivo de cada servidor a otro servidor para sincronizar archivos entre ambos servidores. Para hacerlo, haga clic en Acciones > Mostrar ID botón en ambos servidores. Debería ver la siguiente pantalla:

Identificación del dispositivo

identificar el nodo 2

En el primer servidor, haga clic en Agregar dispositivo remoto. Debería ver la siguiente pantalla:

Agregue un dispositivo

Proporcione la identificación del dispositivo del segundo servidor y haga clic en el Ahorrar botón.Publicidad

En el segundo servidor, haga clic en Agregar dispositivo remoto. Debería ver la siguiente pantalla:

Identificación del dispositivo

Proporcione la identificación del dispositivo del primer servidor y haga clic en el Ahorrar botón. Debería ver la siguiente pantalla:

Carpetas y Dispositivos

Ahora, deberá agregar y compartir la carpeta que desea sincronizar con el segundo servidor. Haga clic en el Agregar carpeta botón. Debería ver la siguiente pantalla:

Agregar una carpeta

Proporcione la etiqueta de su carpeta, la ruta de la carpeta y haga clic en el Intercambio pestaña. Debería ver la siguiente pantalla:

compartir carpetas

Marque el segundo servidor y haga clic en el Ahorrar botón. Debería ver la siguiente pantalla:

Carpetas y dispositivos en Syncthing

A continuación, vaya al segundo servidor y haga clic en volver a escanear Todos botón. Debería ver la siguiente pantalla:

Volver a escanear todo

Haga clic en Agregar para agregar la carpeta de copia de seguridad compartida en el primer servidor. Debería ver la siguiente pantalla:

Sincronizando carpetas

Ahora, cada vez que cree o modifique cualquier archivo en la carpeta de copia de seguridad en el primer servidor, se sincronizará automáticamente con el segundo servidor.

Configurar Nginx como proxy inverso para sincronizar

También puede configurar Nginx como proxy inverso para acceder al servidor Syncthing a través del puerto 80.

Primero, instale el servidor Nginx con el siguiente comando:

apt-get install nginx -y

A continuación, cree un archivo de configuración de host virtual Nginx con el siguiente comando:

nano /etc/nginx/conf.d/syncthing.conf

Agregue las siguientes líneas:

server {
  listen 80;
  server_name syncthing.example.com;

  access_log /var/log/nginx/syncthing.access.log;
  error_log /var/log/nginx/syncthing.error.log;
  location / {
    proxy_pass http://127.0.0.1:8384;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
  }
}

Guarde y cierre el archivo, luego verifique el Nginx para cualquier error de sintaxis con el siguiente comando:

nginx -t

Deberías obtener el siguiente resultado:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

A continuación, vuelva a cargar Nginx para aplicar los cambios.

systemctl reload nginx

También puede verificar el estado de Nginx usando el siguiente comando:

systemctl status nginx

Debería ver el siguiente resultado:

? nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2021-07-09 05:01:36 UTC; 21s ago
       Docs: man:nginx(8)
   Main PID: 3394 (nginx)
      Tasks: 2 (limit: 2353)
     Memory: 6.2M
     CGroup: /system.slice/nginx.service
             ??3394 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
             ??3395 nginx: worker process

Jul 09 05:01:36 node1 systemd[1]: Starting A high performance web server and a reverse proxy server...
Jul 09 05:01:36 node1 systemd[1]: Started A high performance web server and a reverse proxy server.

Ahora, puede acceder al servidor Syncthing usando la URL http://syncthing.example.com.

Conclusión

¡Felicidades! ha instalado y configurado correctamente Syncthing en dos servidores Ubuntu 20.04 y ha configurado la sincronización entre ambos servidores. Espero que este tutorial le ayude a hacer una copia de seguridad de su servidor.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *