Syncthing è un programma gratuito e open source per sincronizzare file tra dispositivi da una rete locale o dispositivi remoti su Internet. Utilizza un'architettura peer-to-peer e la sincronizzazione continua dei file scambia i dati direttamente tra i dispositivi in modo completamente automatizzato.
Syncthing può essere utilizzato per mantenere sincronizzati file e directory in tempo reale. Tutta la trasmissione di dati tra più dispositivi è sicura e crittografata con TLS.
Le funzioni chiave di sincronizzazione sono:
- Supporto per l'autenticazione LDAP.
- supporto per la sincronizzazione unidirezionale.
- Velocità di sincronizzazione rapida.
- Utilizza sia CLI che GUI
- Multipiattaforma disponibile su:Linux, Android, Unix, Solaris, Windows e Mac OS X.
In questo tutorial impariamo come installare Syncthing su Ubuntu 20.04 .
Prerequisiti
- Due server con Ubuntu 20.04 installato.
- Utente con accesso sudo e root.
- Due indirizzi IP pubblici configurati.
Installa Syncthing su Ubuntu
Syncthing è disponibile sul repository ufficiale. Seguendo i passaggi per l'installazione, aggiungere il repository Syncthing e installarlo su Ubuntu.
Innanzitutto, aggiorna i pacchetti di sistema con il seguente comando:
apt update
Installa tutte le dipendenze con il seguente comando:
apt-get install gnupg2 curl apt-transport-https
Aggiungi e scarica la chiave di rilascio:
curl -s https://syncthing.net/release-key.txt | apt-key add -
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
Al termine, aggiorna i pacchetti di sistema ancora una volta e installa Syncthing pacchetto:
apt-get update
apt-get install syncthing
Verifica l'installazione controllando la versione di Syncthing:
syncthing --version
Uscita:
syncthing v1.18.1 "Fermium Flea" (go1.16.6 linux-amd64) [email protected] 2021-07-30 12:41:57 UTC [noupgrade]
Se hai un output simile, Syncthing è installato correttamente.
NOTA: Dovrai ripetere questi stessi passaggi di installazione sull'altro server.
Crea un file di unità di sistema
Il passaggio successivo consiste nel creare un file di unità systemd, per la gestione del servizio Syncthing.
Crea un file in /etc/systemd/system/ con il seguente comando.
nano /etc/systemd/system/[email protected]
Aggiungi le seguenti righe al file di configurazione:
[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
Nella parte [Servizio], nella riga -gui-address="0.0.0.0:8384"
aggiungi il tuo indirizzo IP pubblico del primo server e lascia la stessa porta 8384.
Salva la configurazione e chiudi il file.
Ora ricarica il demone systemd per applicare la configurazione:
systemctl daemon-reload
Dopo che il demone è stato ricaricato, avvia il servizio di sincronizzazione che punta al tuo utente con il seguente comando.
systemctl start syncthing@yourUser
Verifica lo stato del servizio Syncthing:
systemctl status syncthing@yourUser
Il servizio dovrebbe essere attivo (in esecuzione).
Il servizio di sincronizzazione è in ascolto sulla porta 8384, puoi verificare utilizzando il comando ss.
ss -antpl | grep 8384
Uscita:
LISTEN 0 4096 45.79.208.51:8384 0.0.0.0:* users:(("syncthing",pid=13837,fd=20))
NOTA: Ripeti questi stessi passaggi sull'altro server.
Configurazione dell'interfaccia Web di sincronizzazione
Apri il tuo browser web e accedi all'interfaccia web di sincronizzazione con gli URL.
http://first-server-ip:8384
http://second-server-ip:8384
L'interfaccia Web di sincronizzazione utilizza la porta 8384.
Dopo l'accesso, dovresti ricevere i seguenti messaggi.
Avanti Vai su Azioni> Impostazioni> GUI per impostare un nome utente, una password e abilitare l'opzione "Utilizza HTTPS per la GUI.
Fai clic sul pulsante Salva e verrai reindirizzato alla pagina di accesso di Syncthing che chiederà di inserire nuove credenziali per l'accesso.
Dopo l'accesso, come puoi vedere, la connessione è ora protetta con HTTPS.
NOTA: Ripetere e configurare questo processo anche sul secondo server.
Collegamento di dispositivi
Per la sincronizzazione delle directory, dovremo unire e connettere gli ID dispositivo di entrambi i server, aggiungere l'ID dispositivo di ciascun server a un altro server per sincronizzare i file.
Per fare ciò, vai su Azioni> Mostra ID su entrambi i server. Vedrai l'identificazione del dispositivo e il codice QR seguenti.
Ora vai al primo server Syncthing. In basso dove si trova la sezione Dispositivi Remoti, clicca sul pulsante +Aggiungi Dispositivo Remoto.
Fornisci l'ID dispositivo del tuo secondo server e fai clic sul pulsante Salva. Facoltativo, puoi anche aggiungere il Nome dispositivo, per una visione più chiara.
Sul secondo server, ripetere lo stesso passaggio. Vai su Aggiungi dispositivo remoto.
E aggiungi l'ID dispositivo dal primo server e fai clic su Salva pulsante.
Will vede da entrambi i lati che i dispositivi ora sono connessi.
Sincronizza le directory
Dopo aver eseguito correttamente il peering dei dispositivi remoti, trova la sezione Cartelle e fai clic sul pulsante +Aggiungi cartella. Dovresti vedere la nuova finestra seguente.
Fornisci il nome della cartella di backup nell'etichetta della cartella nella sezione generale. Quindi, vai alla sezione Condivisione scheda e vedrai la seguente schermata.
Seleziona il tuo dispositivo per condividere questa cartella. Nel mio caso il nome è server2 e fai clic su Salva pulsante.
Ora vai al secondo server e fai clic sul pulsante Rescan All. Dovresti vedere la seguente schermata e un nuovo messaggio pop-up per aggiungere questa nuova cartella.
Fare clic sul pulsante Aggiungi per aggiungere la cartella Backup condivisa sul primo server. Ora dovresti vedere la seguente schermata.
Ora posso vedere che il backup delle cartelle è sincronizzato e aggiornato.
Ogni volta che crei o modifichi file nella cartella Backup sul primo server, questi verranno automaticamente sincronizzati sul secondo server, tutte le nuove directory e file in quella cartella Backup verranno duplicati sull'altro server.
Configura cartelle di sola invio e di sola ricezione
Un'altra grande caratteristica di Syncthing è che puoi configurare server accoppiati per inviare e ricevere, inoltre possono essere specificati per inviare e ricevere solo.
Vai alla sezione Cartelle> Scegli la cartella di backup desiderata e fai clic sul pulsante Modifica, quindi vai alla scheda della sezione Avanzate. Vedrai la seguente immagine.
E scegli Tipo cartella per Solo invio/Solo ricezione e fai clic sul pulsante Salva.
Configura Ajust Scan Intervalli
Se vuoi liberare la CPU e non hai bisogno di controllare costantemente le modifiche alla sincronizzazione, puoi disabilitare Guarda le modifiche e impostare manualmente per quanti minuti e ore desideri sincronizzare le modifiche.
Verifica del servizio systemctl
Vai al dispositivo desiderato sul server1 o sul server2 e controlla lo stato del servizio systemctl per vedere come funziona sul backend con il seguente comando.
sudo systemctl status syncthing@yourUser
Uscita.
● [email protected] - Syncthing - Open Source Continuous File Synchronization for linoxide
Loaded: loaded (/etc/systemd/system/[email protected]; disabled; vendor preset: enabled)
Active: active (running) since Wed 2021-08-25 13:46:53 UTC; 1h 4min ago
Docs: man:syncthing(1)
Main PID: 15543 (syncthing)
Tasks: 13 (limit: 1071)
Memory: 29.2M
CGroup: /system.slice/system-syncthing.slice/[email protected]
├─15543 /usr/bin/syncthing -no-browser -gui-address=45.79.208.51:8384 -no-restart -logflags=0
└─15548 /usr/bin/syncthing -no-browser -gui-address=45.79.208.51:8384 -no-restart -logflags=0
Aug 25 13:52:58 li1307-51 syncthing[15543]: [6TZM3] INFO: Device BPENPLJ-L65BS5D-5HN7UL5-RNI3DQR-YZOR2LB-YFW7BKF-6LMWFXV-A4E3RQY client is "syncthing v1.18.1>
Aug 25 13:52:58 li1307-51 syncthing[15543]: [6TZM3] INFO: Connection to BPENPLJ-L65BS5D-5HN7UL5-RNI3DQR-YZOR2LB-YFW7BKF-6LMWFXV-A4E3RQY at [2600:3c02::f03c:9>
Aug 25 13:53:12 li1307-51 syncthing[15543]: [6TZM3] INFO: Established secure connection to BPENPLJ-L65BS5D-5HN7UL5-RNI3DQR-YZOR2LB-YFW7BKF-6LMWFXV-A4E3RQY at>
Aug 25 13:53:12 li1307-51 syncthing[15543]: [6TZM3] INFO: Device BPENPLJ-L65BS5D-5HN7UL5-RNI3DQR-YZOR2LB-YFW7BKF-6LMWFXV-A4E3RQY client is "syncthing v1.18.1>
Aug 25 14:13:42 li1307-51 syncthing[15543]: [6TZM3] INFO: Adding folder "Backup" (svkz5-mdnbo)
Aug 25 14:13:42 li1307-51 syncthing[15543]: [6TZM3] INFO: No stored folder metadata for "svkz5-mdnbo"; recalculating
Aug 25 14:13:42 li1307-51 syncthing[15543]: [6TZM3] INFO: Ready to synchronize "Backup" (svkz5-mdnbo) (sendreceive)
Aug 25 14:13:42 li1307-51 syncthing[15543]: [6TZM3] INFO: Completed initial scan of sendreceive folder "Backup" (svkz5-mdnbo)
Conclusione
In questo tutorial, abbiamo imparato come installare Syncthing per sincronizzare le directory su Ubuntu 20.04. Puoi utilizzare e sincronizzare più di due dispositivi ed essere aggiornato con le directory su tutte le macchine.
Condividi la tua esperienza con Syncthing nella sezione commenti.