GNU/Linux >> Linux Esercitazione >  >> Debian

Come installare Syncthing su desktop/server Debian

Questo tutorial ti mostrerà come installare Syncthing su Debian. Syncthing è un programma di sincronizzazione di file continuo peer-to-peer gratuito che ti consente di sincronizzare i tuoi file su più dispositivi, disponibile per Linux, BSD, macOS, Windows, Android e Solaris.

È un'alternativa open source al popolare Resilio Sync (precedentemente noto come Sincronizzazione BitTorrent ) applicazione. La creazione, la modifica o l'eliminazione di file su una macchina verrà automaticamente replicata sugli altri dispositivi. Syncthing non carica i tuoi file su un server centrale come Nextcloud , ma scambia i tuoi dati direttamente tra i tuoi dispositivi. Tutti i tuoi dati sono crittografati con TLS durante la trasmissione tra i tuoi dispositivi.

Installa Syncthing su Debian tramite il repository ufficiale di Deb

Usa curl per scaricare la chiave GPG importare la chiave con apt-key .

sudo apt-get install curl

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

Se vedi OK nel terminale, ciò significa che la chiave GPG è stata importata correttamente. Quindi aggiungi il repository ufficiale di deb con il seguente comando.

echo "deb https://apt.syncthing.net/ syncthing stable" | sudo tee /etc/apt/sources.list.d/syncthing.list

Poiché questo repository utilizza https, è necessario installare apt-transport-https pacchetto, in modo che il gestore di pacchetti APT possa stabilire una connessione https con questo repository.

sudo apt-get install apt-transport-https

Aggiorna l'indice del pacchetto locale e installa syncthing su Debian.

sudo apt-get update

sudo apt-get install syncthing

Utilizzo di Systemd per configurare la sincronizzazione come servizio di sistema

Il pacchetto ufficiale Syncthing deb viene fornito con il file di servizio systemd necessario. Sotto /lib/systemd/system/ directory, troverai un [email protected] file. Abilita la sincronizzazione per l'avvio automatico all'avvio eseguendo il comando seguente. Sostituisci username con il tuo nome utente effettivo.

sudo systemctl enable [email protected]username.service

Il comando precedente creerà un collegamento simbolico che punta a [email protected] file.

Created symlink from /etc/systemd/system/multi-user.target.wants/[email protected] to /lib/systemd/system/[email protected]

Ora possiamo avviare il servizio Syncthing con il seguente comando.

sudo systemctl start [email protected]username.service

Controlla lo stato

systemctl status [email protected]username.service

Uscita:

Suggerimento:se il comando precedente non si chiude immediatamente, premi Q per riprendere il controllo del terminale.

Possiamo vedere che l'avvio automatico di Syncthing è abilitato ed è in esecuzione.

Il servizio di sincronizzazione systemd crea file di configurazione in /home/username/.config/syncthing/ e una cartella /home/username/Sync come cartella di sincronizzazione predefinita. Il file di configurazione principale è /home/username/.config/syncthing/config.xml .

Installa Syncthing su altri sistemi operativi

Vai alla pagina di download di Syncthing e installa Syncthing su altri sistemi operativi come Windows, macOS, BSD, Android.

Apri la porta 22000 nel firewall

Syncthing utilizza la porta 22000 per comunicare con i peer. Se il tuo computer o server ha abilitato il firewall UFW, devi consentire la porta 22000 con il seguente comando.

sudo ufw allow 22000/tcp

Accesso all'interfaccia Web di Debian Syncthing

Per impostazione predefinita, il servizio Syncthing è in ascolto su 127.0.0.1:8384. Ora nella barra degli indirizzi del tuo browser Web, digita 127.0.0.1:8384 per accedere all'interfaccia Web di Syncthing. Puoi aggiungere altri dispositivi Syncthing e condividere cartelle con loro.

Se installi Syncthing su un server Debian remoto, puoi abilitare l'accesso remoto all'interfaccia web di Syncthing modificando il file di configurazione.

nano /home/username/.config/syncthing/config.xml

Trova le due righe seguenti.

    <gui enabled="true" tls="false" debugging="false">
        <address>127.0.0.1:8384</address>

Modifica tls="false" a tls="true" , quindi il traffico HTTP verrà crittografato. E cambia 127.0.0.1 all'indirizzo IP pubblico del server Debian. Salva e chiudi il file. Riavvia Syncthing per rendere effettive le modifiche.

sudo systemctl start [email protected]username.service

Ora digita server-ip-address:8384 nel browser Web per accedere all'interfaccia Web di Syncthing. Ovviamente è necessario utilizzare l'indirizzo IP reale del server Debian. Ti verrà chiesto di impostare un nome utente e una password per proteggere l'interfaccia web di Syncthing.

Puoi anche configurare un proxy inverso con Nginx o Apache per accedere all'interfaccia utente web, come spiegato più avanti in questo tutorial.

Inizia a sincronizzare i file tra i tuoi dispositivi

Una volta che abbiamo due dispositivi che eseguono Syncthing, possiamo iniziare a sincronizzare i file tra di loro.

Nell'interfaccia web di Syncthing, fai clic su Azioni> Mostra ID nell'angolo in alto a destra. Vedrai l'ID del dispositivo, che è una lunga stringa di lettere e numeri. Il codice QR, che è anche l'ID del dispositivo, viene utilizzato per configurare Syncthing sugli smartphone.

Copia l'ID dispositivo, quindi apri l'interfaccia Web di sincronizzazione del secondo dispositivo, fai clic su Aggiungi dispositivo remoto nell'angolo in basso a destra. Quindi incolla l'ID dispositivo e assegna un nome al dispositivo. Fare clic sul pulsante Salva.

Ora il secondo dispositivo proverà a connettersi al primo dispositivo. Aggiorna l'interfaccia Web sul primo dispositivo, vedrai il seguente messaggio. Fai clic su Aggiungi dispositivo per aggiungere il secondo dispositivo all'elenco dei dispositivi del primo dispositivo.

Ora i due dispositivi sono collegati.

Uno del riquadro sinistro dell'interfaccia Web è la cartella di sincronizzazione predefinita (/home/username/Sync ). Fai clic su Add Folder pulsante per aggiungere una nuova cartella. Assegna un'etichetta descrittiva a questa cartella e imposta il percorso della cartella.

Syncthing viene eseguito come il tuo account utente, quindi è necessario disporre dell'autorizzazione di scrittura sulla cartella condivisa. Se visualizzi il seguente messaggio di errore durante la condivisione di una cartella, significa che non hai l'autorizzazione di scrittura su quella cartella.

2020-06-21 20:05:49: Failed to create folder marker: mkdir .stfolder: read-only file system

Puoi concedere il permesso di scrittura con setfacl .

sudo apt install acl
sudo setfacl -R -m u:username:rx /folder/path/

Nella Sharing scheda, seleziona l'altro dispositivo Syncthing.

In Advanced scheda, puoi scegliere il tipo di cartella, l'intervallo di nuova scansione, ecc.

Fare clic sul pulsante Salva per iniziare la sincronizzazione. Verrà visualizzato un messaggio nell'interfaccia Web dell'altro dispositivo. Fai clic su Aggiungi per ricevere file.

Ora i due dispositivi stanno sincronizzando i file. Sul lato destro, puoi vedere la velocità di download, la velocità di caricamento, la dimensione della cartella locale, ecc.

Imposta proxy inverso

Poiché è in ascolto su 127.0.0.1:8384, l'interfaccia Syncthing Web è disponibile solo per le connessioni dallo stesso computer. Per poter accedere all'interfaccia Web di Syncthing da un computer remoto, possiamo configurare un proxy inverso per Syncthing con Nginx o Apache.

Nginx

Nginx è un server Web e proxy inverso molto popolare. Se preferisci usare Nginx, esegui il comando seguente per installarlo.

sudo apt install nginx

Quindi crea un file di configurazione del server.

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

Aggiungi il seguente contenuto a questo file. Sostituisci syncthing.example.com con il tuo nome di dominio preferito. Dovresti anche aggiungere un record DNS A per questo sottodominio. Se non hai un vero nome di dominio, ti consiglio di andare su NameCheap per acquistarne uno. Il prezzo è basso e offrono protezione della privacy a chi è gratuita per tutta la vita.

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. Testare la configurazione di Nginx e ricaricare Nginx.

sudo nginx -t

sudo systemctl reload nginx

Dopo aver puntato il tuo nome di dominio all'indirizzo IP di Debian, digita il tuo nome di dominio nella barra degli indirizzi del browser e dovresti vedere l'interfaccia Syncthing Web.

Se il tuo browser non riesce a connettersi all'interfaccia web di Syncthing, forse devi aprire la porta 80 nel firewall. Ad esempio, se utilizzi UFW, esegui il comando seguente.

sudo ufw allow 80/tcp

Apache

Apache è un noto server web che può essere utilizzato anche come proxy inverso. Se preferisci Apache a Nginx, installalo con:

sudo apt install apache2

Avvia Apache e abilita l'avvio automatico.

sudo systemctl start apache2

sudo systemctl enable apache2

Per utilizzare Apache come proxy inverso, dobbiamo abilitare il proxy moduli e il modulo di intestazione.

sudo a2enmod proxy proxy_http headers proxy_wstunnel

Ora crea un file host virtuale per Syncthing.

sudo nano /etc/apache2/sites-available/syncthing.conf

Copia e incolla le seguenti righe nel file. Sostituisci syncthing.example.com con il tuo vero nome di dominio. Dovresti anche aggiungere un record DNS A per questo sottodominio. Se non hai un vero nome di dominio, ti consiglio di andare su NameCheap per acquistarne uno. Il prezzo è basso e offrono protezione della privacy a chi è gratuita per tutta la vita.

<VirtualHost *:80>
   ServerName syncthing.example.com
   ErrorDocument 404 /404.html

   ProxyPass / http://127.0.0.1:8384/
   ProxyPassReverse / http://127.0.0.1:8384/

   ErrorLog ${APACHE_LOG_DIR}/syncthing_error.log
   CustomLog ${APACHE_LOG_DIR}/syncthing_access.log combined

</VirtualHost>

Salva e chiudi il file. Quindi abilita questo host virtuale.

sudo a2ensite syncthing.conf

Riavvia Apache

sudo systemctl restart apache2

Ora puoi accedere all'interfaccia utente Web tramite syncthing.example.com .

Se il tuo browser non riesce a connettersi all'interfaccia web di Syncthing, forse devi aprire la porta 80 nel firewall. Ad esempio, se utilizzi UFW, esegui il comando seguente.

sudo ufw allow 80/tcp

Proteggi l'interfaccia utente Web di sincronizzazione con HTTPS

Per crittografare il traffico HTTP quando visiti l'interfaccia utente Web di Syncthing tramite un nome di dominio, possiamo abilitare HTTPS installando un certificato TLS gratuito emesso da Let's Encrypt. Innanzitutto, apri la porta 443 nel firewall.

sudo ufw allow 443/tcp

Quindi esegui il comando seguente per installare il client Let's Encrypt (certbot).

sudo apt install certbot

Se usi Nginx, devi anche installare il plugin Certbot Nginx.

sudo apt install python3-certbot-nginx

Quindi, esegui il comando seguente per ottenere e installare il certificato TLS.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d syncthing.example.com

Se usi Apache, installa il plugin Certbot Apache.

sudo apt install python3-certbot-apache

Ed esegui questo comando per ottenere e installare il certificato TLS.

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d syncthing.example.com

Dove

  • --nginx :usa il plugin nginx.
  • --apache :usa il plugin Apache.
  • --agree-tos :Accetta i termini di servizio.
  • --redirect :Forza HTTPS tramite reindirizzamento 301.
  • --hsts :aggiungi l'intestazione Strict-Transport-Security a ogni risposta HTTP. Forzare il browser a utilizzare sempre TLS per il dominio. Difende dallo stripping SSL/TLS.
  • --staple-ocsp :Abilita la pinzatura OCSP. Una risposta OCSP valida viene pinzata al certificato offerto dal server durante TLS.

Il certificato dovrebbe ora essere ottenuto e installato automaticamente.

Aggiorna la GUI di Syncthing Web, scoprirai che la connessione HTTP viene automaticamente reindirizzata alla connessione protetta HTTPS.

Abilita autenticazione utente

Per impostazione predefinita, chiunque può accedere all'interfaccia Web di Syncthing dopo la configurazione del proxy inverso. Possiamo abilitare l'autenticazione dell'utente per limitare l'accesso. Fai clic su Azioni pulsante nell'angolo in alto a destra, quindi seleziona Impostazioni -> GUI.

Inserisci un nome utente in Utente autenticazione GUI campo, inserisci una password nel campo Password di autenticazione GUI . Quindi salva le tue impostazioni.

Tieni presente che non è necessario selezionare Utilizza HTTPS per la GUI box, che consente a Syncthing di utilizzare un certificato autofirmato. Abbiamo già installato un certificato valido in Apache/Nginx che è considerato affidabile dai browser Web tradizionali.

Una volta salvate le modifiche, riavvia il servizio di sistema Syncthing, altrimenti potresti visualizzare un errore 502 bad gateway durante il ricaricamento della pagina.

sudo systemctl restart [email protected]username.service

Ora accedi all'interfaccia di Syncthing Web con il tuo nuovo nome utente e password.

Cartelle solo invio e solo ricezione

Quando condividi una cartella in Syncthing, puoi andare alla scheda Avanzate e scegliere uno dei tre tipi di cartelle:

  • Invia e ricevi (predefinito)
  • Solo invio
  • Solo ricevi

Potresti voler scegliere solo invio o solo ricezione. Ad esempio, se hai 3 computer:A, B e C e desideri aggregare le cartelle sui computer A e B in un'unica cartella sul computer C. Quindi puoi impostare il tipo di cartella su Solo ricezione sul computer C. In questo modo, il computer C avrà tutti i file in un'unica cartella. I computer A e B hanno ancora i file originali. Né più né meno.

Quando utilizzi lo stesso percorso della cartella sul computer C, Syncthing potrebbe avvisarti che "questo percorso è una sottodirectory di una cartella esistente". Puoi ignorare questo avviso perché hai una cartella di sola ricezione. I file esistenti nella cartella non verranno eliminati.

Sincronizzazione tramite server di inoltro

Se due istanze di Syncthing non riescono a connettersi tra loro, Syncthing proverà a utilizzare un server di inoltro per trasferire i file.

Un motivo comune per cui non possono connettersi tra loro è che uno di loro si trova dietro un dispositivo NAT e non ha configurato il port forwarding. Dopo aver configurato il port forwarding, è possibile disabilitare i server di inoltro. Ecco come. Fai clic su Edit e seleziona il pulsante Advanced scheda, cambia l'indirizzo da dynamic a tcp://ip-address:22000 . Ovviamente devi usare il tuo vero indirizzo IP.

Risoluzione dei problemi

Se le tue istanze di Syncthing non riescono a connettersi tra loro, puoi utilizzare il ss (statistiche socket) per verificare se Syncthing è in ascolto sulla porta TCP 22000.

sudo ss -lnpt | grep syncthing

Come puoi vedere dallo screenshot qui sotto, il mio Syncthing è in ascolto sulla porta 8384 (interfaccia web) e 22000 (connessione peer to peer).

In caso contrario, puoi modificare il file di configurazione.

nano ~/.config/syncthing/config.xml

Trova la riga seguente.

<listenAddress>default</listenAddress>

Modifica default a tcp://your-IP-address .

<listenAddress>tcp://12.34.56.78</listenAddress>

Salva e chiudi il file. Quindi riavvia Syncthing.

sudo systemctl restart [email protected]username.service

File .stfoler mancante

Il .stfoler è richiesto da Syncthing per funzionare. Questo è un file vuoto. Non è necessario aggiungere nulla ad esso. Se la .stfolder manca il file nella cartella di sincronizzazione, quindi la sincronizzazione si interromperà. Puoi creare il seguente processo Cron per creare automaticamente il file.

@hourly touch /path/to/sync/folder/.stfolder

Il comando touch creerà il file se manca. Se il file esiste già, aggiornerà il timestamp del file.


Debian
  1. Come installare il server Minecraft su Debian 9

  2. Come installare Redis Server su Debian 11

  3. Come installare MySQL 8.0 / 5.7 su Debian 11 / Debian 10

  4. Come installare ProFTPD su Debian 8

  5. Come installare MySQL Server su Debian 9

Come installare Syncthing su Ubuntu Desktop/Server

Come installare FastPanel su Debian 11

Come installare I2P su Debian Server:

Come installare GNOME Desktop su Debian 8

Come installare VNC su Debian 10

Come installare GNOME Desktop su Debian 10