GNU/Linux >> Tutoriels Linux >  >> Linux

Synchroniser des fichiers entre plusieurs systèmes avec Syncthing

Dans ce tutoriel étape par étape, nous allons apprendre ce qu'est Syncthing , comment installer Syncthing sur Linux, comment synchroniser des fichiers entre plusieurs systèmes avec Syncthing en temps réel et enfin comment résoudre les problèmes courants de Syncthing.

1. Introduction à Syncthing

Syncthing est un programme de synchronisation de fichiers peer-to-peer (P2P) gratuit et open source qui vous permet de synchroniser en toute sécurité des fichiers entre deux appareils ou plus au sein d'un réseau local ou d'appareils distants via Internet.

L'appareil peut être un système de bureau, un serveur ou un téléphone mobile. Les modifications apportées à un appareil (c'est-à-dire la création, la modification et la suppression de fichiers, etc.) seront automatiquement répliquées sur d'autres appareils.

Syncthing n'a besoin d'aucune configuration ! Cela fonctionne juste hors de la boîte. Chaque appareil est identifié par un ID . Donnez simplement l'ID de l'appareil pour échanger des fichiers.

Comme il s'agit d'un programme de synchronisation de fichiers P2P, vos données ne seront pas téléchargées sur un cloud public ou un serveur central. Syncthing échange simplement les données entre vos appareils lorsqu'ils sont en ligne en même temps.

Syncthing est une application indépendante de la plate-forme, vous pouvez donc synchroniser des fichiers entre plusieurs ordinateurs fonctionnant avec le même système d'exploitation ou un système d'exploitation différent, ou synchroniser des fichiers entre un ordinateur et un appareil mobile et vice versa. Il est également possible de synchroniser un seul dossier à plusieurs emplacements sur différents appareils.

L'outil de synchronisation de fichiers Syncthing est écrit en Go langage de programmation. Il fonctionne sous GNU/Linux, Mac OS, Solaris et plusieurs versions de BSD.

Il existe également une application Android officielle Syncthing disponible pour ceux qui souhaitent synchroniser des fichiers entre des appareils mobiles et des ordinateurs.

Attention : Veuillez noter que Syncthing ne prend pas en charge la synchronisation locale . Signification - vous ne pouvez pas synchroniser des fichiers entre des dossiers sur le même système. Si vous souhaitez effectuer une synchronisation locale, envisagez d'utiliser soit rsync ou unisson .

1.1. Comment fonctionne Syncthing ?

Syncthing divise les fichiers en plusieurs parties appelées Blocs et les transférer d'un appareil à un autre. Par conséquent, plusieurs appareils peuvent partager la charge de synchronisation, similaire à un protocole torrent. Ainsi, le taux de transfert de données est généralement rapide. Plus vous avez d'appareils en ligne, plus le taux de transfert de données est rapide.

Si le contenu des fichiers est modifié simultanément et est différent sur les appareils locaux et distants, cela provoque un conflit. Syncthing gère efficacement les conflits de fichiers en renommant l'un des fichiers en <filename>.sync-conflict-<date>-<time>-<modifiedBy>.<ext> .

Habituellement, le fichier avec l'heure de modification la plus ancienne sera marqué comme fichier en conflit, puis il sera renommé. Si les temps de modification sont égaux, le fichier provenant de l'équipement qui a la plus grande valeur des 63 premiers bits pour son device ID sera marqué comme fichier en conflit.

Si le conflit est entre une modification et une suppression du fichier, le fichier modifié sera restauré sans renommer sur l'appareil où il a été supprimé.

Une autre chose notable à propos de Syncthing est qu'il n'écrit jamais directement dans un fichier de destination. Il fait une copie temporaire des données avant d'écraser l'ancienne version. Une fois le transfert de fichiers terminé avec succès, les fichiers temporaires seront supprimés.

S'il y a des erreurs lors de la synchronisation des fichiers, le fichier temporaire est conservé pendant 24 heures par défaut. Vous pouvez, bien sûr, modifier ce paramètre selon votre convenance. Les fichiers temporaires sont nommés .syncthing.original-filename.ext.tmp et ils sont cachés par défaut.

Comme indiqué précédemment, Syncthing transfère directement les fichiers entre deux appareils. Lorsqu'il n'est pas possible d'établir une connexion directe entre les deux appareils, Syncthing les connecte via un relais .

Les connexions relayées sont chiffrées à l'aide de TLS méthode de cryptage pour transférer en toute sécurité des données entre les appareils. Il utilise son propre protocole gratuit, nommé Block Exchange Protocol pour établir la communication avec tous les appareils.

2. Fonctionnalités de synchronisation

Les principales fonctionnalités de Syncthing sont indiquées ci-dessous :

  • Privé - Les données ne sont jamais répliquées ailleurs que sur les appareils configurés.
  • Sécurisé - Toutes les communications entre les appareils sont chiffrées avec TLS.
  • Authentification - Chaque appareil est identifié par un ID d'appareil unique. L'ID d'appareil est utilisé pour la résolution d'adresse, l'authentification et l'autorisation. Seuls les appareils que vous avez explicitement autorisés peuvent se connecter à votre cluster.
  • Transparence - Syncthing est un projet open source. Ainsi, n'importe qui peut inspecter son code et comprendre comment Syncthing trouve d'autres appareils actifs avec lesquels se synchroniser, comment il transfère les données d'un nœud à l'autre et comment il synchronise les données entre différents appareils.
  • Coût - Syncthing est une application de partage de fichiers décentralisée et sans nuage. Il n'y a pas de serveur central ou de service cloud à payer. C'est donc totalement gratuit !
  • Limites - Il n'y a pas de limites. Vous pouvez partager un nombre illimité de fichiers de n'importe quelle taille tant que vous disposez de suffisamment d'espace disque libre sur vos appareils.
  • Multiplateforme et portable - Syncthing est indépendant de la plate-forme. Il fonctionne sur de nombreux systèmes d'exploitation, notamment Linux, Windows, Solaris, BSD et Android.

3. Installer Syncthing sur Linux

Vous devez installer Syncthing sur tous les systèmes que vous souhaitez synchroniser.

Syncthing est packagé pour de nombreuses distributions Linux et est disponible dans les dépôts officiels.

Pour installer Syncthing sur Arch Linux et ses variantes comme EndeavourOS et Manjaro Linux, lancez :

$ sudo pacman -S syncthing

Sur Debian, Ubuntu :

$ sudo apt install syncthing

Veuillez noter que dans Ubuntu, vous devez activer [universe] dépôt pour installer Syncthing.

Sur RHEL 8, CentOS 8, AlmaLinux 8, Rocky Linux 8, Fedora 31 et les versions plus récentes :

Activer [EPEL] référentiel :

$ sudo dnf install epel-release

Et puis installez syncthing en utilisant la commande suivante :

$ sudo dnf install syncthing

Sur les éditions CentOS 7 et 6, vous pouvez installer Syncthing à partir de fichiers binaires précompilés, comme décrit dans la section suivante.

openSUSE :

$ sudo zypper install syncthing

3.1. Installer Syncthing à partir des binaires

Si Syncthing n'est pas disponible dans les référentiels par défaut, vous pouvez télécharger les binaires pré-compilés à partir de la page des versions , et déplacez-le vers votre $PATH comme indiqué ci-dessous.

$ wget https://github.com/syncthing/syncthing/releases/download/v1.11.1/syncthing-linux-amd64-v1.11.1.tar.gz

Extrayez-le :

$ tar xvf syncthing-linux-amd64-v1.11.1.tar.gz

Et déplacez-le vers votre $PATH , par exemple /usr/local/bin/ .

$ sudo cp syncthing-linux-amd64-v1.11.1/syncthing /usr/local/bin/

Pour vérifier s'il est correctement installé, essayez d'afficher sa version à l'aide de la commande :

$ syncthing --version

Si vous voyez une sortie comme ci-dessous, félicitations ! Vous avez installé Syncthing avec succès !!

syncthing v1.11.1 "Fermium Flea" (go1.15.3 linux-amd64) [email protected] 2020-11-03 11:29:54 UTC

3.2. Installer le client syncthing-gtk

Syncthing possède également une interface utilisateur graphique nommée syncthing-gtk . Si vous souhaitez des notifications de bureau et une intégration avec vos gestionnaires de fichiers tels que Nautilus, Nemo, Caja, installez l'interface graphique syncthing GTK.

Syncthing-gtk est disponible dans les référentiels officiels, vous pouvez donc également l'installer à l'aide du gestionnaire de packages par défaut de votre distribution Linux. Par exemple, pour installer syncthing-gtk sur des systèmes basés sur Debian, exécutez :

$ sudo apt install syncthing-gtk

Si Syncthing-gtk n'est pas disponible dans les référentiels officiels, téléchargez plutôt l'application flatpak. Assurez-vous d'avoir installé flatpak sur votre machine Linux, puis exécutez la commande suivante pour installer syncthing-gtk :

$ flatpak install flathub me.kozec.syncthingtk

4. Initialiser Syncthing sur tous les appareils

Pour les besoins de ce guide, j'utiliserai les deux systèmes suivants.

Système 1 :

Operating system   - Ubuntu 20.04 LTS desktop system
Hostname           - ostechnix
IP Address         - 192.168.225.37/24

Système2 :

Operating system   - Fedora 32 silverblue desktop
Hostname           - toolbox
IP Address         - 192.168.225.46/24

Vous devez effectuer les étapes suivantes sur tous les systèmes que vous souhaitez synchroniser.

Ouvrez votre Terminal et lancez Syncthing pour l'initialiser :

$ syncthing

Si Syncthing est installé à l'aide de flatpak, lancez-le en exécutant cette commande :

$ flatpak run me.kozec.syncthingtk

Lorsque vous exécutez Syncthing pour la première fois, il génère les clés nécessaires, crée des fichiers de configuration par défaut et configure un dossier de synchronisation par défaut nommé "Sync" dans votre $HOME répertoire.

Voici un exemple de sortie de mon système de bureau Ubuntu lors de la première initialisation de Syncthing :

[monitor] 17:23:06 INFO: Starting syncthing
[start] 17:23:06 INFO: Generating ECDSA key and certificate for syncthing...
[R7FIO] 17:23:06 INFO: syncthing unknown-dev "Erbium Earthworm" (go1.13.5 linux-amd64) [email protected] 1970-01-01 00:00:00 UTC
[R7FIO] 17:23:06 INFO: My ID: R7FIOSA-3ZO6FLJ-LFBAVWM-LUEDOR2-RPDXXH7-4P2HFWX-QCWBN4D-ENEGIAY
[R7FIO] 17:23:07 INFO: Single thread SHA256 performance is 118 MB/s using minio/sha256-simd (88 MB/s using crypto/sha256).
[R7FIO] 17:23:07 INFO: Default folder created and/or linked to new config
[R7FIO] 17:23:07 INFO: Default config saved. Edit /home/sk/.config/syncthing/config.xml to taste (with Syncthing stopped) or use the GUI
[R7FIO] 17:23:07 INFO: Hashing performance is 103.85 MB/s
[R7FIO] 17:23:07 INFO: Starting deadlock detector with 20m0s timeout
[R7FIO] 17:23:07 INFO: No stored folder metadata for "default": recalculating
[R7FIO] 17:23:07 INFO: Ready to synchronize "Default Folder" (default) (sendreceive)
[R7FIO] 17:23:07 INFO: Overall send rate is unlimited, receive rate is unlimited
[R7FIO] 17:23:07 INFO: Using discovery server https://discovery-v4.syncthing.net/v2/?nolookup&id=LYXKCHX-VI3NYZR-ALCJBHF-WMZYSPK-QG6QJA3-MPFYMSO-U56GTUK-NA2MIAW
[R7FIO] 17:23:07 INFO: TCP listener ([::]:22000) starting
[R7FIO] 17:23:07 INFO: Using discovery server https://discovery-v6.syncthing.net/v2/?nolookup&id=LYXKCHX-VI3NYZR-ALCJBHF-WMZYSPK-QG6QJA3-MPFYMSO-U56GTUK-NA2MIAW
[R7FIO] 17:23:07 INFO: Using discovery server https://discovery.syncthing.net/v2/?noannounce&id=LYXKCHX-VI3NYZR-ALCJBHF-WMZYSPK-QG6QJA3-MPFYMSO-U56GTUK-NA2MIAW
[R7FIO] 17:23:07 INFO: Relay listener (dynamic+https://relays.syncthing.net/endpoint) starting
[R7FIO] 17:23:08 INFO: Completed initial scan of sendreceive folder "Default Folder" (default)
[R7FIO] 17:23:08 INFO: Loading HTTPS certificate: open /home/sk/.config/syncthing/https-cert.pem: no such file or directory
[R7FIO] 17:23:08 INFO: Creating new HTTPS certificate
[R7FIO] 17:23:08 INFO: GUI and API listening on 127.0.0.1:8384
[R7FIO] 17:23:08 INFO: Access the GUI via the following URL: http://127.0.0.1:8384/
[R7FIO] 17:23:08 INFO: My name is "ostechnix"
[R7FIO] 17:23:18 INFO: Detected 0 NAT services
[R7FIO] 17:24:42 INFO: Joined relay relay://210.23.25.77:22067

Une fois l'initialisation terminée, l'interface graphique Web de Syncthing s'ouvrira automatiquement dans votre navigateur par défaut :

Comme vous pouvez le voir dans la capture d'écran ci-dessus, l'interface Web de Syncthing est très facile à comprendre et à utiliser. La plupart des options sont explicites.

L'interface Web comporte trois sections, à savoir

  1. Dossiers,
  2. Cet appareil,
  3. et appareils distants.

Les "Dossiers" affiche la liste des dossiers partagés. Par défaut, le répertoire partagé par défaut ~/Sync est listé ici.

Dans "Cet appareil" section, vous trouverez les détails tels que le nom de l'ordinateur, le taux de téléchargement/téléchargement, l'utilisation de la RAM/CPU, le temps de fonctionnement total et quelques autres.

Sous la section "L'appareil", il y a une autre section nommée "Appareils distants" section où vous pouvez ajouter tous les appareils distants à synchroniser. Comme nous n'avons pas encore ajouté d'appareils, il s'affiche vide.

En haut de l'interface Web de Syncthing, vous pouvez choisir votre langue préférée, ouvrir la section d'aide et effectuer diverses tâches administratives sous Actions languette.

La liste des éléments que vous pouvez configurer à partir de l'onglet "Actions" est donnée ci-dessous :

  • modifier le nom de l'appareil,
  • générer la clé API,
  • espace disque libre minimum requis dans le répertoire $HOME,
  • activer ou désactiver le rapport d'utilisation anonyme,
  • modifier le chemin du dossier par défaut,
  • modifier l'adresse d'écoute de l'interface graphique,
  • définir le nom d'utilisateur et le mot de passe de l'administrateur de l'interface graphique,
  • activer HTTPS,
  • définir une limite de débit entrant et sortant,
  • ajouter des appareils ou des dossiers à ignorer de la synchronisation,
  • et plus.

La plupart des options de l'onglet Actions doivent rester inchangées. La configuration par défaut est juste suffisante. Si vous connaissez toutes les options, modifiez-les selon votre souhait.

Maintenant, allez sur les autres systèmes et initialisez Syncthing pour générer les fichiers de configuration nécessaires et créer le dossier de synchronisation par défaut.

Vous pouvez afficher les chemins de synchronisation actuellement configurés à l'aide de la commande :

$ syncthing --paths

Exemple de résultat :

Configuration file:
	/home/sk/.config/syncthing/config.xml

Database directory:
	/home/sk/.config/syncthing/index-v0.14.0.db

Device private key & certificate files:
	/home/sk/.config/syncthing/key.pem
	/home/sk/.config/syncthing/cert.pem

HTTPS private key & certificate files:
	/home/sk/.config/syncthing/https-key.pem
	/home/sk/.config/syncthing/https-cert.pem

Log file:
	-

GUI override directory:
	/home/sk/.config/syncthing/gui

Default sync folder directory:
	/home/sk/Sync

4.1. Définir le nom d'utilisateur et le mot de passe administratifs pour l'interface graphique Web Syncthing

Par défaut, vous pouvez accéder à l'interface graphique Web Syncthing sans nom d'utilisateur ni mot de passe. Pour sécuriser un peu votre instance Syncthing, définissez un utilisateur administratif et un mot de passe.

Cliquez sur "Actions" onglet dans le coin supérieur droit et choisissez "Paramètres" dans le menu déroulant.

Sous "GUI" , entrez votre nom d'utilisateur administrateur et son mot de passe. Assurez-vous que le mot de passe est fort et qu'il n'est pas plus facile à deviner. Activez également "Utiliser HTTPS pour l'interface graphique" option.

Cliquez sur le bouton Enregistrer pour créer le compte d'utilisateur administrateur.

Maintenant, actualisez votre navigateur Web et vous verrez un message d'avertissement de certificat. En effet, nous venons d'activer HTTPS pour l'interface graphique Web.

Pour contourner cet avertissement, cliquez sur "Avancé" puis cliquez sur "Accepter le risque et continuer" option pour ajouter votre localhost à la liste des exceptions.

Ensuite, entrez le nom d'utilisateur administratif et son mot de passe pour accéder à l'interface graphique Web Syncthing.

Vous pouvez également lancer le client syncthing-gtk pour initialiser Syncthing.

Répétez les mêmes étapes sur la deuxième machine pour configurer l'utilisateur administrateur pour l'interface graphique Web.

5. Synchroniser les fichiers entre plusieurs systèmes avec Syncthing

Lancez Syncthing sur les deux machines en exécutant cette commande :

$ syncthing

L'interface graphique Web Syncthing s'ouvrira automatiquement dans le navigateur par défaut.

Pour synchroniser les fichiers entre les systèmes, nous devons les associer les uns aux autres à l'aide de leur Device ID . Vous pouvez afficher l'ID de l'appareil sous l'onglet "Actions".

Voici l'identifiant de périphérique de ma machine de bureau Ubuntu 20.04 :

Vous devez échanger l'ID ci-dessus avec un autre système afin que les deux systèmes se parlent.

Pour ce faire, cliquez sur "Ajouter un appareil distant" bouton de la section Appareils distants.

Vous devriez voir l'ID de l'appareil du système à proximité sur l'écran suivant. Cliquez sur l'ID de l'appareil pour l'associer à votre système actuel.

Ensuite, allez dans le "Partage" et sélectionnez les dossiers à partager avec l'appareil actuel. En option, vous pouvez cocher la case "Acceptation automatique" pour créer ou partager automatiquement des dossiers que cet appareil annonce au chemin par défaut. Pour info, le chemin partagé par défaut est ~/Sync .

Dans l'onglet "Avancé" , vous pouvez choisir la méthode de compression et définir les limites de débit de l'appareil.

Enfin, cliquez sur "Enregistrer" bouton pour coupler le system2 avec la machine system1.

Juste au cas où l'ID de l'appareil ne s'affiche pas, copiez-le manuellement depuis le système2 et collez-le ici.

Sur un autre système (c'est-à-dire system2), vous verrez un message de notification vous demandant d'ajouter le premier système. Cliquez sur "Ajouter un appareil" pour accepter la demande et les coupler.

De même, répétez les étapes ci-dessus sur le system2 pour le coupler avec la machine system1. Une fois que vous avez couplé avec succès les deux systèmes, vous les verrez répertoriés sous "Appareils distants" section dans l'interface Web de Syncthing.

Ici, "boîte à outils" est le nom de mon bureau Fedora.

Vous aurez également le "Actualisé" message à côté de l'appareil distant et également du "Dossier par défaut" onglet dans le volet de gauche. Cela signifie qu'ils sont prêts à être synchronisés !

Pour afficher les détails du dossier partagé, cliquez sur "Dossier par défaut" onglet dans le volet de gauche pour le développer. Vous verrez divers détails du dossier partagé tels que ;

  • identifiant du dossier partagé,
  • chemin du dossier partagé,
  • état du dossier,
  • intervalle de temps entre les analyses périodiques,
  • sur quel appareil il est actuellement partagé,
  • l'heure de la dernière analyse, etc.

Nous avons terminé maintenant. Nous avons installé et configuré avec succès Synchthing sur les deux systèmes et les deux sont couplés l'un à l'autre.

A partir de maintenant, quoi que vous mettiez dans le ~/Sync dossier sur l'un des systèmes sera synchronisé avec l'autre système. Vous pouvez voir la progression de la synchronisation depuis l'interface Syncthing :

Chaque fois que vous créez, modifiez ou supprimez quelque chose de ~/Sync dossier dans l'un des systèmes, les modifications seront automatiquement répliquées sur un autre système et vice versa.

Une fois la synchronisation terminée, fermez l'interface Web de Syncthing puis quittez syncthing commande en appuyant sur Ctrl+C .

5.1. Créer un nouveau dossier partagé

Vous pouvez créer plusieurs répertoires partagés et les synchroniser tous avec d'autres appareils couplés.

Pour créer un nouveau répertoire partagé, cliquez sur "Ajouter un dossier" sous "Dossiers" partie à gauche.

Dans le "Général" onglet, entrez l'étiquette du dossier, l'ID du dossier et le chemin du dossier à partager avec d'autres appareils.

Ensuite, allez dans le "Partage" et sélectionnez les appareils avec lesquels partager ce dossier.

Vous pouvez également définir un dossier partagé comme envoi uniquement ou réception uniquement ou à la fois envoi et réception. Cette option est disponible sous "Type de dossier" liste déroulante dans "Avancé" languette.

Cliquez enfin sur "Enregistrer" bouton pour activer ce partage.

Le nouveau répertoire partagé sera désormais répertorié sous les "Dossiers" section. Vous pouvez modifier les paramètres du dossier partagé à tout moment en cliquant sur "Modifier" bouton.

5.2. Configurer le pare-feu

Si vous êtes derrière un pare-feu ou un routeur local tiers, autorisez les ports 22000/TCP et 21027/UDP pour le trafic entrant et sortant. Veuillez noter que vous devez le faire sur tous les systèmes.

Si vous avez configuré ufw (pare-feu simple) sur votre machine Linux, vous pouvez autoriser les ports Syncthing à l'aide de la commande suivante :

$ sudo ufw allow syncthing

Si vous utilisez firewalld , puis exécutez les commandes suivantes pour ouvrir les ports nécessaires :

$ sudo firewall-cmd --zone=public --add-service=syncthing --permanent

Enfin, redémarrez firewalld service pour prendre en compte les modifications :

$ sudo firewall-cmd --reload

5.3. Activer l'interface graphique Web distante (facultatif)

Le port par défaut pour l'interface graphique Web est 8384 . Vous pouvez accéder à l'interface graphique Web Syncthing en accédant à l'URL http://localhost:8384 ou http://127.0.0.1:8384 depuis le navigateur Web.

Par défaut, l'interface graphique Web Syncthing n'est accessible qu'à partir de l'hôte local lui-même. Si vous souhaitez accéder à l'interface graphique Web à partir d'autres systèmes du réseau, vous devez autoriser le port 8384 dans votre pare-feu/routeur local.

Si vous utilisez ufw , exécutez la commande suivante pour autoriser le syncthing-gui service :

$ sudo ufw allow syncthing-gui

De même, vous pouvez autoriser l'accès externe à l'interface graphique Web Syncthing via firewalld comme ci-dessous :

$ sudo firewall-cmd --zone=public --add-service=syncthing-gui --permanent

Redémarrez le service firewalld pour appliquer les modifications :

$ sudo firewall-cmd --reload

Après avoir autorisé le port par défaut via le pare-feu, modifiez l'GUI listen address via l'interface graphique Web à partir de 127.0.0.1:8384 à 0.0.0.0:8384 :

Vous pouvez également modifier Syncthing config.xml fichier :

$ nano ~/.config/syncthing/config.xml

Recherchez la ligne suivante :

<address>127.0.0.1:8384</address>

Et changez-le en :

<address>0.0.0.0:8384</address>

Appuyez sur CTRL+O suivi de CTRL+X pour enregistrer et quitter le fichier.

Vous pouvez désormais accéder à l'interface graphique Web à partir de n'importe quelle machine distante en utilisant "https://IPAddress:8384" URL.

Attention : Veuillez noter que ceci est facultatif et que l'activation de l'accès à distance à l'interface graphique Web n'est pas recommandée. Cela exposera votre système au public. Activez l'accès de l'interface graphique Web à tous les systèmes uniquement s'ils se trouvent à l'intérieur du réseau approuvé.

Assurez-vous également que vous avez configuré un utilisateur administrateur pour vous connecter à l'interface graphique Web et activé "Utiliser HTTPS pour l'interface graphique" option comme décrit précédemment.

5.4. Tunnellisation via SSH

Si les deux systèmes peuvent être accessibles via SSH, vous pouvez accéder à l'interface graphique Web du système distant sur votre machine locale via un tunnel SSH. C'est un peu plus sûr que d'ouvrir le port de l'interface graphique Web de Syncthing au monde extérieur.

Pour démarrer un tunnel SSH, exécutez :

$ ssh -L 9999:127.0.0.1:8384 [email protected]

Remplacez "[email protected]" avec votre nom d'utilisateur distant et votre adresse IP. Cela se liera à votre port local 9999 et transférera toutes les connexions à partir de là vers le port 8384 sur la machine cible. Cela fonctionne toujours même si Syncthing est destiné à écouter uniquement sur localhost.

Vous pouvez désormais accéder à l'interface graphique Web distante à partir de votre système local en accédant à https://localhost:9999/ .

5.5. Démarrage automatique de la synchronisation

Chaque fois que vous souhaitez synchroniser quelque chose, vous devez démarrer manuellement l'instance de synchronisation. Si vous souhaitez le démarrer automatiquement à chaque redémarrage, procédez comme suit.

Créer un nouveau systemd service de synchronisation :

$ sudo nano /etc/systemd/system/[email protected]

Ajoutez-y les lignes suivantes :

[Unit]
Description=Syncthing - Open Source Continuous File Synchronization for %I
Documentation=man:syncthing(1)
After=network.target

[Service]
User=%i
ExecStart=/usr/local/bin/syncthing -no-browser -gui-address="0.0.0.0:8384" -no-restart -logflags=0
Restart=on-failure
SuccessExitStatus=3 4
RestartForceExitStatus=3 4

# Hardening
ProtectSystem=full
PrivateTmp=true
SystemCallArchitectures=native
MemoryDenyWriteExecute=true
NoNewPrivileges=true

[Install]
WantedBy=multi-user.target

Remplacez "ExecStart=/usr/local/bin/syncthing" avec le chemin correct du fichier exécutable syncthing.

Si vous avez installé Syncthing à l'aide du gestionnaire de packages de la distribution, le chemin de l'exécutable serait disponible ici - /usr/bin/syncthing .

Si syncthing est installé à partir de binaires pré-compilés, le chemin serait "/usr/local/bin/syncthing" .

Après avoir mis à jour le chemin correct, enregistrez et fermez le fichier.

Ensuite, rechargez systemd unités utilisant la commande :

$ sudo systemctl daemon-reload

Enfin, démarrez le service de synchronisation et activez le démarrage automatique au redémarrage du système :

$ sudo systemctl start [email protected]$USER
$ sudo systemctl enable [email protected]$USER

Vérifiez si Syncthing est en cours d'exécution à l'aide de la commande :

$ sudo systemctl status [email protected]$USER

Exemple de sortie de ma boîte CentOS :

● [email protected] - Syncthing - Open Source Continuous File Synchronization for ostechnix
   Loaded: loaded (/etc/systemd/system/[email protected]; enabled; vendor preset: disabled)
   Active: active (running) since Tue 2020-11-24 18:07:34 IST; 1s ago
     Docs: man:syncthing(1)
 Main PID: 10932 (syncthing)
    Tasks: 11 (limit: 11480)
   Memory: 20.8M
   CGroup: /system.slice/system-syncthing.slice/[email protected]
           ├─10932 /usr/local/bin/syncthing -no-browser -gui-address=0.0.0.0:8384 -no-restart -logflags=0
           └─10937 /usr/local/bin/syncthing -no-browser -gui-address=0.0.0.0:8384 -no-restart -logflags=0

Nov 24 18:07:34 centos8.ostechnix.lan systemd[1]: [email protected]: Service RestartSec=100ms expired, scheduling restart.
Nov 24 18:07:34 centos8.ostechnix.lan systemd[1]: [email protected]: Scheduled restart job, restart counter is at 23.
Nov 24 18:07:34 centos8.ostechnix.lan systemd[1]: Stopped Syncthing - Open Source Continuous File Synchronization for ostechnix.
Nov 24 18:07:34 centos8.ostechnix.lan systemd[1]: Started Syncthing - Open Source Continuous File Synchronization for ostechnix.
Nov 24 18:07:34 centos8.ostechnix.lan syncthing[10932]: [start] INFO: syncthing v1.11.1 "Fermium Flea" (go1.15.3 linux-amd64) [email protected]>
Nov 24 18:07:34 centos8.ostechnix.lan syncthing[10932]: [4ZC47] INFO: My ID: 4ZC47V7-KW3P2BH-FSLG3QN-2D2W3OO-LI2KEQ5-JJOBXWY-QMFOAI3-FP>
Nov 24 18:07:35 centos8.ostechnix.lan syncthing[10932]: [4ZC47] INFO: Single thread SHA256 performance is 117 MB/s using minio/sha256-s>
lines 1-18/18 (END)

A partir de maintenant, Syncthing démarrera automatiquement au démarrage et synchronisera les fichiers entre les systèmes configurés.

5.6. Dépannage

Parfois, vous pouvez rencontrer une erreur de base de données et Syncthing refusera de synchroniser les fichiers entre les appareils. Dans de tels cas, vous pouvez forcer une nouvelle analyse des fichiers et resynchroniser la base de données à l'aide de la commande suivante :

$ syncthing -reset-database

6. Conclusion

Vous savez maintenant comment synchroniser des fichiers entre plusieurs systèmes avec Syncthing sous Linux. Comme vous pouvez le constater, la synchronisation de fichiers à l'aide de Syncthing est assez simple et directe.

Même s'il existe de nombreux services cloud disponibles pour stocker les données, il existe de nombreuses préoccupations concernant la confidentialité, la sécurité et le manque de contrôle sur vos précieuses données.

Grâce à Syncthing, vous pouvez désormais avoir l'esprit plus serein. Il n'y a pas de serveur central, il n'y a pas d'écoute clandestine ! Vous contrôlez vos propres données !


Linux
  1. Ventoy :Comment créer une clé USB multiboot avec plusieurs fichiers ISO

  2. CloudCross – Synchroniser les fichiers et les répertoires avec plusieurs stockages cloud

  3. EasyJoin - Envoyez des fichiers entre votre téléphone et votre PC sans Internet

  4. Comment installer / basculer entre plusieurs versions de Java avec SDKMAN

  5. Trier les fichiers texte avec plusieurs lignes sur une ligne

Transférer des fichiers et des dossiers entre ordinateurs avec Croc

Partager des fichiers entre plusieurs appareils à l'aide de Snapdrop via un navigateur Web

Partager des fichiers entre des postes de travail Linux avec Warpinator

Transférer des fichiers entre ordinateurs et appareils mobiles en scannant des codes QR

Transférer des fichiers entre n'importe quel appareil à l'aide de Piping Server

Comment transférer facilement des fichiers entre des bureaux Linux avec Warp