GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo instalar Syncthing en Ubuntu 20.04

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

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

Cómo empezar

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.

Instalar Syncthing Server 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:

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 mediante las direcciones URL http://first-server-ip:8384 y http://first-server-ip:8384.

Debería ver la siguiente pantalla:

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

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

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:

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:

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

Proporcione la identificación del dispositivo del segundo servidor y haga clic en Guardar botón.

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

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

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

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

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

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

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

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

Configure 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 te ayude a hacer una copia de seguridad de tu servidor.


Ubuntu
  1. Cómo instalar Logstash en Ubuntu 18.04

  2. Cómo instalar XWiki en Ubuntu 20.04

  3. Cómo instalar phpBB en Ubuntu 20.04

  4. Cómo instalar MongoDB en Ubuntu 20.04

  5. Cómo instalar R en Ubuntu 18.04

Cómo instalar Go en Ubuntu 20.04

Cómo instalar Go en Ubuntu 22.04

Cómo instalar Jenkins en Ubuntu 18.04

Cómo instalar Ruby en Ubuntu 18.04

Cómo instalar Kanboard en Ubuntu 20.04

Cómo instalar OpenMAINT en Ubuntu 20.04