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 con Ubuntu 20.04.
- Un nome di dominio valido puntato all'IP del tuo server.
- Su entrambi i server è configurata una password di root.
Per iniziare
Innanzitutto, aggiorna i pacchetti di sistema alla versione aggiornata eseguendo il comando seguente:
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
Quindi, scarica e aggiungi la chiave di rilascio con il seguente comando:
curl -s https://syncthing.net/release-key.txt | apt-key add -
Quindi, 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
Quindi, 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, verifica 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) [email protected] 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à di sistema 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/[email protected]
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
Quindi, avvia il servizio Syncthing con il seguente comando:
systemctl start [email protected]
Per verificare lo stato del servizio Syncthing, eseguire il comando seguente:
systemctl status [email protected]
Dovresti vedere il seguente output:
? [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>
A questo punto, il servizio Syncthing è avviato ed è 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 Syncthing
Quindi, apri il tuo 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:
Fai clic su Impostazioni per definire utente e password amministratore come mostrato di seguito:
Fornisci il tuo nome utente, password e fai clic su Salva pulsante per applicare le modifiche. Verrai reindirizzato alla pagina di accesso di Syncthing:
Fornisci il nome utente e la password dell'amministratore e fai clic su Accedi pulsante. Dovresti vedere la seguente schermata:
Successivamente, dovrai aggiungere l'ID dispositivo di ciascun server a un altro server per sincronizzare i file tra entrambi i server. Per farlo, fai clic su Azioni> Mostra ID pulsante su entrambi i server. Dovresti vedere la seguente schermata:
Sul primo server, fai clic su Aggiungi dispositivo remoto . Dovresti vedere la seguente schermata:
Fornisci l'ID dispositivo del secondo server e fai clic su Salva pulsante.
Sul secondo server, fai clic su Aggiungi dispositivo remoto . Dovresti vedere la seguente schermata:
Fornisci l'ID dispositivo del primo server e fai clic su Salva pulsante. Dovresti vedere la seguente schermata:
Ora dovrai aggiungere e condividere la cartella che desideri sincronizzare con il secondo server. Fai clic su Aggiungi cartella pulsante. Dovresti vedere la seguente schermata:
Fornisci l'etichetta della cartella, il percorso della cartella e fai clic su Condivisione scheda. Dovresti vedere la seguente schermata:
Seleziona il secondo server e fai clic su Salva pulsante. Dovresti vedere la seguente schermata:
Quindi, vai al secondo server e fai clic su Rescan Tutti pulsante. Dovresti vedere la seguente schermata:
Fai clic su Aggiungi per aggiungere la cartella Backup condivisa sul primo server. Dovresti vedere la seguente schermata:
Ora, ogni volta che crei o modifichi dei file nella cartella Backup sul primo server, questi verranno sincronizzati automaticamente sul 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
Quindi, 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
Quindi, 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.