Ricerca nel sito web

Come installare Syncthing su Ubuntu 20.04


Su questa pagina

  1. Prerequisiti
  2. Per iniziare
  3. Installa Syncthing Server su entrambi i server
  4. Crea un file di unità Systemd su entrambi i server
  5. Accedi all'interfaccia web di Syncthing
  6. Configura Nginx come proxy inverso per Syncthing
  7. Conclusione

Syncthing è uno strumento open source utilizzato per sincronizzare i file tra due o più computer su una rete. Utilizza l'architettura peer-to-peer e scambia i tuoi dati direttamente tra i tuoi dispositivi. Tutti i dati trasmessi tra più dispositivi sono crittografati con TLS. Ogni volta che crei, modifichi o elimini dati su una macchina Syncthing, questi verranno automaticamente replicati su altri server. Può essere installato in tutti i principali sistemi operativi inclusi Linux, Windows, Mac OS X, ecc.

In questa guida, ti mostreremo come installare e configurare il server Syncthing su Ubuntu 20.04.

Prerequisiti

  • Due server che eseguono Ubuntu 20.04.
  • Un nome di dominio valido indicato con l'IP del tuo server.
  • Su entrambi i server è configurata una password di root.

Iniziare

Innanzitutto, aggiorna i pacchetti di sistema alla versione aggiornata eseguendo il seguente comando:

apt-get update -y

Una volta aggiornati tutti i pacchetti, puoi procedere al passaggio successivo.

Installa Syncthing Server su entrambi i server

Per impostazione predefinita, il pacchetto Syncthing non è incluso nel repository predefinito di Ubuntu 20.04. Quindi dovrai aggiungere il repository Syncthing all'APT.

Innanzitutto, installa tutte le dipendenze richieste su entrambi i server con il seguente comando:

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

Successivamente, scarica e aggiungi la chiave di rilascio con il seguente comando:

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

Successivamente, aggiungi il repository Syncthing ad APT con il seguente comando:

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

Successivamente, aggiorna il repository e installa il server Syncthing con il seguente comando:

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

Una volta completata l'installazione, verificare la versione di Syncthing con il seguente comando:

syncthing --version

Dovresti ottenere il seguente output:

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

A questo punto, Syncthing è installato su entrambi i server. Ora puoi procedere al passaggio successivo.

Crea un file di unità Systemd su entrambi i server

Successivamente, dovrai creare un file di unità systemd per la gestione del servizio Syncthing. Puoi crearlo su entrambi i server con il seguente comando:

nano /etc/systemd/system/

Aggiungi le seguenti righe:

[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

Salva e chiudi il file quando hai finito. Quindi, ricarica il demone systemd per applicare la configurazione:

systemctl daemon-reload

Successivamente, avvia il servizio Syncthing con il seguente comando:

systemctl start 

Per verificare lo stato del servizio Syncthing, eseguire il comando seguente:

systemctl status 

Dovresti vedere il seguente output:

?  - Syncthing - Open Source Continuous File Synchronization for root
     Loaded: loaded (/etc/systemd/system/; 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/
             ??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>

A questo punto, il servizio Syncthing è avviato e in ascolto sulla porta 8384. Puoi verificarlo con il seguente comando:

ss -antpl | grep 8384

Dovresti vedere il seguente output:

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

Accedi all'interfaccia Web di sincronizzazione

Successivamente, apri il browser Web e accedi all'interfaccia Web di Syncthing utilizzando gli URL http://first-server-ip:8384 e http://first-server-ip:8384.

Dovresti vedere la seguente schermata:

Fare clic su Impostazioni per definire l'utente amministratore e la password come mostrato di seguito:

Fornisci il tuo nome utente, password e fai clic sul pulsante Salva per applicare le modifiche. Verrai reindirizzato alla pagina di accesso di Syncthing:

Fornisci il nome utente e la password dell'amministratore e fai clic sul pulsante Accedi. Dovresti vedere la seguente schermata:

Successivamente, sarà necessario aggiungere l'ID dispositivo di ciascun server a un altro server per sincronizzare i file tra entrambi i server. Per farlo, fai clic sul pulsante Azioni > Mostra ID su entrambi i server. Dovresti vedere la seguente schermata:

Sul primo server, fai clic su Aggiungi dispositivo remoto. Dovresti vedere la seguente schermata:

Fornire l'ID dispositivo del secondo server e fare clic sul pulsante Salva.

Sul secondo server, fai clic su Aggiungi dispositivo remoto. Dovresti vedere la seguente schermata:

Fornire l'ID dispositivo del primo server e fare clic sul pulsante Salva. Dovresti vedere la seguente schermata:

Ora dovrai aggiungere e condividere la cartella che desideri sincronizzare con il secondo server. Fare clic sul pulsante Aggiungi cartella. Dovresti vedere la seguente schermata:

Fornisci l'etichetta della cartella, il percorso della cartella e fai clic sulla scheda Condivisione. Dovresti vedere la seguente schermata:

Selezionare il secondo server e fare clic sul pulsante Salva. Dovresti vedere la seguente schermata:

Successivamente, vai al secondo server e fai clic sul pulsante Rescan All. Dovresti vedere la seguente schermata:

Fare clic su Aggiungi per aggiungere la cartella di backup condivisa sul primo server. Dovresti vedere la seguente schermata:

Ora, ogni volta che crei o modifichi file nella cartella Backup sul primo server, questi verranno automaticamente sincronizzati con il secondo server.

Configura Nginx come proxy inverso per Syncthing

Puoi anche configurare Nginx come proxy inverso per accedere al server Syncthing tramite la porta 80.

Innanzitutto, installa il server Nginx con il seguente comando:

apt-get install nginx -y

Successivamente, crea un file di configurazione dell'host virtuale Nginx con il seguente comando:

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

Aggiungi le seguenti righe:

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;
  }
}

Salva e chiudi il file, quindi verifica Nginx per eventuali errori di sintassi con il seguente comando:

nginx -t

Dovresti ottenere il seguente output:

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

Successivamente, ricarica Nginx per applicare le modifiche.

systemctl reload nginx

Puoi anche controllare lo stato di Nginx usando il seguente comando:

systemctl status nginx

Dovresti vedere il seguente output:

? 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.

Ora puoi accedere al server Syncthing utilizzando l'URL http://syncthing.example.com.

Conclusione

Congratulazioni! hai installato e configurato correttamente Syncthing su due server Ubuntu 20.04 e impostato la sincronizzazione tra entrambi i server. Spero che questo tutorial ti aiuti a eseguire il backup del tuo server.