Tropic Host

Syncthing: ما هو وكيفية إعداد مزامنة الملفات على خادم VPS

1 دقيقة للقراءة
Tropic
Syncthing: ما هو وكيفية إعداد مزامنة الملفات على خادم VPS

Syncthing: مزامنة الملفات بين الأجهزة من دون سحابة يملكها طرف آخر

تعدّل مستندًا على حاسوبك المحمول صباحًا ثم تطفئه. وفي المساء تفتح حاسوبك المنزلي، فتجد أحدث نسخة موجودة عليه بالفعل. لم تمرّ الملفّات عبر Google Drive أو Dropbox، بل استلمتها عقدة Syncthing الخاصة بك.

تزامن Syncthing المجلدات التي تختارها مباشرةً بين الأجهزة الموثوقة، مع إبقائك مسيطرًا على مكان تخزين البيانات. ولا يشترط وجود خادم مركزي.

لكن عندما يكون حاسوبان متصلين بالإنترنت في أوقات مختلفة غالبًا، يصبح تبادل التغييرات صعبًا. يحل خادم VPS المتاح دائمًا هذه المشكلة: فهو يستقبل الملفات من أحد الأجهزة ثم يمررها إلى جهاز آخر لاحقًا.

من المهم فهم الغرض الذي صُمم Syncthing من أجله. فهو ليس قرصًا شبكيًا ولا مدير ملفات يعمل من المتصفح، بل أداة لنسخ المجلدات المحددة تلقائيًا بين الأجهزة.

Syncthing في خمس خطوات

يبدو الإعداد الأساسي كما يلي:

  1. ثبّت Syncthing على الحواسيب المطلوبة.
  2. شغّل نسخة أخرى من Syncthing على خادم VPS.
  3. افتح لوحة الخادم عبر نفق SSH.
  4. تبادل معرّفات الأجهزة ووافق على الاتصال.
  5. أضف مجلدًا مشتركًا، واختر وضع المزامنة، وفعّل إصدارات الملفات.

ما هو Syncthing وكيف يعمل؟

Syncthing برنامج مجاني ومفتوح المصدر لمزامنة الملفات باستمرار. وهو يعمل على Windows وmacOS وLinux وغيرها من أنظمة تشغيل الحواسيب والخوادم.

يحصل كل تثبيت على معرّف جهاز فريد (Device ID)، وهو معرّف تشفيري. وقبل أن تتمكن عقدتان من تبادل البيانات، يجب أن تضيف كل منهما الأخرى وأن تمنح الوصول صراحةً إلى مجلد محدد. لا يوجد حساب Syncthing واحد يخزّن أجهزتك وملفاتك.

عند تغيّر ملف، يقسمه Syncthing إلى كتل، ويقارن قيم التحقق، ثم ينقل الأجزاء الناقصة فقط. لذلك لا يتطلب التعديل الصغير داخل ملف كبير بالضرورة إعادة إرسال الملف كاملًا.

تساعد خدمات الاكتشاف الأجهزة على العثور على بعضها، لكنها لا تخزّن الملفات. وإذا تعذر الاتصال المباشر، يمكن أن تمر البيانات المشفرة عبر مرحّل أبطأ.

ما الذي يغيّره خادم VPS؟

من دون خادم، يمكن للحاسوب المحمول مزامنة الملفات مباشرةً مع الحاسوب المنزلي، لكن يجب أن يكون الجهازان متصلين بالإنترنت في الوقت نفسه، ولو لفترة قصيرة. يحوّل خادم VPS الإعداد إلى نقطة تبادل متاحة دائمًا.

على سبيل المثال، يرفع حاسوبك المحمول مشروعًا إلى الخادم صباحًا ثم ينطفئ. وفي المساء ينزّل حاسوبك المنزلي النسخة الجديدة من خادم VPS.

يعمل Syncthing جيدًا مع المستندات وملاحظات Obsidian وشفرة المصدر والصور ومجلدات العائلة. من الأفضل استبعاد ذاكرات التخزين المؤقت ومجلدات node_modules ومخرجات البناء باستخدام .stignore. ولا ينبغي مزامنة قواعد البيانات النشطة وصور الأجهزة الافتراضية.

ينشئ خادم VPS أيضًا نسخة من بياناتك خارج المنزل. لكن هذه النسخة لا تصبح نسخة احتياطية حقيقية إلا عند دمجها مع إصدارات الملفات وأرشيف احتياطي منفصل؛ إذ يمكن أن ينتشر الحذف غير المقصود إلى كل جهاز.

Syncthing أم Nextcloud: أيهما تختار؟

غالبًا ما تتم مقارنة الأداتين، مع أنهما تحلان مشكلتين مختلفتين.

المعيارSyncthingNextcloud
النموذجتُنسخ المجلدات بين الأجهزةتُخزّن الملفات على خادم مركزي
هل الخادم مطلوب؟لا، خادم VPS اختيارينعم
الوصول إلى الملفات عبر المتصفحلا يوفر قرصًا ويب كامل الوظائفنعم
الروابط العامةلانعم
التحرير التعاونيغير متوفريمكن إضافته
أفضل حالة استخدامإبقاء المجلدات نفسها على أجهزتكسحابة شخصية أو لفريق

اختر Syncthing للمزامنة الخلفية غير المزعجة. واختر Nextcloud إذا كنت تحتاج إلى الوصول عبر الويب، وروابط قابلة للمشاركة، وحسابات مستخدمين، وتقويم، وميزات للتعاون.

كيفية تثبيت 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.

شغّل الحاوية:

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 للعامة. وعادةً لا يكون منفذ الاكتشاف المحلي 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 واضبط اسم مستخدم وكلمة مرور. وإذا أردت لاحقًا الوصول إلى لوحة التحكم عبر نطاق، فضعها خلف وكيل عكسي يعمل عبر HTTPS، مع إبقاء المصادقة مفعلة.

5. إضافة الأجهزة ومجلد

ثبّت Syncthing على حاسوبك، ثم اتبع الخطوات التالية:

  1. على الحاسوب وخادم VPS، اختر Actions → Show ID.
  2. أضف معرّف الجهاز في كل عقدة إلى العقدة الأخرى.
  3. على الحاسوب، انقر على Add Folder، واختر مجلدًا، ثم شاركه مع الخادم.
  4. على خادم VPS، اقبل المجلد واختر مسارًا مثل /var/syncthing/Files.

اترك وضع Send & Receive مفعّلًا على الحواسيب للمزامنة ثنائية الاتجاه. وعلى خادم VPS، يكون وضع Receive Only مناسبًا غالبًا: إذ يواصل الخادم استقبال التغييرات وتمريرها بين العقد، لكن التعديلات المحلية غير المقصودة التي تُجرى مباشرةً على الخادم لن تنتشر إلى الشبكة بأكملها.

لماذا لا يحل Syncthing محل النسخ الاحتياطي؟

إذا حُذف ملف أو شُفّر على أحد الأجهزة، فقد ينتشر هذا التغيير إلى الأجهزة الأخرى. لذلك افتح إعدادات المجلد على خادم VPS وفعّل File Versioning.

خيار عملي هو Staggered File Versioning مع فترة احتفاظ تبلغ 30–90 يومًا. عندما تستبدل عقدة بعيدة ملفًا أو تحذفه، تُنقل النسخة السابقة إلى .stversions. وتستهلك النسخ الأقدم مساحة على القرص، لذا حدّد مدة أو حدًا للاحتفاظ بها.

يتكون الإعداد الموثوق من ثلاث طبقات:

  1. يحافظ Syncthing على تحديث نسخ العمل.
  2. تساعد الإصدارات على التراجع عن بعض الأخطاء.
  3. تُخزّن نسخة احتياطية مجدولة ومنفصلة عن Syncthing.

هل يستطيع خادم VPS تخزين الملفات من دون رؤية محتواها؟

يتضمن Syncthing وضع الجهاز غير الموثوق. عيّن كلمة مرور للمجلد على الحاسوب الرئيسي واختر Receive Encrypted على خادم VPS. يخزّن الخادم البيانات مشفرة، ويمكنه تمريرها إلى جهاز موثوق آخر يستخدم كلمة المرور نفسها.

يُخفى المحتوى وأسماء الملفات والطوابع الزمنية وبنية المجلدات. لكن تظل معلومات المجلد المشترك والأحجام التقريبية للملفات ظاهرة.

لا يزال المطورون يعتبرون هذه الميزة تجريبية. خزّن كلمة المرور ومعرّف المجلد (Folder ID) بشكل منفصل؛ فمن دونهما قد يصبح استرداد المجلد المشفر مستحيلًا.

ما نوع خادم VPS الذي يحتاج إليه Syncthing؟

لا يعتمد استهلاك الموارد على حجم البيانات فحسب، بل يعتمد أيضًا على عدد الملفات ومعدل تغيّرها وعملية الفهرسة الأولية. بالنسبة إلى عقدة شخصية تحتوي على مستندات وبضعة عشرات من الجيجابايت، يكون الإعداد المبدئي التالي كافيًا عادةً:

  • وحدة vCPU واحدة؛
  • ذاكرة RAM بسعة 1 GB؛
  • مساحة تخزين SSD أو NVMe؛
  • مساحة قرص كافية للملفات ومجلد .stversions؛
  • اتصال شبكة مستقر.

ستحتاج مكتبة صور كبيرة أو مئات الآلاف من الملفات إلى موارد أكبر. ويحدث أعلى حمل عادةً أثناء الفحص الأول وحساب قيم التحقق.

يناسب خادم Ubuntu VPS الأساسي من tropic.host هذه المهمة. يمكنك البدء بإعداد صغير ثم زيادة الموارد مع نمو مجموعتك. وعند اختيار سعة القرص، لا تحسب المجلدات الحالية فقط، بل اترك مساحة للملفات المستقبلية والبيانات المؤقتة وسجل الإصدارات.

خمسة أخطاء ينبغي تجنبها

  • إتاحة المنفذ 8384 على كامل الإنترنت. استخدم نفق SSH للإعداد. وللوصول الدائم عبر الويب، استخدم HTTPS وكلمة مرور ووكيلًا عكسيًا.
  • اعتبار نسخة الخادم نسخة احتياطية كاملة. فعّل الإصدارات وأنشئ أرشيفات احتياطية منفصلة.
  • مزامنة ذاكرات التخزين المؤقت والاعتماديات. استبعد المجلدات غير الضرورية باستخدام .stignore.
  • تجاهل استخدام القرص. يمكن أن ينمو مجلد .stversions بدرجة كبيرة بمرور الوقت.
  • ترك جهاز مفقود موثوقًا به. أزله من العقد الأخرى واحمِ إعداد Syncthing الذي يحتوي على مفاتيح الجهاز.

ما الذي ينبغي معرفته عن الهواتف الذكية؟

أُوقف تطبيق Android الرسمي في نهاية عام 2024، لكن توجد عملاء مجتمعيون متاحون. ولا يوجد عميل رسمي لنظام iOS أيضًا؛ إذ تجعل قيود التشغيل في الخلفية المزامنة المستمرة صعبة. وقبل ربط مكتبة الصور الرئيسية، اختبر تطبيق الهاتف الذي اخترته باستخدام مجلد صغير.

الخلاصة

يناسب Syncthing من يريد الاحتفاظ بالمجلدات نفسها على عدة أجهزة دون الاعتماد على وسيط سحابي إلزامي. ويجعل خادم VPS النظام أكثر ملاءمة: فلا تعود الحواسيب مضطرة إلى الاتصال في الوقت نفسه، كما تحصل على نسخة متاحة دائمًا خارج منزلك.

ولإعداد آمن، لا تعرض لوحة الإدارة مباشرةً على الإنترنت، وفعّل إصدارات الملفات، وأكمل المزامنة بنسخة احتياطية مستقلة.

الأسئلة الشائعة

هل أحتاج إلى خادم VPS لاستخدام Syncthing؟

لا. يمكن للأجهزة المزامنة مباشرةً. يعمل خادم VPS كعقدة متاحة دائمًا، ويسمح للأجهزة بتبادل التغييرات في أوقات مختلفة.

هل يمكنني فتح ملفات Syncthing في المتصفح؟

لوحة الويب مخصصة للإعداد، وليست لتصفح المستندات مثل Google Drive. ويكون Nextcloud خيارًا أفضل إذا كنت تحتاج إلى قرص ويب.

هل Syncthing حل للنسخ الاحتياطي؟

لا. يمكن أن تنتشر عمليات الحذف والتلف إلى الأجهزة الأخرى. تساعد الإصدارات، لكنها لا تستبدل نسخة احتياطية مستقلة.

هل أحتاج إلى فتح المنفذ 8384؟

لا. أبقِ لوحة التحكم على 127.0.0.1:8384 واتصل بها عبر نفق SSH. وافتح 22000/TCP و22000/UDP للمزامنة.

هل يستطيع مالك خادم VPS قراءة الملفات؟

في الإعداد القياسي، قد يستطيع ذلك. يخزّن خيار Receive Encrypted الملفات بصيغة مشفرة، لكن هذه الميزة لا تزال تجريبية، ولذلك يجب الاحتفاظ بكلمة المرور ومعرّف المجلد في مكان آمن.