Aller au contenu

Syncthing - retour d'utilisation


Fenrir

Messages recommandés

Un petit article pour vous présenter Syncthing.

J'ai découvert ce logiciel il y a quelques années, mais je n’avais jamais eu l'occasion de m'en servir, c'est chose faite, donc j'en parle ici.

Présentation

Pour faire simple Syncthing est un logiciel de synchronisation multi-périphériques fonctionnant en P2P de manière privée et sécurisée.

  • tous les transferts sont signés et chiffrés en AES-128, ce qui est (pour le moment en tout cas) largement suffisant pour la plupart des usages
  • il n'est pas obligatoire d'ouvrir le moindre port entre les périphériques (on passe alors par des relais qui ne voient passer que du trafic chiffré, de la même manière que les N routeurs situés entre votre navigateur et une site en HTTPS)
  • chaque périphérique doit être explicitement déclaré et accepté => aucun risque de voir un intrus se connecter ni de voir nos données recopiées chez quelqu'un d'autre
  • pour chaque dossier partagé, on choisi les machines autorisées à s'y connecter
  • on peut évidemment autoriser plusieurs machines sur un même partage et ainsi disposer  d'une redondance des données
  • les transferts fonctionnent en P2P, donc un même fichier peut être récupéré depuis plusieurs sources, ce qui est plus rapide et plus fiable
  • on peut chainer les machines : A voit B, B voit C mais A et C ne se voient pas
  • on peut faire du versionning (plusieurs réglages sont possibles)
  • on peut exclure des fichiers/dossiers de la synchro
  • l'application fonctionne sous Android, *BSD, Linux, MacOS, Solaris et Windows
  • c'est totalement gratuit (licence MPL) et sans inscription (mais un don reste possible et recommandé)
  • ... et d'autres trucs que je n'ai pas encore vu ou testé
  • dernier point, c'est très simple d'utilisation (donc pour cette fois, je ne ferais pas de doc)

01.png

Syncthing n'est pas un logiciel de sauvegarde, même si certaines de ses fonctions permettent, indirectement, d'avoir quelque chose qui y ressemble.

Il ne chiffre pas non plus vos fichiers localement, seuls les transferts sont chiffrés, donc si vous avez des données sensibles, il faut les chiffrer avec un autre outil ou les stocker directement sur un système de fichiers chiffré.

Synchro mobile

Comme indiqué dans un autre post, j'ai commencé à utiliser de logiciel dans l'objectif de remplacer la fonction InstantUpload de DSPhoto.

Smartphone vers NAS

Je l'ai installé sur mon smartphone et j'ai créé un partage du dossier "Camera" (sous DCIM) :

  • je prends une photo (jusque là vous me suivez je pense)
  • dès que je me connecte à mon WIFI (c'est le réglage que j'ai choisi), l'application se lance en tâche de fond et analyse les changements dans le dossier Caméra
  • toutes les modifications (nouvelles photos mais aussi suppressions) sont alors répercutées sur mon NAS
  • comme j'ai configuré "Envoyer uniquement", une suppression sur le NAS ne touche pas aux photos du smartphone (synchronisation unidirectionnelle).

nb : mon NAS fait aussi tourner une instance de Syncthing, dans un conteneur créé pour l'occasion (disponible ici)

Mon premier objectif est donc atteint, mais pourquoi s’arrêter là.

Smartphone et tablette vers tablette + smartphone + NAS

Je l'ai donc aussi installé sur ma tablette, même principe, sauf que j'ai aussi croisé les dossiers "Caméra" des 2 périphériques :

  • je prends une photo depuis mon smartphone OU depuis ma tablette, elle est synchronisée sur mon smartphone ET ma tablette ET mon NAS

Smartphone + tablette + NAS

J'ai fait de même avec un autre dossier (des fichiers divers), mais en synchronisation bidirectionnelle cette fois, ça fonctionne tout aussi bien.

Les 3 périphériques ont donc un dossier dont le contenu reste identique. C'est aussi une manière simple de recopier un fichier depuis/vers un smartphone (ou plusieurs).

Synchronisation entre serveurs

Comme tout ça fonctionnait très bien, j'ai fait le test entre 2 serveurs Web (pour synchroniser des fichiers statiques, les images présentes dans mes tutos et mes posts sur ce forum).

Certains me diront qu'il existe plein de manière de faire ça très simplement (rsync, unison, drbd, lustre, ipfs, ...), mais je voulais aussi mettre mon NAS dans la boucle.

Encore une fois, ça fonctionne très bien : dès qu'un fichier bouge sur l'un des serveurs ou sur le NAS, la modification est automatiquement répercutée sur les autres membres du partage.

Ça reste moins rapide que rsync&co, mais on économise la création du tunnel (ssh, ipsec, ...) et ça permet d'inclure des périphériques "clients".

J'en ai d'ailleurs profité pour inclure les serveurs dans les partages du smartphone et ainsi profiter de leurs bande passante tout en ayant une meilleur disponibilité des données.

Conclusion

L'installation est portable, l'interface est clair et c'est très stable (nb : je n'ai que quelques jours de recul).

Je n'ai rencontré que 3 problèmes pour le moment :

  • la patience : ce n'est pas de la synchro temps réel, la plupart du temps les modifications sont répercutées en moins d'une minute (plus le temps de transfert si les fichiers sont gros), mais parfois ça prend un peu plus longtemps => il faut être patient
  • l'organisation : il faut bien réfléchir à la manière d'organiser les partages sur les différentes machines et utiliser des noms explicites
  • la charge CPU sous macos : j'ai du louper un truc, mais je n'ai pas cherché (le mac ne me sert que pour des tests, la plupart du temps il est dans un tiroir)

Bref, un logiciel que je vous recommande de tester (et plus si affinité).

Modifié par Fenrir
Lien vers le commentaire
Partager sur d’autres sites

Merci Fenrir pour ce post de présentation. Je le lirai plus attentivement un peu plus tard et tenterai peut-être l'expérience.

Mon désir étant d'envoyer des données de mon NAS Synology vers un serveur dédié pour faire des backups "chiffrés". Incrémental serait le top...

Lien vers le commentaire
Partager sur d’autres sites

J'avais beaucoup utilisé BitTorrent Sync à l'époque où il était gratuit. Ce qu'il me manque avec SyncThing, c'est la comptibilité iOS et le chiffrage à la destination. C'est-à-dire disposer d'un ou plusieurs nœuds sur lequels les données ne sont chiffrées (donc illisibles), l'intérêt étant de pouvoir synchroniser avec des tiers (de confiance ou non) afin d'avoir une meilleure redondance des données.

Autre détail aussi, SyncThing était (je ne sais pas si c'est toujours le cas) beaucoup plus gourmand que BitTorrent Sync.

Lien vers le commentaire
Partager sur d’autres sites

BitSync => Resilio Sync fonctionne effectivement très bien, j’avais aussi fait joujou avec à l'époque, mais ce qui me gène c'est qu'on soit obligé de passer par leurs serveurs (pas pour les données, mais pour la mise en relation des nœuds), sinon le prix est très convenable et il existe aussi une version gratuite (qui ne chiffre pas les données par contre). Après il y a l'aspect propriétaire VS libre (j'y suis sensible, mais la plupart des gens s'en foutent).

En fait le "gros" avantage de Resilio Sync c'est qu'il installe son raccourci sur le bureau et démarre tout seul avec Windows alors que Syncthing, c'est juste un zip qu'on met où l'on veut (ce qui pour moi est un très gros avantage) :lol:

Pour la compatibilité de Syncthing avec iOS, j'ai vu je ne sais où que c'était l'intégration (ou son absence) par Apple du langage Go qui posait problème mais que c'était en passe d'être résolu (mais je ne me rappelle plus si le post était récent ou non par contre).

Pour le chiffrement des données, c'est vrai qu'il peut y avoir des cas d'usage, d'ailleurs les dev de Syncthing travaillent dessus : https://github.com/syncthing/syncthing/pull/4331.

Mais pour moi c'est plus est plus une contrainte qu'un avantage s'il est réalisé par le logiciel qui fait le transfert, si ça reste une option c'est très bien.

Un gros problème avec le fait d'avoir des données chiffrées sur certains nœuds et pas sur d'autres c'est de trouver le juste équilibre entre les performances réseau (différentiel vs full) et la confidentialité (metadonnées). Si on prend Hyperbackup, on a accès à pas mal d'infos comme les tailles de fichiers, leurs dates, les partages, le login utilisé, ... Pour un usage domestique ce n'est pas gênant, mais pour une utilisation plus "pro" ça peut poser des problèmes.

Pour ce qui est d'être gourmand (si tu parles bien de cpu/ram/io), je n'ai pas noté de problèmes (presque aucun impact sur l'autonomie de mon smartphone, 1 ou 2% de batterie). Idem sur le nas, je ne le sens pas du tout (mon docker consomme 50mo de ram et 0.2% de cpu au repos, juste des pics lors de l'ajout de fichiers, comme avec une bête copie SMB). Pour mes autres machines (pc, serveurs, ...) c'est dans l'épaisseur du trait.

Lien vers le commentaire
Partager sur d’autres sites

il y a une heure, Fenrir a dit :

mais ce qui me gène c'est qu'on soit obligé de passer par leurs serveurs (pas pour les données, mais pour la mise en relation des nœuds)

Justement, il était possible de le configurer en lui précisant les host:port locaux à utiliser afin d'être complètement indépendant de leur infrastructure (chez mois j'avais 2 NAS, un PC, et un Mac tous synchronisés en local). Par contre, ce n'est pas possible sur un réseau mobile (NAT oblige). Je ne sais pas si ce fonctionnement est toujours possible dans Resilio Sync.

Lien vers le commentaire
Partager sur d’autres sites

En local oui, c'est indépendant (broadcast+multicast), mais via Internet il faut nécessairement passer par chez eux :

Citation

Sync uses various ports and protocols to function and connect peers. Depending on the network your peers are in, these shall be open and let traffic through, in and out, on either side:

 1. First Sync needs to learn addresses of tracker and relay servers. For that it must be able download and parse sync.conf file.  Discovery of tracker and relay IPs:
 - HTTP, port 80: access to config file https://config.resilio.com/sync.conf via DNS name.

2. Once tracker and relay are known, Sync must be able to connect to tracker so as to communicate its own IP address (public and local) to it and learn IP addresses of other peers from it.

Avec Syncthing tu peux aussi spécifier les machines (host:port) mais également gérer les cas de NAT en configurant l'un des nœuds pour faire relai privé (mais là ce n'est plus à la portée de la plupart des utilisateurs de ce forum) :mrgreen:

Au cas où, je ne dis pas Resilio Sync est un mauvais produit ni que Syncthing est meilleur, ils proposent tous les 2 pratiquement les mêmes fonctions. Je suis dans l'optique d'un système 100% auto-géré/hébergé.

Lien vers le commentaire
Partager sur d’autres sites

J'ai exactement la même optique que toi concernant l'autonomie du système, la seule dépendance étant DNS (forcément). Par contre, je maintiens qu'il est possible de faire passer le trafic via internet sans tracker ni relay (il faut par contre modifier le comportement par défaut, et personne ne le fait).

Lien vers le commentaire
Partager sur d’autres sites

Si c'est bien le cas, il ne reste que 2 différences entre les produits (enfin de ce que j'en ai vu) :

  • la licence : MPL vs propriétaire
  • le chiffrement des données : c'est payant dans Resilio et ça devrait arriver dans Syncthing (mais quand ?, 1semaine, 1mois, 1an ... :mrgreen:)
Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.