Syncthing est un programme gratuit et open source permettant de synchroniser des fichiers entre des appareils à partir d'un réseau local ou d'appareils distants via Internet. Il utilise une architecture peer-to-peer et la synchronisation continue des fichiers échange des données directement entre les appareils de manière entièrement automatisée.
Syncthing peut être utilisé pour synchroniser les fichiers et les répertoires en temps réel. Toutes les transmissions de données entre plusieurs appareils sont sécurisées et cryptées avec TLS.
Les fonctionnalités clés de Syncthing sont :
- Prise en charge de l'authentification LDAP.
- prise en charge de la synchronisation unidirectionnelle.
- Vitesse de synchronisation rapide.
- Utiliser à la fois la CLI et l'interface graphique
- Multiplateforme disponible sur :Linux, Android, Unix, Solaris, Windows et Mac OS X.
Dans ce tutoriel, nous apprenons à installer Syncthing sur Ubuntu 20.04 .
Prérequis
- Deux serveurs avec Ubuntu 20.04 installé.
- Utilisateur avec accès sudo et root.
- Deux adresses IP publiques configurées.
Installer Syncthing sur Ubuntu
Syncthing est disponible sur le dépôt officiel. Suivez les étapes d'installation pour ajouter le référentiel Syncthing et installez-le sur Ubuntu.
Tout d'abord, mettez à jour les packages système avec la commande suivante :
apt update
Installez toutes les dépendances avec la commande suivante :
apt-get install gnupg2 curl apt-transport-https
Ajoutez et téléchargez la clé de version :
curl -s https://syncthing.net/release-key.txt | apt-key add -
Ajoutez le référentiel Syncthing à APT avec la commande suivante :
echo "deb https://apt.syncthing.net/ syncthing release" > /etc/apt/sources.list.d/syncthing.list
Une fois cela fait, mettez à jour les packages système une fois de plus et installez Syncthing paquet :
apt-get update
apt-get install syncthing
Vérifiez l'installation en vérifiant la version de Syncthing :
syncthing --version
Sortie :
syncthing v1.18.1 "Fermium Flea" (go1.16.6 linux-amd64) [email protected] 2021-07-30 12:41:57 UTC [noupgrade]
Si vous obtenez une sortie similaire, alors Syncthing est installé avec succès.
REMARQUE : Vous devrez répéter ces mêmes étapes d'installation sur l'autre serveur.
Créer un fichier d'unité Systemd
L'étape suivante consiste à créer un fichier d'unité systemd, pour gérer le service Syncthing.
Créez un fichier dans /etc/systemd/system/ avec la commande suivante.
nano /etc/systemd/system/[email protected]
Ajoutez les lignes suivantes au fichier de configuration :
[Unit]
Description=Syncthing - Open Source Continuous File Synchronization for %I
Documentation=man:syncthing(1)
After=network.target
[Service]
User=%i
ExecStart=/usr/bin/syncthing -no-browser -gui-address="0.0.0.0:8384" -no-restart -logflags=0 Restart=on-failure
SuccessExitStatus=3 4
RestartForceExitStatus=3 4
[Install]
WantedBy=multi-user.target
Dans la partie [Service], à la ligne -gui-address="0.0.0.0:8384"
ajoutez votre adresse IP publique du premier serveur et laissez le même port 8384.
Enregistrez la configuration et fermez le fichier.
Rechargez maintenant le démon systemd pour appliquer la configuration :
systemctl daemon-reload
Une fois le démon rechargé, démarrez le service de synchronisation qui pointe vers votre utilisateur avec la commande suivante.
systemctl start syncthing@yourUser
Vérifiez l'état du service Syncthing :
systemctl status syncthing@yourUser
Le service doit être actif (en cours d'exécution).
Le service Synchronisation écoute sur le port 8384, vous pouvez vérifier à l'aide de la commande ss.
ss -antpl | grep 8384
Sortie :
LISTEN 0 4096 45.79.208.51:8384 0.0.0.0:* users:(("syncthing",pid=13837,fd=20))
REMARQUE : Répétez ces mêmes étapes sur l'autre serveur.
Configuration de l'interface Web de Syncthing
Ouvrez votre navigateur Web et accédez à l'interface Web Syncthing avec les URL.
http://first-server-ip:8384
http://second-server-ip:8384
L'interface Web de Syncthing utilise le port 8384.
Après la connexion, vous devriez recevoir les messages suivants.
Ensuite, allez dans Actions > Paramètres > GUI pour configurer un nom d'utilisateur, un mot de passe et activez l'option "Utiliser HTTPS pour l'interface graphique".
Cliquez sur le bouton Enregistrer et vous serez redirigé vers la page de connexion Syncthing qui vous demandera de mettre de nouveaux identifiants pour vous connecter.
Après vous être connecté, comme vous pouvez le voir, la connexion est maintenant sécurisée avec HTTPS.
REMARQUE : Répétez et configurez ce processus également sur le deuxième serveur.
Connexion d'appareils
Pour la synchronisation des répertoires, nous devrons fusionner et connecter les ID de périphérique des deux serveurs, ajouter l'ID de périphérique de chaque serveur à un autre serveur pour synchroniser les fichiers.
Pour ce faire, allez dans Actions> Afficher l'ID sur les deux serveurs. Vous verrez l'identification de l'appareil et le code QR suivants.
Maintenant, allez sur le premier serveur Syncthing. En bas, où se trouve la section des appareils distants, cliquez sur le bouton +Ajouter un appareil distant.
Fournissez l'ID de périphérique de votre deuxième serveur et cliquez sur le bouton Enregistrer. Facultatif, peut également ajouter le nom de l'appareil, pour une vue plus claire.
Sur le deuxième serveur, répétez la même étape. Accédez à Ajouter un appareil distant.
Et ajoutez l'ID de l'appareil du premier serveur et cliquez sur Enregistrer bouton.
Will voit des deux côtés que les appareils sont maintenant connectés.
Synchroniser les répertoires
Une fois l'appairage réussi des appareils distants, recherchez la section Dossiers et cliquez sur le bouton + Ajouter un dossier. Vous devriez voir la nouvelle fenêtre suivante.
Indiquez le nom de votre dossier de sauvegarde dans l'étiquette du dossier dans la section générale. Ensuite, allez dans la section Partage de carte et vous verrez l'écran suivant.
Cochez votre appareil pour partager ce dossier. Dans mon cas, le nom est server2 , et cliquez sur Enregistrer bouton.
Allez maintenant sur le deuxième serveur et cliquez sur le bouton Rescan All. Vous devriez voir l'écran suivant et un nouveau message contextuel pour ajouter ce nouveau dossier.
Cliquez sur le bouton Ajouter pour ajouter le dossier de sauvegarde partagé sur le premier serveur. Vous devriez maintenant voir l'écran suivant.
Peut voir maintenant que la sauvegarde des dossiers est synchronisée et à jour.
Chaque fois que vous créez ou modifiez des fichiers dans le dossier de sauvegarde sur le premier serveur, ils seront automatiquement synchronisés avec le second serveur, tous les nouveaux répertoires et fichiers de ce dossier de sauvegarde seront mis en miroir sur l'autre serveur.
Configurer les dossiers d'envoi uniquement et de réception uniquement
Une autre fonctionnalité intéressante de Syncthing est que vous pouvez configurer des serveurs jumelés pour envoyer et recevoir, ils peuvent également être spécifiés pour envoyer uniquement et recevoir uniquement.
Accédez à la section Dossiers> Choisissez le dossier de sauvegarde souhaité et cliquez sur le bouton Modifier, puis accédez à la carte de la section Avancé. Vous verrez l'image suivante.
Et choisissez Type de dossier pour Envoyer uniquement/Recevoir uniquement et cliquez sur le bouton Enregistrer.
Configurer des intervalles d'analyse ajustés
Si vous souhaitez libérer le processeur et que vous n'avez pas besoin de surveiller constamment les modifications de synchronisation, vous pouvez désactiver la surveillance des modifications et configurer manuellement le nombre de minutes, d'heures pendant lesquelles vous souhaitez synchroniser les modifications.
Vérification du service systemctl
Accédez au périphérique souhaité sur le serveur 1 ou le serveur 2 et vérifiez l'état du service systemctl pour voir comment cela fonctionne sur le backend avec la commande suivante.
sudo systemctl status syncthing@yourUser
Sortie.
● [email protected] - Syncthing - Open Source Continuous File Synchronization for linoxide
Loaded: loaded (/etc/systemd/system/[email protected]; disabled; vendor preset: enabled)
Active: active (running) since Wed 2021-08-25 13:46:53 UTC; 1h 4min ago
Docs: man:syncthing(1)
Main PID: 15543 (syncthing)
Tasks: 13 (limit: 1071)
Memory: 29.2M
CGroup: /system.slice/system-syncthing.slice/[email protected]
├─15543 /usr/bin/syncthing -no-browser -gui-address=45.79.208.51:8384 -no-restart -logflags=0
└─15548 /usr/bin/syncthing -no-browser -gui-address=45.79.208.51:8384 -no-restart -logflags=0
Aug 25 13:52:58 li1307-51 syncthing[15543]: [6TZM3] INFO: Device BPENPLJ-L65BS5D-5HN7UL5-RNI3DQR-YZOR2LB-YFW7BKF-6LMWFXV-A4E3RQY client is "syncthing v1.18.1>
Aug 25 13:52:58 li1307-51 syncthing[15543]: [6TZM3] INFO: Connection to BPENPLJ-L65BS5D-5HN7UL5-RNI3DQR-YZOR2LB-YFW7BKF-6LMWFXV-A4E3RQY at [2600:3c02::f03c:9>
Aug 25 13:53:12 li1307-51 syncthing[15543]: [6TZM3] INFO: Established secure connection to BPENPLJ-L65BS5D-5HN7UL5-RNI3DQR-YZOR2LB-YFW7BKF-6LMWFXV-A4E3RQY at>
Aug 25 13:53:12 li1307-51 syncthing[15543]: [6TZM3] INFO: Device BPENPLJ-L65BS5D-5HN7UL5-RNI3DQR-YZOR2LB-YFW7BKF-6LMWFXV-A4E3RQY client is "syncthing v1.18.1>
Aug 25 14:13:42 li1307-51 syncthing[15543]: [6TZM3] INFO: Adding folder "Backup" (svkz5-mdnbo)
Aug 25 14:13:42 li1307-51 syncthing[15543]: [6TZM3] INFO: No stored folder metadata for "svkz5-mdnbo"; recalculating
Aug 25 14:13:42 li1307-51 syncthing[15543]: [6TZM3] INFO: Ready to synchronize "Backup" (svkz5-mdnbo) (sendreceive)
Aug 25 14:13:42 li1307-51 syncthing[15543]: [6TZM3] INFO: Completed initial scan of sendreceive folder "Backup" (svkz5-mdnbo)
Conclusion
Dans ce tutoriel, nous avons appris à installer Syncthing pour synchroniser les répertoires sur Ubuntu 20.04. Vous pouvez utiliser et synchroniser plus de deux appareils et être à jour avec les répertoires sur toutes les machines.
Veuillez partager votre expérience avec Syncthing dans la section des commentaires.