Comment installer Syncthing sur un VPS - Guide étape par étape
VPSNetcupInstallation ServeurHébergement WebConfiguration ServeurGuide Étape par ÉtapeServeurs Virtuels PrivésNetcup VPSContaboContabo VPSSyncthingSyncthing VPS
Installer un VPS
Une fois votre compte activé, votre VPS acheté, vous allez recevoir un mot de passe Root et une adresse ip.
ssh root@46.38.250.99
Optionnel :
Sur cloudflare ça donne ça :

ssh root@sync.andy-cinquin.fr

Update et upgrade les dépendances
apt update && apt upgrade
apt install sudo ufw tmux git vim fish -y
- sudo pour la configuration future de notre utilisateur
- ufw pour le pare-feu
- tmux pour un petit outil qui permet d'avoir plusieurs fenetre dans le même terminal & récupérer sa session
- git pour la gestion de nos projets et l'installation d'autres outils
- vim pour un éditeur de texte (autre que nano, j'aime pas nano)
- fish pour un terminal avec de l'autocomplétion et des couleurs
Si votre langue n'est pas la bonne (optionnel)
On execute les commandes suivantes :
-
D'abord, générons la locale en_US.UTF-8 :
locale-gen en_US.UTF-8
-
Maintenant, éditons le fichier de configuration des locales :
nano /etc/default/locale
Assurez-vous qu'il ne contient que ces lignes :
LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8
Sauvegardez et quittez le fichier.
-
Régénérons toutes les locales :
locale-gen --purge
-
Mettons à jour les locales :
update-locale LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8
-
Pour appliquer ces changements, redémarrez le système :
reboot
Installation d'un nouvel utilisateur et configuration de base
1. Création d'un nouvel utilisateur
- Créer un nouvel utilisateur avec un répertoire personnel et le shell fish
useradd andy -m -s /bin/fish
- Ajouter l'utilisateur au groupe sudo
usermod -aG sudo andy
- Définir un mot de passe pour le nouvel utilisateur
passwd andy
exit
(plusieurs fois)
2. Configuration de la clé SSH
Générer une clé SSH (si vous n'en avez pas)
ssh-keygen
Ajouter la clé SSH au serveur
su - andy
- Créer le répertoire .ssh
cd /home/andy/
mkdir .ssh
- Éditer le fichier authorized_keys
vim /home/andy/.ssh/authorized_keys
:x!
)~/.ssh/id_rsa.pub
sur votre machine locale) dans ce fichier.(le
~
) correspond au répertoire utilisateur de votre machine sur windows ça sera donc surement C://users/andy/.ssh
quelque chose dans le genreDe toute façon si dans votre terminal de votre propre machine vous taper "
cd ~/.ssh/
" , vous trouverez l'endroit que vous recherchez (le fichier est cacher il faut potentiellement cocher la case qui permet de le voir sur windows / linux )Configurer les permissions
cd /home/andy
chown andy:andy .ssh/ -R
chmod 700 .ssh/
chmod 600 .ssh/authorized_keys
3. Configuration de SSH
sudo vim /etc/ssh/sshd_config
PubkeyAuthentication yes
PasswordAuthentication no
PermitRootLogin no
AuthorizedKeysFile .ssh/authorized_keys
4. Configuration du pare-feu UFW
sudo ufw allow 53
sudo ufw allow 443
sudo ufw allow 22
sudo ufw enable
5. Redémarrage du service SSH
Vérification
- Ouvrez une nouvelle session SSH et vérifiez que vous pouvez vous connecter avec votre clé.
- Vérifiez que vous ne pouvez pas vous connecter avec un mot de passe.
- Vérifiez que vous ne pouvez pas vous connecter en tant que root.
ssh andy@sync.andy-cinquin.fr
-> ça me connecte directement avec le bon utilisateur et directement sur ma machine
Notes de sécurité
- Gardez votre clé privée en sécurité sur votre machine locale.
- Mettez régulièrement à jour votre système et vos paquets.
- Surveillez les tentatives de connexion infructueuses dans les logs.
Etape 2. Installer syncthings et le configurer
1. Installation de Syncthing
ssh andy@sync.andy-cinquin.fr
2. Configuration du service Syncthing
[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 -no-restart -logflags=0
Restart=on-failure
RestartSec=5
SuccessExitStatus=3 4
RestartForceExitStatus=3 4
[Install]
WantedBy=multi-user.target
3. Activation et démarrage du service
4. Configuration du pare-feu
5. Accès à l'interface web via un tunnel SSH
ssh -L 8385:localhost:8384 andy@sync.andy-cinquin.fr
6. Accès à l'interface web
http://localhost:8385
7. Configuration initiale de Syncthing
- Définissez un mot de passe pour l'interface web dans "Settings" > "GUI".
- Configurez les dossiers à synchroniser en cliquant sur "Add Folder".
- Pour connecter d'autres appareils, utilisez "Add Remote Device" et échangez les ID d'appareil.
8. Fermeture du tunnel SSH
pkill -f
Notes importantes
-
Assurez-vous que Syncthing n'écoute que sur localhost pour une meilleure sécurité. Vérifiez le fichier de configuration (
~/.config/syncthing/config.xml
) et assurez-vous que la section<gui>
contient<address>127.0.0.1:8384</address>
. -
Pour une utilisation régulière, vous pouvez créer un alias dans votre fichier
.bashrc
ou.zshrc
local :Ainsi, vous pourrez simplement taper
syncthing-remote
pour ouvrir le tunnel SSH.
Les conseils alternatifs
- Utilisation des introducteurs :
- Un introducteur est un appareil qui aide à établir une connexion entre deux autres appareils qui ne peuvent pas se connecter directement.
- Utilisez des introducteurs lorsque :
- Vos appareils sont derrière des NAT ou des pare-feu restrictifs.
- Vous avez un appareil toujours en ligne (comme un serveur) qui peut faciliter les connexions.
- Configurez votre serveur VPS comme introducteur pour vos autres appareils.
- N'utilisez pas plus d'introducteurs que nécessaire pour éviter la complexité.
- Gestion des dossiers :
- Utilisez des chemins absolus pour les dossiers partagés.
- Évitez de synchroniser des dossiers système ou des répertoires d'application.
- Utilisez des noms de dossiers descriptifs et cohérents sur tous les appareils.
- Considérez l'utilisation de dossiers en lecture seule pour les appareils moins sécurisés.
- Versions de fichiers :
- Activez le versionnement des fichiers pour pouvoir récupérer des versions antérieures en cas de besoin.
- Choisissez entre le versionnement simple, le versionnement par étiquette de temps, ou le versionnement externe selon vos besoins.
- Ignorer les fichiers :
- Utilisez des patterns d'ignore pour exclure les fichiers temporaires, les caches, et les fichiers système.
- Créez un fichier .stignore dans chaque dossier synchronisé pour une gestion fine des exclusions.
- Compression :
- Activez la compression pour les connexions lentes ou les gros fichiers.
- Désactivez-la si tous vos appareils sont sur un réseau local rapide.
- Limites de bande passante :
- Configurez des limites de bande passante pour éviter de saturer votre connexion.
- Ajustez ces limites en fonction de vos besoins et de votre connexion Internet.
- Scan des dossiers :
- Ajustez l'intervalle de scan en fonction de la fréquence des changements dans vos dossiers.
- Utilisez la fonction de notification du système de fichiers (fsnotify) quand c'est possible.
- Sécurité :
- Utilisez HTTPS pour l'interface web de Syncthing.
- Activez l'authentification pour l'interface web.
- Utilisez des mots de passe forts pour tous les appareils.
- Limitez l'accès à l'interface web à localhost et utilisez un tunnel SSH pour y accéder à distance.
- Configuration des appareils :
- Donnez des noms descriptifs à vos appareils pour les identifier facilement.
- Utilisez des étiquettes pour grouper les appareils par fonction ou localisation.
- Relais et découverte :
- Utilisez les relais globaux uniquement si nécessaire pour la connexion.
- Configurez la découverte locale si tous vos appareils sont sur le même réseau.
- Notifications :
- Configurez des notifications pour être alerté des changements importants ou des problèmes de synchronisation.
- Sauvegarde de la configuration :
- Sauvegardez régulièrement votre configuration Syncthing (dossier .config/syncthing).
- Mise à jour :
- Gardez Syncthing à jour sur tous vos appareils pour bénéficier des dernières fonctionnalités et correctifs de sécurité.
- Monitoring :
- Utilisez l'onglet "Out of Sync Items" pour identifier et résoudre les problèmes de synchronisation.
- Vérifiez régulièrement les logs pour détecter d'éventuels problèmes.
🚀 Merci d'avoir lu jusqu'ici !
Si cet article vous a plu, partagez-le autour de vous.
💡 Une idée en tête ? Discutons-en !☕