Ricerca nel sito web

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.

Articoli correlati: