Come installare Syncthing su Rocky 9/CentOS 9/Alma 9
Syncthing è un software di sincronizzazione peer-to-peer open source e multipiattaforma utilizzato per sincronizzare file e cartelle tra più dispositivi in modo sicuro in una rete. Syncthing è considerato un'alternativa affidabile e sicura ai servizi di sincronizzazione dei file basati su cloud come Google Drive, Dropbox, ecc. Syncthing utilizza un'architettura decentralizzata che consente ai dispositivi di comunicare tra loro direttamente su un canale crittografato, senza la necessità di un server centrale. Come utente hai il pieno controllo completo sui tuoi dati e non fai affidamento su servizi di terze parti per archiviare i file.
Quando installi Syncthing, viene fornito con una GUI basata sul Web che fornisce informazioni dettagliate sullo stato di sincronizzazione dei file, nonché strumenti per la configurazione di opzioni avanzate come avvio/arresto del servizio, rilevamento dei dispositivi, aggiunta di nuovi dispositivi e altre configurazioni come l'integrazione LDAP. Alcune caratteristiche chiave dello strumento di sincronizzazione Syncthing sono:
- Crittografia: tutte le comunicazioni tra i dispositivi vengono crittografate utilizzando TLS per garantire che i dati siano protetti da accessi non autorizzati.
- Supporto multipiattaforma: Syncthing può essere eseguito su un'ampia gamma di piattaforme, tra cui Linux, Windows, macOS, Android e FreeBSD.
- Decentralizzazione: Syncthing funziona su un'architettura peer-to-peer eliminando la necessità di un server centrale. Gli utenti hanno il controllo sui propri dati
- Versioning: dispone di un sofisticato sistema di controllo delle versioni per garantire che le modifiche apportate ai file vengano propagate correttamente tra i dispositivi, anche se vengono apportate più modifiche contemporaneamente.
- Sincronizzazione selettiva: gli utenti possono scegliere quali cartelle desiderano sincronizzare tra i dispositivi, offrendo loro un maggiore controllo sui propri dati.
- GUI basata sul Web: Syncthing include una GUI basata sul Web di facile utilizzo.
Installa Syncthing su Rocky Linux 9/CentOS 9/AlmaLinux 9
Ecco i passaggi che seguirai per installare e configurare Syncthing sul sistema Rocky 9, CentOS 9 o AlmaLinux 9.
Passaggio 1: scarica e installa Syncthing
Puoi controllare l'ultima versione stabile di Syncthing dalla pagina di rilascio di Github. Scaricalo utilizzando wget o curl
curl -s https://api.github.com/repos/syncthing/syncthing/releases/latest | grep browser_download_url | grep linux-amd64 | cut -d '"' -f 4 | wget -qi -
Successivamente estraiamo il file scaricato utilizzando tar
tar xvf syncthing-linux-amd64*.tar.gz
Successivamente copiamo il file binario nella directory /usr/bin
sudo cp syncthing-linux-amd64-*/syncthing /usr/bin/
Conferma che l'installazione è andata a buon fine controllando la versione.
$ syncthing --version
syncthing v1.23.7 "Fermium Flea" (go1.20.7 linux-amd64) [email 2023-07-31 03:45:37 UTC
Passaggio 2: creare il file dell'unità systemd Syncthing
Il servizio Syncthing può essere gestito utilizzando systemd sui sistemi che lo supportano. Dobbiamo creare un'unità di servizio per questo.
Crea un account utente chiamato syncthing
sudo useradd -m syncthing
È possibile aggiungere l'utente al gruppo volante.
sudo usermod -aG wheel syncthing
Assegnagli una password complessa.
$ sudo passwd syncthing
Changing password for user syncthing.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
Crea il file dell'unità systemd.
$ sudo vi /etc/systemd/system/[email
[Unit]
Description=Syncthing - Open Source Continuous File Synchronization for %I
Documentation=man:syncthing(1)
After=network.target
StartLimitIntervalSec=60
StartLimitBurst=4
[Service]
User=%i
ExecStart=/usr/bin/syncthing serve --no-browser --no-restart --logflags=0
Restart=on-failure
RestartSec=1
SuccessExitStatus=3 4
RestartForceExitStatus=3 4
# Hardening
ProtectSystem=full
PrivateTmp=true
SystemCallArchitectures=native
MemoryDenyWriteExecute=true
NoNewPrivileges=true
# Elevated permissions to sync ownership (disabled by default),
# see https://docs.syncthing.net/advanced/folder-sync-ownership
#AmbientCapabilities=CAP_CHOWN CAP_FOWNER
[Install]
WantedBy=multi-user.target
Ricarica systemd affinché la modifica sia effettiva.
sudo systemctl daemon-reload
Avvia e abilita il servizio.
sudo systemctl start syncthing@syncthing
sudo systemctl enable syncthing@syncthing
Controlla il suo stato per confermare che sia in esecuzione.
$ systemctl status syncthing@syncthing
● [email - Syncthing - Open Source Continuous File Synchronization for syncthing
Loaded: loaded (/etc/systemd/system/sync[email ; disabled; vendor preset: disabled)
Active: active (running) since Thu 2023-03-02 17:41:05 UTC; 15s ago
Docs: man:syncthing(1)
Main PID: 10605 (syncthing)
Tasks: 16 (limit: 24167)
Memory: 28.3M
CPU: 1.682s
CGroup: /system.slice/system-syncthing.slice/[email
├─10605 /usr/bin/syncthing serve --no-browser --no-restart --logflags=0
└─10612 /usr/bin/syncthing serve --no-browser --no-restart --logflags=0
Mar 02 17:41:06 rocky9.mylab.io syncthing[10605]: [7N43J] INFO: Loading HTTPS certificate: open /root/.config/syncthing/https-cert.pem: no such file or directory
Mar 02 17:41:06 rocky9.mylab.io syncthing[10605]: [7N43J] INFO: Creating new HTTPS certificate
Mar 02 17:41:06 rocky9.mylab.io syncthing[10605]: [7N43J] INFO: GUI and API listening on 127.0.0.1:8384
Mar 02 17:41:06 rocky9.mylab.io syncthing[10605]: [7N43J] INFO: Access the GUI via the following URL: http://127.0.0.1:8384/
Mar 02 17:41:06 rocky9.mylab.io syncthing[10605]: [7N43J] INFO: My name is "rocky9.mylab.io"
Mar 02 17:41:06 rocky9.mylab.io syncthing[10605]: [7N43J] WARNING: Syncthing should not run as a privileged or system user. Please consider using a normal user account.
Mar 02 17:41:06 rocky9.mylab.io syncthing[10605]: [7N43J] INFO: Completed initial scan of sendreceive folder "Default Folder" (default)
Mar 02 17:41:07 rocky9.mylab.io syncthing[10605]: [7N43J] INFO: quic://0.0.0.0:22000 detected NAT type: Not behind a NAT
Mar 02 17:41:07 rocky9.mylab.io syncthing[10605]: [7N43J] INFO: quic://0.0.0.0:22000 resolved external address quic://65.108.59.32:22000 (via stun.syncthing.net:3478)
Mar 02 17:41:16 rocky9.mylab.io syncthing[10605]: [7N43J] INFO: Detected 0 NAT services
Per consentire l'ascolto su tutte le interfacce utilizzare:
ExecStart=/usr/bin/syncthing --no-browser --gui-address="0.0.0.0:8384" --no-restart --logflags=0
Passaggio 3: utilizzo di una partizione separata per la sincronizzazione dei dati
Configurerò /dev/sdb per la sincronizzazione dei file.
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 50G 0 disk
├─sda1 8:1 0 600M 0 part /boot/efi
├─sda2 8:2 0 1G 0 part /boot
└─sda3 8:3 0 48.4G 0 part
├─rl-root 253:0 0 43.4G 0 lvm /
└─rl-swap 253:1 0 5G 0 lvm [SWAP]
sdb 8:16 0 200G 0 disk
Crea una tabella delle partizioni sul disco grezzo /dev/sdX
sudo parted -s -a optimal -- /dev/sdX mklabel gpt
sudo parted -s -a optimal -- /dev/sdX mkpart primary 0% 100%
sudo parted -s -- /dev/sdX align-check optimal 1
Crea un file system su di esso. In questo esempio stiamo utilizzando LVM.
sudo pvcreate /dev/sdX1
sudo vgcreate data /dev/sdX1
sudo lvcreate -n syncthing -l +100%FREE data
sudo mkfs.xfs /dev/data/syncthing
echo "/dev/data/syncthing /home/syncthing/data xfs defaults 0 0" | sudo tee -a /etc/fstab
Crea punto di montaggio
sudo mkdir /home/syncthing/data
Montare la partizione in fase di esecuzione per verificarne il funzionamento.
sudo mount -a
Confermare i lavori di montaggio.
$ df -hT /home/syncthing/data
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/data-syncthing xfs 200G 44G 157G 22% /home/syncthing/data
Impostare le autorizzazioni corrette per la directory dei dati.
sudo chown syncthing:syncthing /home/syncthing/data
Conferma che funziona.
$ ls -lhd /home/syncthing/*
drwxr-xr-x. 2 syncthing syncthing 6 Feb 28 00:49 /home/syncthing/data
drwxr-xr-x. 3 syncthing syncthing 23 Feb 28 00:28 /home/syncthing/Sync
Passaggio 4: consenti le porte richieste in firewalld
Se hai un firewall attivo, consenti le porte 8384
e 22000
. Entrambi TCP
sudo firewall-cmd --add-port={8384,22000}/tcp --zone=public --permanent
sudo firewall-cmd --reload
È possibile elencare tutte le porte consentite utilizzando
firewall-cmd --list-all
Passaggio 5: accedi all'interfaccia utente Web di Syncthing
Una volta avviato il servizio, la GUI di amministrazione di Syncthing è accessibile sulla porta 8384. Apri il collegamento su https://localhost_or_ServerIP:8384/
Fai clic su "Impostazioni " per impostare la password per l'utente amministratore.
Prova effettuando l'accesso con il nome utente admin e la password impostati sopra.
Nel nostro prossimo articolo tratteremo il processo di sincronizzazione di file e cartelle tra più dispositivi utilizzando Syncthing.
Conclusione
Syncthing è uno strumento di sincronizzazione dei file potente e versatile progettato per essere sicuro e decentralizzato. Syncthing è una buona alternativa ai servizi di sincronizzazione dei file basati su cloud che richiedono un abbonamento e l'accesso a Internet per essere utilizzati. Con il supporto multipiattaforma, un sofisticato sistema di controllo delle versioni e una GUI basata sul Web intuitiva, Syncthing è un'ottima scelta per gli utenti che desiderano sincronizzare file tra più dispositivi mantenendo il controllo sui propri dati.