Tropic Host

Syncthing: τι είναι και πώς να ρυθμίσετε τον συγχρονισμό αρχείων σε VPS

7 ελάχιστη ανάγνωση
Tropic
Syncthing: τι είναι και πώς να ρυθμίσετε τον συγχρονισμό αρχείων σε VPS

Language: el

Syncthing: συγχρονισμός αρχείων μεταξύ συσκευών χωρίς το cloud κάποιου άλλου

Το πρωί επεξεργάζεστε ένα έγγραφο στον φορητό υπολογιστή και τον απενεργοποιείτε. Το βράδυ ανοίγετε τον υπολογιστή του σπιτιού και η πιο πρόσφατη έκδοση βρίσκεται ήδη εκεί. Το αρχείο δεν πέρασε από το Google Drive ή το Dropbox: παραλήφθηκε από τον δικό σας κόμβο Syncthing.

Το Syncthing συγχρονίζει απευθείας επιλεγμένους φακέλους μεταξύ αξιόπιστων συσκευών, ενώ εσείς διατηρείτε τον έλεγχο του σημείου όπου αποθηκεύονται τα δεδομένα. Ένας κεντρικός διακομιστής είναι προαιρετικός.

Ωστόσο, όταν δύο υπολογιστές σπάνια βρίσκονται online ταυτόχρονα, η ανταλλαγή αλλαγών γίνεται δύσκολη. Ένα VPS που λειτουργεί συνεχώς λύνει το πρόβλημα: λαμβάνει αρχεία από τη μία συσκευή και αργότερα τα προωθεί σε μια άλλη.

Είναι σημαντικό να κατανοήσετε για ποιο σκοπό σχεδιάστηκε το Syncthing. Δεν είναι δικτυακός δίσκος ούτε διαχειριστής αρχείων σε browser, αλλά εργαλείο αυτόματης αναπαραγωγής επιλεγμένων φακέλων.

Το Syncthing σε πέντε βήματα

Η ελάχιστη εγκατάσταση έχει την εξής μορφή:

  1. Εγκαταστήστε το Syncthing στους υπολογιστές που χρειάζεστε.
  2. Εκτελέστε άλλη μία παρουσία Syncthing σε VPS.
  3. Ανοίξτε τον πίνακα ελέγχου του διακομιστή μέσω σήραγγας SSH.
  4. Ανταλλάξτε τα αναγνωριστικά των συσκευών και εγκρίνετε τη σύνδεση.
  5. Προσθέστε έναν κοινόχρηστο φάκελο, επιλέξτε λειτουργία συγχρονισμού και ενεργοποιήστε την έκδοση αρχείων.

Τι είναι το Syncthing και πώς λειτουργεί

Το Syncthing είναι δωρεάν λογισμικό ανοιχτού κώδικα για συνεχή συγχρονισμό αρχείων. Λειτουργεί σε Windows, macOS, Linux και άλλα λειτουργικά συστήματα desktop και server.

Κάθε εγκατάσταση λαμβάνει ένα μοναδικό Device ID, δηλαδή ένα κρυπτογραφικό αναγνωριστικό. Πριν μπορέσουν δύο κόμβοι να ανταλλάξουν δεδομένα, πρέπει να προσθέσετε ο ένας τον άλλον και να παραχωρήσετε ρητά πρόσβαση σε συγκεκριμένο φάκελο. Δεν υπάρχει ένας ενιαίος λογαριασμός Syncthing που αποθηκεύει τις συσκευές και τα αρχεία σας.

Όταν αλλάζει ένα αρχείο, το Syncthing το χωρίζει σε μπλοκ, συγκρίνει checksums και μεταφέρει μόνο τα τμήματα που λείπουν. Έτσι, μια μικρή αλλαγή μέσα σε ένα μεγάλο αρχείο δεν απαιτεί πάντα την επανεκπομπή ολόκληρου του αρχείου.

Οι υπηρεσίες discovery βοηθούν τις συσκευές να εντοπίζουν η μία την άλλη, αλλά δεν αποθηκεύουν αρχεία. Αν η απευθείας σύνδεση είναι αδύνατη, η κρυπτογραφημένη κίνηση μπορεί να περάσει από πιο αργό relay.

Τι αλλάζει ένα VPS

Χωρίς διακομιστή, ένας φορητός υπολογιστής μπορεί να συγχρονιστεί απευθείας με τον υπολογιστή του σπιτιού, αλλά και οι δύο συσκευές πρέπει να είναι online ταυτόχρονα, έστω και για λίγο. Ένα VPS μετατρέπει τη ρύθμιση σε ένα σημείο ανταλλαγής που είναι πάντα διαθέσιμο.

Για παράδειγμα, το πρωί ο φορητός υπολογιστής ανεβάζει ένα project στον διακομιστή και μετά κλείνει. Το βράδυ, ο υπολογιστής του σπιτιού κατεβάζει τη νέα έκδοση από το VPS.

Το Syncthing λειτουργεί καλά για έγγραφα, σημειώσεις Obsidian, πηγαίο κώδικα, φωτογραφίες και οικογενειακούς φακέλους. Οι cache, το node_modules και τα αρχεία build καλό είναι να εξαιρούνται με το .stignore. Ενεργές βάσεις δεδομένων και εικόνες εικονικών μηχανών δεν πρέπει να συγχρονίζονται.

Ένα VPS δημιουργεί επίσης ένα αντίγραφο των δεδομένων σας εκτός σπιτιού. Ωστόσο, αυτό το αντίγραφο γίνεται πραγματικό backup μόνο όταν συνδυάζεται με versioning και ξεχωριστό αρχείο backup: μια κατά λάθος διαγραφή μπορεί να μεταδοθεί και σε κάθε συσκευή.

Syncthing ή Nextcloud: ποιο να επιλέξετε;

Τα δύο εργαλεία συγκρίνονται συχνά, παρότι λύνουν διαφορετικά προβλήματα.

ΚριτήριοSyncthingNextcloud
ΜοντέλοΟι φάκελοι αντιγράφονται μεταξύ συσκευώνΤα αρχεία αποθηκεύονται σε κεντρικό διακομιστή
Απαιτείται διακομιστήςΌχι, το VPS είναι προαιρετικόΝαι
Πρόσβαση σε αρχεία από browserΌχι πλήρης web μονάδα δίσκουΝαι
Δημόσιοι σύνδεσμοιΌχιΝαι
Συνεργατική επεξεργασίαΔεν παρέχεταιΜπορεί να προστεθεί
Καλύτερη χρήσηΔιατήρηση των ίδιων φακέλων στις δικές σας συσκευέςΠροσωπικό ή ομαδικό cloud

Επιλέξτε Syncthing για διακριτικό συγχρονισμό στο παρασκήνιο. Επιλέξτε Nextcloud όταν χρειάζεστε πρόσβαση από browser, κοινόχρηστους συνδέσμους, λογαριασμούς χρηστών, ημερολόγιο και δυνατότητες συνεργασίας.

Πώς να εγκαταστήσετε το Syncthing σε VPS με Docker Compose

Τα παρακάτω βήματα αφορούν VPS με Ubuntu 24.04. Ο πίνακας ελέγχου θα παραμείνει συνδεδεμένος στην τοπική διεύθυνση του διακομιστή και θα συνδεθείτε σε αυτόν μέσω σήραγγας SSH.

1. Εγκαταστήστε το Docker

sudo apt update
sudo apt install -y docker.io docker-compose-v2
sudo systemctl enable --now docker

2. Δημιουργήστε τον φάκελο και το αρχείο Compose

sudo mkdir -p /opt/syncthing/data
sudo chown -R 1000:1000 /opt/syncthing/data
cd /opt/syncthing
sudo nano compose.yaml

Επικολλήστε τα εξής:

services:
  syncthing:
    image: syncthing/syncthing:latest
    container_name: syncthing
    hostname: syncthing-vps
    environment:
      - PUID=1000
      - PGID=1000
      - STGUIADDRESS=
    volumes:
      - ./data:/var/syncthing
    network_mode: host
    restart: unless-stopped

Αυτή η διαμόρφωση χρησιμοποιεί την επίσημη εικόνα Syncthing. Η λειτουργία δικτύου host διευκολύνει τις απευθείας συνδέσεις, ενώ η κενή τιμή STGUIADDRESS διατηρεί τον πίνακα ελέγχου στη διεύθυνση 127.0.0.1:8384.

Εκκινήστε το container:

sudo docker compose up -d
sudo docker compose ps

3. Επιτρέψτε τις συνδέσεις συγχρονισμού

Αρχικά επιτρέψτε το SSH, ώστε να μην αποκλείσετε την πρόσβασή σας:

sudo ufw allow OpenSSH
sudo ufw allow 22000/tcp
sudo ufw allow 22000/udp
sudo ufw enable

Το 22000/TCP χρησιμοποιείται από το κύριο πρωτόκολλο συγχρονισμού, ενώ το 22000/UDP χρησιμοποιείται για QUIC. Δεν χρειάζεται να εκθέσετε τη θύρα του πίνακα ελέγχου 8384. Η θύρα τοπικού discovery 21027/UDP συνήθως δεν χρειάζεται σε δημόσιο VPS.

4. Ανοίξτε τον πίνακα ελέγχου μέσω SSH

Εκτελέστε την παρακάτω εντολή στον υπολογιστή σας:

ssh -L 9999:127.0.0.1:8384 root@SERVER_IP

Κρατήστε το τερματικό ανοιχτό και επισκεφθείτε:

http://127.0.0.1:9999

Αφού ανοίξετε τον πίνακα ελέγχου, μεταβείτε στο Actions → Settings → GUI και ορίστε όνομα χρήστη και κωδικό πρόσβασης. Αν αργότερα θέλετε να έχετε πρόσβαση μέσω domain, τοποθετήστε τον πίσω από reverse proxy με HTTPS και διατηρήστε ενεργή την autenticação.

5. Προσθέστε συσκευές και έναν φάκελο

Εγκαταστήστε το Syncthing στον υπολογιστή σας και στη συνέχεια:

  1. Στον υπολογιστή και στο VPS, επιλέξτε Actions → Show ID.
  2. Προσθέστε το Device ID κάθε κόμβου στην άλλη συσκευή.
  3. Στον υπολογιστή, πατήστε Add Folder, επιλέξτε έναν κατάλογο και μοιραστείτε τον με τον διακομιστή.
  4. Στο VPS, αποδεχτείτε τον φάκελο και επιλέξτε μια διαδρομή όπως /var/syncthing/Files.

Αφήστε ενεργό το Send & Receive στους υπολογιστές για αμφίδρομο συγχρονισμό. Στο VPS, το Receive Only είναι συχνά βολικό: ο διακομιστής συνεχίζει να λαμβάνει και να προωθεί αλλαγές μεταξύ κόμβων, αλλά οι κατά λάθος τοπικές αλλαγές απευθείας στο VPS δεν θα διαδοθούν σε ολόκληρο το δίκτυο.

Γιατί το Syncthing δεν αντικαθιστά το backup

Αν ένα αρχείο διαγραφεί ή κρυπτογραφηθεί σε μία συσκευή, η αλλαγή μπορεί να μεταδοθεί στις υπόλοιπες. Για αυτόν τον λόγο, ανοίξτε τις ρυθμίσεις του φακέλου στο VPS και ενεργοποιήστε το File Versioning.

Μια πρακτική επιλογή είναι το Staggered File Versioning με περίοδο διατήρησης 30–90 ημερών. Όταν ένας απομακρυσμένος κόμβος αντικαταστήσει ή διαγράψει ένα αρχείο, η προηγούμενη έκδοση μεταφέρεται στο .stversions. Τα παλιά αντίγραφα καταναλώνουν χώρο, επομένως ορίστε όριο διατήρησης.

Μια αξιόπιστη εγκατάσταση έχει τρία επίπεδα:

  1. Το Syncthing διατηρεί ενημερωμένα τα αντίγραφα εργασίας.
  2. Το versioning βοηθά στην αναίρεση ορισμένων λαθών.
  3. Ένα ξεχωριστό προγραμματισμένο backup αποθηκεύεται ανεξάρτητα από το Syncthing.

Μπορεί ένα VPS να αποθηκεύει αρχεία χωρίς να βλέπει το περιεχόμενό τους;

Το Syncthing περιλαμβάνει λειτουργία μη αξιόπιστης συσκευής. Ορίστε κωδικό για τον φάκελο στον κύριο υπολογιστή και επιλέξτε Receive Encrypted στο VPS. Ο διακομιστής αποθηκεύει κρυπτογραφημένα δεδομένα και μπορεί να τα προωθήσει σε άλλη αξιόπιστη συσκευή που χρησιμοποιεί τον ίδιο κωδικό.

Το περιεχόμενο, τα ονόματα αρχείων, οι χρονικές σημάνσεις και η δομή των καταλόγων παραμένουν κρυφά. Οι πληροφορίες για τον κοινόχρηστο φάκελο και τα κατά προσέγγιση μεγέθη αρχείων παραμένουν ορατές.

Οι προγραμματιστές εξακολουθούν να θεωρούν αυτή τη λειτουργία πειραματική. Αποθηκεύστε τον κωδικό και το Folder ID ξεχωριστά: χωρίς αυτά, η ανάκτηση του κρυπτογραφημένου φακέλου μπορεί να είναι αδύνατη.

Τι VPS χρειάζεται το Syncthing;

Η χρήση πόρων εξαρτάται όχι μόνο από τον όγκο των δεδομένων, αλλά και από τον αριθμό των αρχείων, τη συχνότητα των αλλαγών και την αρχική διαδικασία ευρετηρίασης. Για έναν προσωπικό κόμβο με έγγραφα και μερικές δεκάδες gigabyte δεδομένων, συνήθως αρκεί η εξής αρχική διαμόρφωση:

  • 1 vCPU·
  • 1 GB RAM·
  • αποθήκευση SSD ή NVMe·
  • αρκετός χώρος για τα αρχεία και το .stversions·
  • σταθερή σύνδεση δικτύου.

Μια μεγάλη βιβλιοθήκη φωτογραφιών ή εκατοντάδες χιλιάδες αρχεία θα απαιτήσουν περισσότερους πόρους. Το μεγαλύτερο φορτίο παρουσιάζεται συνήθως κατά την πρώτη σάρωση και τον υπολογισμό των checksums.

Ένα βασικό Ubuntu VPS από την tropic.host είναι κατάλληλο για αυτή την εργασία. Μπορείτε να ξεκινήσετε με μικρή διαμόρφωση και να αυξήσετε τους πόρους καθώς μεγαλώνει η συλλογή σας. Όταν επιλέγετε χωρητικότητα δίσκου, υπολογίστε όχι μόνο τους τρέχοντες φακέλους, αλλά και μελλοντικά αρχεία, προσωρινά δεδομένα και το ιστορικό εκδόσεων.

Πέντε λάθη που πρέπει να αποφύγετε

  • Έκθεση της θύρας 8384 σε ολόκληρο το internet. Χρησιμοποιήστε σήραγγα SSH για τη ρύθμιση. Για μόνιμη web πρόσβαση, χρησιμοποιήστε HTTPS, κωδικό και reverse proxy.
  • Αντιμετώπιση του αντιγράφου στον διακομιστή ως πλήρους backup. Ενεργοποιήστε το versioning και δημιουργήστε ξεχωριστές αρχειοθήκες backup.
  • Συγχρονισμός cache και εξαρτήσεων. Εξαιρέστε περιττούς καταλόγους με .stignore.
  • Αγνόηση της χρήσης δίσκου. Ο κατάλογος .stversions μπορεί να μεγαλώσει σημαντικά με τον χρόνο.
  • Διατήρηση χαμένης συσκευής ως αξιόπιστης. Αφαιρέστε την από τους άλλους κόμβους και προστατεύστε τη διαμόρφωση Syncthing που περιέχει τα κλειδιά των συσκευών.

Τι πρέπει να γνωρίζετε για τα smartphone

Η επίσημη εφαρμογή Android διακόπηκε στο τέλος του 2024, όμως υπάρχουν clients από την κοινότητα. Δεν υπάρχει επίσης επίσημος client για iOS: οι περιορισμοί εκτέλεσης στο παρασκήνιο δυσκολεύουν τον συνεχή συγχρονισμό. Πριν συνδέσετε την κύρια βιβλιοθήκη φωτογραφιών, δοκιμάστε την επιλεγμένη εφαρμογή κινητού με έναν μικρό φάκελο.

Συμπέρασμα

Το Syncthing είναι κατάλληλο για όποιον θέλει τους ίδιους φακέλους σε πολλές συσκευές χωρίς να βασίζεται σε υποχρεωτικό ενδιάμεσο cloud. Ένα VPS κάνει το σύστημα πιο πρακτικό: οι υπολογιστές δεν χρειάζεται πλέον να είναι online ταυτόχρονα και αποκτάτε ένα πάντα διαθέσιμο αντίγραφο εκτός σπιτιού.

Για ασφαλή εγκατάσταση, μην εκθέτετε απευθείας τον πίνακα διαχείρισης, ενεργοποιήστε το versioning και συμπληρώστε τον συγχρονισμό με ανεξάρτητο backup.

FAQ

Χρειάζομαι VPS για το Syncthing;

Όχι. Οι συσκευές μπορούν να συγχρονίζονται απευθείας. Ένα VPS λειτουργεί ως κόμβος που είναι πάντα ενεργός και τους επιτρέπει να ανταλλάσσουν αλλαγές σε διαφορετικές χρονικές στιγμές.

Μπορώ να ανοίξω αρχεία του Syncthing σε browser;

Ο web πίνακας ελέγχου προορίζεται για τη διαμόρφωση, όχι για περιήγηση σε έγγραφα όπως στο Google Drive. Το Nextcloud είναι καλύτερη επιλογή αν χρειάζεστε web drive.

Είναι το Syncthing λύση backup;

Όχι. Οι διαγραφές και η καταστροφή αρχείων μπορούν να μεταδοθούν σε άλλες συσκευές. Το versioning βοηθά, αλλά δεν αντικαθιστά ένα ανεξάρτητο backup.

Χρειάζεται να ανοίξω τη θύρα 8384;

Όχι. Κρατήστε τον πίνακα ελέγχου στη διεύθυνση 127.0.0.1:8384 και συνδεθείτε μέσω σήραγγας SSH. Ανοίξτε τις 22000/TCP και 22000/UDP για τον συγχρονισμό.

Μπορεί ο ιδιοκτήτης του VPS να διαβάσει τα αρχεία;

Σε μια τυπική εγκατάσταση, ενδεχομένως ναι. Το Receive Encrypted τα αποθηκεύει κρυπτογραφημένα, όμως η λειτουργία θεωρείται ακόμη πειραματική και πρέπει να διατηρείτε με ασφάλεια τον κωδικό και το Folder ID.