GNU/Linux >> Tutoriels Linux >  >> Debian

Comment installer Syncthing sur le bureau/serveur Debian

Ce tutoriel vous montrera comment installer Syncthing sur Debian. Syncthing est un programme gratuit de synchronisation continue de fichiers peer-to-peer qui vous permet de synchroniser vos fichiers sur plusieurs appareils, disponible pour Linux, BSD, macOS, Windows, Android et Solaris.

C'est une alternative open-source au populaire Resilio Sync (anciennement BitTorrent Sync ) application. La création, la modification ou la suppression de fichiers sur une machine seront automatiquement répliquées sur vos autres appareils. Syncthing ne télécharge pas vos fichiers sur un serveur central comme Nextcloud , mais échangez vos données directement entre vos appareils. Toutes vos données sont cryptées avec TLS lors de la transmission entre vos appareils.

Installer Syncthing sur Debian via le référentiel Deb officiel

Utilisez curl pour télécharger la clé GPG puis importer la clé avec apt-key .

sudo apt-get install curl

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

Si vous voyez OK dans le terminal, cela signifie que la clé GPG a été importée avec succès. Ajoutez ensuite le dépôt officiel deb avec la commande suivante.

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

Parce que ce référentiel utilise https, nous devons installer le apt-transport-https package, afin que le gestionnaire de packages APT puisse établir une connexion https avec ce référentiel.

sudo apt-get install apt-transport-https

Mettez à jour l'index des packages locaux et installez syncthing sur Debian.

sudo apt-get update

sudo apt-get install syncthing

Utiliser Systemd pour configurer Syncthing en tant que service système

Le package deb officiel de Syncthing est livré avec le fichier de service systemd nécessaire. Sous /lib/systemd/system/ répertoire, vous trouverez un [email protected] dossier. Activez syncthing pour démarrer automatiquement au démarrage en exécutant la commande ci-dessous. Remplacer username avec votre nom d'utilisateur réel.

sudo systemctl enable [email protected]username.service

La commande ci-dessus créera un lien symbolique qui pointe vers le [email protected] fichier.

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

Nous pouvons maintenant démarrer le service Syncthing avec la commande suivante.

sudo systemctl start [email protected]username.service

Vérifier l'état

systemctl status [email protected]username.service

Sortie :

Astuce :Si la commande ci-dessus ne se ferme pas immédiatement, appuyez sur Q pour reprendre le contrôle du terminal.

Nous pouvons voir que le démarrage automatique de Syncthing est activé et qu'il est en cours d'exécution.

Le service systemd syncthing crée des fichiers de configuration sous /home/username/.config/syncthing/ et un dossier /home/username/Sync comme dossier de synchronisation par défaut. Le fichier de configuration principal est /home/username/.config/syncthing/config.xml .

Installer Syncthing sur un autre système d'exploitation

Accédez à la page de téléchargement de Syncthing et installez Syncthing sur d'autres systèmes d'exploitation tels que Windows, macOS, BSD, Android.

Ouvrir le port 22000 dans le pare-feu

Syncthing utilise le port 22000 pour communiquer avec ses pairs. Si votre ordinateur ou votre serveur a activé le pare-feu UFW, vous devez autoriser le port 22000 avec la commande suivante.

sudo ufw allow 22000/tcp

Accéder à l'interface Web de Debian Syncthing

Par défaut, le service Syncthing écoute sur 127.0.0.1:8384. Maintenant, dans la barre d'adresse de votre navigateur Web, tapez 127.0.0.1:8384 pour accéder à l'interface Web de Syncthing. Vous pouvez ajouter d'autres appareils Syncthing et partager des dossiers avec eux.

Si vous installez Syncthing sur un serveur Debian distant, vous pouvez activer l'accès à distance à l'interface Web de Syncthing en modifiant le fichier de configuration.

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

Trouvez les deux lignes suivantes.

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

Modifier tls="false" à tls="true" , de sorte que le trafic HTTP sera chiffré. Et changez 127.0.0.1 à l'adresse IP publique du serveur Debian. Enregistrez et fermez le fichier. Redémarrez Syncthing pour que les modifications prennent effet.

sudo systemctl start [email protected]username.service

Tapez maintenant server-ip-address:8384 dans le navigateur Web pour accéder à l'interface Web de Syncthing. Évidemment, vous devez utiliser la véritable adresse IP du serveur Debian. Il vous sera demandé de définir un nom d'utilisateur et un mot de passe pour protéger l'interface Web de Syncthing.

Vous pouvez également configurer un proxy inverse avec Nginx ou Apache afin d'accéder à l'interface utilisateur Web, ce qui est expliqué plus loin dans ce didacticiel.

Démarrez la synchronisation des fichiers entre vos appareils

Une fois que nous avons deux appareils exécutant Syncthing, nous pouvons commencer à synchroniser les fichiers entre eux.

Dans l'interface Web Syncthing, cliquez sur Actions> Afficher l'ID dans le coin supérieur droit. Vous verrez l'ID de l'appareil, qui est une longue chaîne de lettres et de chiffres. Le code QR, qui est également l'ID de l'appareil, est utilisé pour configurer Syncthing sur les smartphones.

Copiez l'ID de l'appareil, puis ouvrez l'interface Web Syncthing du deuxième appareil, cliquez sur Ajouter un appareil distant dans le coin inférieur droit. Collez ensuite l'ID de l'appareil et donnez-lui un nom. Cliquez sur le bouton Enregistrer.

Maintenant, le deuxième appareil essaiera de se connecter au premier appareil. Actualisez l'interface Web sur le premier appareil, vous verrez le message suivant. Cliquez sur Ajouter un appareil pour ajouter le deuxième appareil à la liste des appareils du premier appareil.

Maintenant, les deux appareils sont connectés.

Dans le volet gauche de l'interface Web se trouve le dossier de synchronisation par défaut (/home/username/Sync ). Cliquez sur Add Folder bouton pour ajouter un nouveau dossier. Donnez une étiquette descriptive pour ce dossier et définissez le chemin du dossier.

Syncthing s'exécute sous votre propre compte d'utilisateur, vous devez donc disposer d'une autorisation d'écriture sur le dossier partagé. Si vous voyez le message d'erreur suivant lors du partage d'un dossier, cela signifie que vous n'avez pas l'autorisation d'écriture sur ce dossier.

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

Vous pouvez accorder l'autorisation d'écriture avec setfacl .

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

Dans le Sharing , sélectionnez votre autre appareil Syncthing.

Dans l'onglet Advanced , vous pouvez choisir le type de dossier, l'intervalle de réanalyse, etc.

Cliquez sur le bouton Enregistrer pour commencer la synchronisation. Un message apparaîtra dans l'interface Web de l'autre appareil. Cliquez sur Ajouter pour recevoir des fichiers.

Maintenant, les deux appareils synchronisent les fichiers. Sur le côté droit, vous pouvez voir le taux de téléchargement, le taux de téléchargement, la taille du dossier local, etc.

Configurer un proxy inverse

Puisqu'il écoute sur 127.0.0.1:8384, l'interface Web Syncthing n'est disponible que pour les connexions du même ordinateur. Pour pouvoir accéder à l'interface Web de Syncthing depuis un ordinateur distant, nous pouvons configurer un proxy inverse pour Syncthing avec Nginx ou Apache.

Nginx

Nginx est un serveur Web et un proxy inverse très populaires. Si vous préférez utiliser Nginx, exécutez la commande suivante pour l'installer.

sudo apt install nginx

Créez ensuite un fichier de configuration du serveur.

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

Ajoutez le contenu suivant à ce fichier. Remplacez syncthing.example.com avec votre nom de domaine préféré. Vous devez également ajouter un enregistrement DNS A pour ce sous-domaine. Si vous n'avez pas de vrai nom de domaine, je vous recommande d'aller sur NameCheap pour en acheter un. Le prix est bas et ils offrent une protection de la confidentialité whois gratuite à vie.

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;
  }
}

Enregistrez et fermez le fichier. Testez la configuration de Nginx et rechargez Nginx.

sudo nginx -t

sudo systemctl reload nginx

Après avoir pointé votre nom de domaine vers l'adresse IP de Debian, tapez votre nom de domaine dans la barre d'adresse du navigateur et vous devriez voir l'interface Web Syncthing.

Si votre navigateur ne peut pas se connecter à l'interface Web Syncthing, vous devez peut-être ouvrir le port 80 dans le pare-feu. Par exemple, si vous utilisez UFW, exécutez la commande suivante.

sudo ufw allow 80/tcp

Apache

Apache est un serveur Web bien connu qui peut également être utilisé comme proxy inverse. Si vous préférez Apache à Nginx, installez-le avec :

sudo apt install apache2

Démarrez Apache et activez le démarrage automatique.

sudo systemctl start apache2

sudo systemctl enable apache2

Pour utiliser Apache comme proxy inverse, nous devons activer le proxy modules et le module d'en-tête.

sudo a2enmod proxy proxy_http headers proxy_wstunnel

Créez maintenant un fichier d'hôte virtuel pour Syncthing.

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

Copiez et collez les lignes suivantes dans le fichier. Remplacez syncthing.example.com avec votre vrai nom de domaine. Vous devez également ajouter un enregistrement DNS A pour ce sous-domaine. Si vous n'avez pas de vrai nom de domaine, je vous recommande d'aller sur NameCheap pour en acheter un. Le prix est bas et ils offrent une protection de la confidentialité whois gratuite à vie.

<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>

Enregistrez et fermez le fichier. Activez ensuite cet hôte virtuel.

sudo a2ensite syncthing.conf

Redémarrez Apache

sudo systemctl restart apache2

Vous pouvez maintenant accéder à l'interface utilisateur Web via syncthing.example.com .

Si votre navigateur ne peut pas se connecter à l'interface Web Syncthing, vous devez peut-être ouvrir le port 80 dans le pare-feu. Par exemple, si vous utilisez UFW, exécutez la commande suivante.

sudo ufw allow 80/tcp

Sécurisez l'interface utilisateur Web de Syncthing avec HTTPS

Pour chiffrer le trafic HTTP lorsque vous visitez l'interface utilisateur Web de Syncthing via un nom de domaine, nous pouvons activer HTTPS en installant un certificat TLS gratuit émis par Let's Encrypt. Commencez par ouvrir le port 443 dans le pare-feu.

sudo ufw allow 443/tcp

Exécutez ensuite la commande suivante pour installer le client Let's Encrypt (certbot).

sudo apt install certbot

Si vous utilisez Nginx, vous devez également installer le plugin Certbot Nginx.

sudo apt install python3-certbot-nginx

Ensuite, exécutez la commande suivante pour obtenir et installer le certificat TLS.

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

Si vous utilisez Apache, installez le plugin Certbot Apache.

sudo apt install python3-certbot-apache

Et exécutez cette commande pour obtenir et installer le certificat TLS.

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

  • --nginx  :Utilisez le plug-in nginx.
  • --apache :Utilisez le plug-in Apache.
  • --agree-tos  :acceptez les conditions d'utilisation.
  • --redirect  :Forcer HTTPS par redirection 301.
  • --hsts :Ajoutez l'en-tête Strict-Transport-Security à chaque réponse HTTP. Forcer le navigateur à toujours utiliser TLS pour le domaine. Protège contre le SSL/TLS Stripping.
  • --staple-ocsp :active l'agrafage OCSP. Une réponse OCSP valide est agrafée au certificat que le serveur propose pendant TLS.

Le certificat devrait maintenant être obtenu et installé automatiquement.

Actualisez votre interface graphique Web Syncthing, vous constaterez que la connexion HTTP est automatiquement redirigée vers la connexion sécurisée HTTPS.

Activer l'authentification utilisateur

Par défaut, n'importe qui peut accéder à votre interface Web Syncthing après la configuration du proxy inverse. Nous pouvons activer l'authentification des utilisateurs pour restreindre l'accès. Cliquez sur Actions dans le coin supérieur droit, puis sélectionnez Paramètres -> Interface graphique.

Entrez un nom d'utilisateur dans Utilisateur d'authentification GUI champ, saisissez un mot de passe dans le champ Mot de passe d'authentification GUI . Enregistrez ensuite vos paramètres.

Veuillez noter que vous n'avez pas besoin de cocher la case Utiliser HTTPS pour l'interface graphique box, qui permet à Syncthing d'utiliser un certificat auto-signé. Nous avons déjà installé un certificat valide dans Apache/Nginx qui est approuvé par les principaux navigateurs Web.

Une fois que vous avez enregistré les modifications, redémarrez le service systemd Syncthing, ou vous pourriez voir une erreur de passerelle 502 incorrecte lors du rechargement de la page.

sudo systemctl restart [email protected]username.service

Connectez-vous maintenant à l'interface Web de Syncthing avec votre nouveau nom d'utilisateur et votre nouveau mot de passe.

Dossiers d'envoi uniquement et de réception uniquement

Lorsque vous partagez un dossier dans Syncthing, vous pouvez accéder à l'onglet Avancé et choisir l'un des trois types de dossier :

  • Envoyer et recevoir (par défaut)
  • Envoyer uniquement
  • Réception uniquement

Vous pouvez choisir d'envoyer uniquement ou de recevoir uniquement. Par exemple, si vous avez 3 ordinateurs :A, B et C, et que vous souhaitez regrouper les dossiers des ordinateurs A et B dans un seul dossier sur l'ordinateur C. Vous pouvez alors définir le type de dossier sur réception uniquement sur l'ordinateur C. De cette façon, l'ordinateur C aura tous les fichiers dans un seul dossier. Les ordinateurs A et B ont toujours les fichiers d'origine. Ni plus ni moins.

Lorsque vous utilisez le même chemin de dossier sur l'ordinateur C, Syncthing peut vous avertir que "ce chemin est un sous-répertoire d'un dossier existant". Vous pouvez ignorer cet avertissement car vous disposez d'un dossier de réception uniquement. Les fichiers existants dans le dossier ne seront pas supprimés.

Synchronisation via des serveurs relais

Si deux instances de Syncthing ne peuvent pas se connecter, Syncthing essaiera d'utiliser un serveur relais pour transférer les fichiers.

Une raison courante pour laquelle ils ne peuvent pas se connecter les uns aux autres est que l'un d'eux se trouve derrière un périphérique NAT et n'a pas configuré la redirection de port. Une fois que vous avez configuré la redirection de port, vous pouvez désactiver les serveurs relais. Voici comment. Cliquez sur Edit et sélectionnez le bouton Advanced onglet, Changer l'adresse de dynamic à tcp://ip-address:22000 . Bien sûr, vous devez utiliser votre véritable adresse IP.

Dépannage

Si vos instances Syncthing ne peuvent pas se connecter les unes aux autres, vous pouvez utiliser le ss (statistiques de socket) pour vérifier si Syncthing écoute sur le port TCP 22000.

sudo ss -lnpt | grep syncthing

Comme vous pouvez le voir sur la capture d'écran ci-dessous, mon Syncthing écoute sur le port 8384 (interface Web) et 22000 (connexion peer to peer).

Sinon, vous pouvez modifier le fichier de configuration.

nano ~/.config/syncthing/config.xml

Trouvez la ligne suivante.

<listenAddress>default</listenAddress>

Changer default à tcp://your-IP-address .

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

Enregistrez et fermez le fichier. Redémarrez ensuite Syncthing.

sudo systemctl restart [email protected]username.service

Manque le fichier .stfoler

Le .stfoler Le fichier est requis par Syncthing pour fonctionner. Ceci est un fichier vide. Vous n'avez pas besoin d'y ajouter quoi que ce soit. Si le .stfolder fichier est manquant dans votre dossier de synchronisation, la synchronisation s'arrêtera. Vous pouvez créer la tâche Cron suivante pour créer automatiquement le fichier.

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

La commande touch créera le fichier s'il est manquant. Si le fichier existe déjà, il mettra à jour l'horodatage du fichier.


Debian
  1. Comment installer le serveur Minecraft sur Debian 9

  2. Comment installer le serveur Redis sur Debian 11

  3. Comment installer MySQL 8.0 / 5.7 sur Debian 11 / Debian 10

  4. Comment installer ProFTPD sur Debian 8

  5. Comment installer le serveur MySQL sur Debian 9

Comment installer Syncthing sur Ubuntu Desktop/Server

Comment installer FastPanel sur Debian 11

Comment installer I2P sur le serveur Debian :

Comment installer le bureau GNOME sur Debian 8

Comment installer VNC sur Debian 10

Comment installer GNOME Desktop sur Debian 10