استضافة خادم SimpleX للمحادثات على VPS
شغّل مرحّل SimpleX SMP على VPS مع تثبيت إصدار محدد، وبصمة يحتاجها العملاء، والمنافذ، ومستخدم خدمة بلا صلاحيات، والنسخ الاحتياطية وTLS ونموذج التهديد.
ما الذي يفعله خادم SimpleX للمحادثة المستضافة ذاتياً
لاستضافة خادم SimpleX بنفسك، شغّل daemon واحداً على VPS: smp-server، وهو relay لبروتوكول SMP (simplex messaging protocol). يحتفظ هذا الـrelay بقوائم انتظار الرسائل التي يكتب إليها جهات اتصالك ويقرأون منها. وهناك daemon اختياري ثانٍ يسمى xftp-server لترحيل عمليات نقل الملفات. يأتي كلاهما من المشروع نفسه، simplexmq، ويتكوّن كل منهما من binary واحد، وملف إعداد، وسجل لا تتم فيه الكتابة إلا بالإضافة.
هذا النص موجّه إلى المشغّل، وليس إلى مستخدم التطبيق. لا يحتفظ الـrelay بحسابات أو قوائم جهات اتصال أو سجل محادثات. بل يحتفظ بقوائم الانتظار، وبعض النصوص المشفّرة التي لم تُسلَّم، وشهادة تعرّفه. وما تتحمل مسؤوليته هو استمرارية التشغيل، ومساحة صغيرة على القرص، والبيانات الوصفية التي تمر عبر خادمك.
تأتي كل الأوامر والمسارات والمنافذ والخيارات أدناه من وثائق المشروع نفسه: صفحة استضافة خادم SMP، وصفحة خادم XFTP، ووثيقة أمان البروتوكول. وعندما يكون للرقم أهمية، نذكر الصفحة التي ورد فيها بجانبه.
لماذا تحتاج شبكة بلا معرّفات للمستخدمين إلى مرحّلات
لا تستخدم SimpleX أسماء مستخدمين أو أرقام هواتف أو معرّفات حسابات. جهة الاتصال هي قائمة انتظار أحادية الاتجاه: عنوان على مرحّل يكتب فيه أحد الطرفين ويقرأ منه الطرف الآخر. ولا تشترك أي جهتين من جهات اتصالك في معرّف يمكن لخادم استخدامه لربطهما.
مع ذلك، يجب أن توجد قوائم الانتظار هذه في مكان ما لسبب بسيط. نادراً ما يكون هاتفان متصلين بالإنترنت في الثانية نفسها. يجب أن يستقبل مكوّن ما الرسالة الآن ويحتفظ بها إلى أن يطلبها الجهاز الآخر. هذه هي المهمة الكاملة لمرحّل SMP. وهذا يعني أيضاً أن الجهازين لا يتصل أحدهما بالآخر مطلقاً، لذلك لا يعرف أيٌّ منهما عنوان IP الخاص بالجهاز الآخر. ويتولى المرحّل بدلاً منهما استيعاب هذا الانكشاف.
يُعد اسم المضيف الخاص بالمرحّل جزءاً من عنوان قائمة الانتظار، ولذلك يظهر في كل رابط دعوة توزّعه من خلاله. تذكّر ذلك عند قراءة نموذج التهديد قرب النهاية.
ما الذي يستطيع relay رؤيته وما لا يستطيع رؤيته
يحدّد المشروع ذلك كنموذج تهديد في protocol/security.md، ومن المفيد قراءة هذا النموذج قبل تثبيت أي شيء، لأن relay يصبح تابعاً لك بعد تنفيذ هذا الدليل. لا يستطيع relay، بما في ذلك relay الذي يتحكم فيه مهاجم بالكامل، معرفة محتوى الرسائل أو نوعها، أو إضافة رسائل فردية أو تكرارها أو إفسادها دون إمكانية اكتشاف ذلك، كما لا يستطيع كسر التشفير من طرف إلى طرف عبر هجوم نشط.
وتسرد الصفحة نفسها ما يستطيع relay فعله. يمكنه معرفة وقت اتصال مستلم queue بالإنترنت. ويمكنه حساب عدد الرسائل التي تمر عبر queue. ويمكنه معرفة عنوان IP الخاص بالمستلم. كما يمكنه إسقاط كل رسالة مستقبلية في queue، أو تقديم معلومات غير صحيحة عن حالة queue.
لذلك يكون التقسيم واضحاً. تقع مسؤولية السرية على العميل، ولا يؤثر الاستضافة الذاتية فيها. أما البيانات الوصفية والتوافر، فتقع مسؤوليتهما على مشغّل relay، والاستضافة الذاتية تسلّم كليهما إليك.
ما تحتاج إليه قبل البدء
- VPS يعمل بنظام Ubuntu 22.04 أو 24.04. ينشر المشروع ملفات الإصدار الثنائية المبنية لهذين الإصدارين تحديداً، على معماريتي x86-64 وaarch64.
- اسم نطاق يتضمن سجل A يشير إلى VPS، بالإضافة إلى سجل AAAA إذا كنت تستخدم IPv6. تستخدم الوثائق
smp1.example.comمثالاً. - وصول root أو وصول
sudo، مع إبقاء جلسة SSH ثانية مفتوحة أثناء تعديل جدار الحماية. - مكان خارج الخادم لتخزين نسخة احتياطية، لأن مجلد الإعدادات يمثّل هوية الخادم.
على مثيل ARM، استخدم ملف aarch64 بدلاً من x86-64. لا يتغير أي شيء آخر في هذا الدليل، والاختيار بين خطط VPS بمعمارية ARM وx86 يتعلق بالسعر وسرعة النواة الواحدة، وليس بما إذا كان هذا البرنامج سيعمل.
ثبّت إصداراً محدداً، وليس الإصدار "latest"
يوفّر المشروع سكربت تثبيت يجلب الإصدار الحالي ويسجّل الأمر simplex-servers-update. يعمل هذا السكربت، لكن ثبّت الإصدار بشكل محدد على أي حال: فالـrelay الذي تتغير ثنائيته دون علمك هو relay لا يمكنك تحليل سلوكه عند حدوث عطل.
اعتباراً من August 2026، الإصدار الحالي من simplexmq هو v6.5.0، وقد نُشر في 29 April 2026. تحقّق من صفحة الإصدارات لمعرفة الوسم الذي تريده، ثم استخدم هذا الوسم في كل المواضع أدناه.
sudo useradd -m smp
sudo install -d -o smp -g smp -m 755 /etc/opt/simplex /var/opt/simplexلا يضبط useradd -m smp أي كلمة مرور، لذلك لا يسجّل أحد الدخول مباشرةً باسم smp. أنشئ الدليلين بنفسك قبل تشغيل أي شيء آخر، لأن /etc/opt مملوك للحساب root وبصلاحية 755، ما يترك مستخدم smp بلا مكان لكتابة دليل الإعداد الخاص به.
VER=v6.5.0
curl -fL "https://github.com/simplex-chat/simplexmq/releases/download/$VER/smp-server-ubuntu-24_04-x86-64" -o /tmp/smp-server
sha256sum /tmp/smp-serverقارن قيمة التجزئة هذه بقيم SHA2-256 المنشورة في ملاحظات الإصدار للوسم نفسه. يوقّع المشروع أيضاً قيم تجزئة الإصدارات باستخدام مفتاح SimpleX Chat FB44AF81A45BDE327319797C85107E357D4A17FC، كما هو موثّق في صفحة الخادم، ولذلك يمكنك التحقق من التوقيع بدلاً من الوثوق بالصفحة التي حصلت منها على قيمة التجزئة.
sudo install -m 755 -o root -g root /tmp/smp-server /usr/local/bin/smp-serverثبّت الملف بحيث يكون مملوكاً للحساب root عمداً. تعمل الخدمة باسم smp، لذلك لا يستطيع اختراق الخدمة إعادة كتابة الثنائية التي تبدأ منها.
تهيئة الخادم والسرّين اللذين يطبعهما
sudo su smp -c "smp-server init --yes --store-log --daily-stats --no-password --fqdn=smp1.example.com"--store-log(-l) يكتب سجلاً للإضافة فقط بالطوابير إلى/var/opt/simplex/smp-server-store.log، لذلك تستمر خدمة الترحيل بعد إعادة التشغيل. من دونه، تؤدي إعادة التشغيل إلى حذف كل طابور، ما يعني أن كل جهة اتصال تُوجَّه عبرك ستتوقف عن العمل.--daily-stats(-s) يكتب العدادات بتنسيق CSV إلى/var/opt/simplex/smp-server-stats.daily.log.--fqdnيضع نطاقك في الشهادة المُنشأة. استخدم--ipبدلاً منه إذا لم يكن لديك نطاق.--no-passwordيتيح لأي شخص إنشاء طابور على خدمة الترحيل لديك. لجعلها خاصة، اضبطcreate_passwordضمن[AUTH]في/etc/opt/simplex/smp-server.iniبعد التهيئة، بدلاً من تمرير--passwordهنا، لأن سطر الأوامر يظهر في سجل shell وفي قائمة العمليات أثناء تشغيله.
تنشئ التهيئة شهادة وتطبع القيمتين اللتين يجب الاحتفاظ بهما. القيمة الأولى هي بصمة، وهي سلسلة base64 تُكتب أيضاً إلى /etc/opt/simplex/fingerprint. والقيمة الثانية هي عنوان الخادم الكامل، ويتكوّن من البصمة واسم المضيف. انسخ القيمتين الآن.
تنشئ التهيئة أيضاً /etc/opt/simplex/ca.key، وتطلب الوثائق نقل هذا الملف إلى وحدة تخزين غير متصلة. والسبب مهم: يثبّت العملاء بصمة مرجع الشهادة الخاص بجهة إصدار الشهادات هذه، لذلك يستطيع أي شخص يملك ca.key إصدار شهادة خادم جديدة يقبلها عملاؤك على أنها شهادتك. لن تحتاج إلى هذا الملف مجدداً إلا لتدوير شهادة الخادم لاحقاً باستخدام smp-server cert.
تعامل مع التهيئة على أنها خطوة تُنفَّذ مرة واحدة. تأتي البصمة الموجودة في عنوانك من مرجع الشهادة الذي تنشئه التهيئة، لذلك يؤدي إنشاء مرجع جديد إلى عنوان مختلف ويجعل العنوان الذي وزعته سابقاً غير صالح.
شغِّله عبر systemd كمستخدم غير مميّز
اكتب /etc/systemd/system/smp-server.service تماماً كما هو في الوثائق:
[Unit]
Description=SMP server systemd service
[Service]
User=smp
Group=smp
Type=simple
ExecStart=/usr/local/bin/smp-server start +RTS -N -RTS
ExecStopPost=/usr/bin/env sh -c '[ -e "/var/opt/simplex/smp-server-store.log" ] && cp "/var/opt/simplex/smp-server-store.log" "/var/opt/simplex/smp-server-store.log.bak"'
LimitNOFILE=65535
KillSignal=SIGINT
TimeoutStopSec=infinity
[Install]
WantedBy=multi-user.targetتتضمن وحدة upstream أيضاً AmbientCapabilities=CAP_NET_BIND_SERVICE. يوجد هذا السطر لأن العملية تعمل بصفة smp، ولأن المنافذ التي تقل أرقامها عن 1024 تكون مغلقة أمام العملية غير الجذرية. لذلك، لا يستطيع daemon ربط المنفذين 80 أو 443 من دونه. أضِفه إذا كنت ستخدم هذين المنفذين. يهم LimitNOFILE=65535 لأن كل عميل مشترك يحتفظ باتصال TCP مفتوح، بينما يكون الحد الافتراضي أقل بكثير من العدد الذي يحتاج إليه relay مشغول. ينسخ ExecStopPost سجل store إلى ملف .bak عند كل إيقاف، ما يمنحك نقطة تراجع واحدة مجانية.
sudo systemctl daemon-reload
sudo systemctl enable --now smp-server
sudo systemctl status smp-server
sudo journalctl -fu smp-serverتسجّل عملية بدء سليمة عنوان الخادم. بعد ذلك، تأكد من أن المقابس مفتوحة فعلياً:
sudo ss -tlnp | grep -E ':(443|5223)'يجب أن يذكر السطران smp-server. إن تشغيل daemon بحسابه الخاص ومن دون صلاحيات sudo هو الممارسة نفسها الموضحة في الحسابات الخاصة بكل خدمة على VPS، وهو ما يمنع حدوث خلل في daemon شبكي واحد من التحول إلى shell بصلاحيات root.
ما المنافذ التي يجب فتحها، وأيّها يجب إبقاؤه مغلقاً
تسرد الوثائق ثلاثة منافذ: 5223/tcp و443/tcp و80/tcp. المنفذ 5223 هو منفذ نقل SMP. يضبط الإعداد المرفق port: 5223,443 ضمن [TRANSPORT]، لذلك يستجيب البروتوكول نفسه أيضاً على 443. وهذا مهم لأن كثيراً من الشبكات المقيّدة تسمح بالاتصالات الصادرة إلى 443 ولا تسمح بغيره. لا يلزم المنفذ 80 إلا لصفحة المعلومات الاختيارية وإعادة توجيهها إلى HTTPS.
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 5223/tcp
sudo ufw enableلا تفتح 5224. فهذا هو منفذ التحكم، وتصل إليه الوثائق من الخادم نفسه باستخدام nc 127.0.0.1 5224. يعرض حالة الخادم ويحذف قوائم الانتظار، لذلك يجب أن يبقى على loopback، مع ضبط كلمتي مرور المسؤول والمستخدم ضمن [AUTH]. إذا كنت تستخدم الأداة للمرة الأولى، يشرح دليل أساسيات ufw على VPS ترتيب القواعد وكيفية تجنب فقدان الوصول إلى الخادم.
هناك إعداد آخر للتحكم قد يسبب مشكلات. يشغّل معظم مزوّدي الخدمة جداراً نارياً للشبكة من لوحة التحكم، وهو منفصل عن ufw على الخادم. قد يكون المنفذ مفتوحاً في ufw، ومع ذلك تُسقط الحزم قبل أن تصل إليك.
عنوان الخادم الذي يحتاج إليه عملاؤك
smp://<fingerprint>[:<password>]@<public_hostname>[,<onion_hostname>]هذا النص هو كامل إعداد جهة العميل. ألصقه في إعدادات الخادم داخل التطبيق، أو دع شخصاً يمسح رمز QR الذي يعرضه التطبيق لهذا النص. توضّح الوثائق أن رمز QR يتضمن كلمة المرور، لذلك يمكن للشخص الذي يمسحه استقبال الرسائل عبر خادمك أيضاً.
هناك سلوك موثّق يفاجئ الجميع. لا تؤثر إضافة خادمك في التطبيق إلا في جهات الاتصال التي تنشئها بعد ذلك. تبقى جهات الاتصال الحالية على المرحّلات التي أُنشئت قوائم انتظارها عليها، ولا تنتقل. وهذا يفسر أيضاً سبب عدم إمكانية إيقاف تشغيل مرحّل في اليوم التالي لاستبداله.
إضافة مرحّل ملفات XFTP
XFTP (بروتوكول نقل ملفات SimpleX) هو الجزء الخاص بالملفات في الشبكة. وهو daemon منفصل له عنوانه الخاص. وفقاً لـXFTP announcement الخاص بالمشروع، لا يملك المرحّلون أي بيانات وصفية للملفات. فهم يرون أجزاءً منفردة فقط، حجم كل منها 256kb أو 1mb أو 4mb، ويُصرَّح بالوصول إليها باستخدام بيانات اعتماد مجهولة. ويمكن للمرسل توزيع أجزاء ملف واحد على عدة مرحّلات. لذلك يحتفظ خادمك بأجزاء، لا بملفات كاملة.
sudo useradd -m xftp
sudo install -d -o xftp -g xftp -m 755 /etc/opt/simplex-xftp /var/opt/simplex-xftp /srv/xftp
curl -fL "https://github.com/simplex-chat/simplexmq/releases/download/$VER/xftp-server-ubuntu-24_04-x86-64" -o /tmp/xftp-server
sudo install -m 755 -o root -g root /tmp/xftp-server /usr/local/bin/xftp-server
sudo su xftp -c "xftp-server init -l --fqdn=xftp1.example.com -q '20gb' -p /srv/xftp/"يوجد ملف الإعداد في /etc/opt/simplex-xftp/، وحالة الخدمة في /var/opt/simplex-xftp/، وأجزاء الملفات في المسار الذي يحدده -p. وتستخدم وحدة systemd البنية نفسها مع User=xftp وExecStart=/usr/local/bin/xftp-server start +RTS -N -RTS. يطبع Init عنوان xftp:// بالتنسيق نفسه المستخدم لعنوان SMP، مع بصمة خاصة به في /etc/opt/simplex-xftp/fingerprint.
يجب التخطيط لتعارض في المنافذ. المنفذ الموثق لخادم XFTP هو 443، كما يدرج إعداد SMP المنفذ 443 أيضاً. لا يمكن لعمليتين ربط المنفذ نفسه على العنوان نفسه. لذلك يجب تغيير أحد الإعدادين عند تشغيلهما على VPS واحد. أبسط حل هو ضبط port: 5223 في قسم [TRANSPORT] الخاص بـSMP، وترك المنفذ 443 لمرحّل الملفات. لكن هذا يلغي آلية fallback على المنفذ 443 للعملاء الموجودين على شبكات مقيّدة. والبدائل هي إضافة عنوان IP ثانٍ إلى VPS نفسه، أو استخدام VPS ثانٍ.
حدّد الحصة بواقعية. يمثّل -q '20gb' مقداراً من مساحة القرص تلتزم بتوفيره. مرحّل الملفات هو الجزء الذي يستهلك مساحة القرص وعرض النطاق. أما مرحّل الرسائل فلا يكاد يستهلك أياً منهما.
ما يوجد على القرص وما تستعيده النسخة الاحتياطية
يوجد دليلان مهمان. /etc/opt/simplex/ هو الهوية: smp-server.ini، وشهادة الخادم ومفتاحه، ca.key، وfingerprint. أما /var/opt/simplex/ فهو الحالة: يحتوي smp-server-store.log على قوائم الانتظار، وعندما يكون restore_messages: on، على الرسائل التي لم تُسلَّم، إلى جانب ملف الإحصاءات اليومي.
sudo systemctl stop smp-server
sudo tar czf /root/simplex-backup.tgz -C / etc/opt/simplex var/opt/simplex
sudo chmod 600 /root/simplex-backup.tgz
sudo systemctl start smp-serverيجب أن يكون واضحاً ما الذي يحتويه ذلك الأرشيف. إنه ليس أرشيفاً للرسائل؛ فالعناصر الموجودة في قائمة الانتظار هي نصوص مشفّرة لمفاتيح لم يحتفظ بها relay مطلقاً، كما أن إعداد [STORE_LOG] الذي يثبّته النظام ينتهي بعد 21 يوماً ويحذف الرسائل. إنه نسخة من هوية الخادم، بما في ذلك ca.key، ولذلك يستطيع أي شخص يحصل على الملف انتحال relay الخاص بك أمام جهات اتصالك. شفّره واحتفظ به خارج الخادم.
الفائدة تظهر عند الاستعادة. أعد /etc/opt/simplex إلى VPS جديد، ووجّه اسم DNS نفسه إليه، وستبقى بصمة الخادم دون تغيير، لذلك ستظل كل العناوين التي وزّعتها تعمل. إذا فقدت ذلك الدليل فلا توجد استعادة ممكنة: التثبيت الجديد يعني بصمة جديدة، والبصمة الجديدة تعني عنواناً جديداً، وهذا يعني فقدان كل جهة اتصال مرّ توجيهها عبر relay الخاص بك.
TLS: شهادتان تؤديان وظيفتين مختلفتين
لا يستخدم نقل SMP جهة إصدار شهادات عامة. ينشئ Init جهة إصدار خاصة وشهادة خادم، وتنتقل بصمة جهة الإصدار هذه داخل عنوان الخادم. يتحقق العميل من أن ما يقدمه الخادم يطابق البصمة المثبتة، وهذا ما يصفه المشروع بأنه حماية اتصال العميل بالخادم من هجمات الرجل في الوسط. لا يوجد عميل ACME (بيئة إدارة الشهادات التلقائية) لتشغيله على ذلك المنفذ، ويجري تدوير الشهادة يدوياً عبر smp-server cert مع ضبط SMP_SERVER_CFG_PATH.
صفحة المعلومات الاختيارية هي الشهادة الأخرى. يسمّي قسم [WEB] فيها static_path وhttps: 443 وcert: /etc/opt/simplex/web.crt وkey: /etc/opt/simplex/web.key. لم يسمع المتصفح من قبل بجهة الإصدار الخاصة بك، ولذلك فهذا هو الموضع الوحيد الذي تحتاج فيه إلى شهادة موثوقة عامة. يضع التشغيل السريع لـDocker في الوثائق Caddy أمام الخادم لهذا الغرض تحديداً، ويصدر الشهادة تلقائياً.
الوصول إلى relay عبر Tor
تتضمن الوثائق قسماً عن Tor يثبّت Tor من مستودع Tor Project ويضيف خدمة مخفية في /etc/tor/torrc:
SOCKSPort 0
HiddenServiceNonAnonymousMode 1
HiddenServiceSingleHopMode 1
HiddenServiceDir /var/lib/tor/simplex-smp/
HiddenServicePort 5223 localhost:5223
HiddenServicePort 443 localhost:443اقرأ سطري الوضع بعناية. يعني وضع Single hop وnon-anonymous أن موقع relay نفسه غير مخفي. يكون عنوان onion سريعاً، ويوفّر للعملاء طريقة للوصول لا تكشف عنوان IP الخاص بهم لك، لكن الخادم نفسه يظل قابلاً للعثور عليه عبر عنوان IP العام. أضف اسم مضيف onion من /var/lib/tor/simplex-smp/hostname في نهاية عنوان الخادم بعد فاصلة. إذا أردت إخفاء موقع الخادم أيضاً، فهذا يتطلب إعداداً مختلفاً، ويتناول تشغيل خدمة onion حقيقية على VPS هذه المفاضلة. يوضح Tor مقارنةً بـ VPN الفرق في المعلومات التي يخفيها كل من الأداتين، وينطبق ذلك هنا مباشرة.
نموذج التهديد: ما الذي يتغير عند الاستضافة الذاتية
ما الذي تكسبه. توجد البيانات الوصفية، مثل قوائم الانتظار الموجودة ووقت قراءتها والعناوين التي تتصل، على جهاز تتحكم فيه، وأنت تحدد مدة الاحتفاظ بها. كما أنك لا تكون جزءاً من مجموعة كبيرة يمكن طلب بياناتها دفعة واحدة.
ما الذي لا تكسبه، بصياغة واضحة:
- لا يتغير التشفير. كانت الرسائل مشفّرة من الطرف إلى الطرف قبل أن تنشئ هذا النظام، وتظل مشفّرة من الطرف إلى الطرف بعده. الاستضافة الذاتية قرار يتعلق بالبيانات الوصفية، وليس قراراً يتعلق بالتشفير.
- يرى مزود VPS حركة الشبكة المتجهة إلى عنوان IP الخاص بك، ويحتفظ ببيانات الفوترة الخاصة بك. لقد نقلت الثقة من مشغّل خدمة مراسلة إلى مشغّل استضافة. ولم تلغِ هذه الثقة.
- relay الخاص بك يشكّل مجموعة صغيرة. إذا كان يخدم منزلاً واحداً، فإن الاتصال به يحدد ذلك المنزل، كما يظهر اسم المضيف الخاص به داخل كل رابط دعوة ترسله منه. يخفيك relay عام نشط بشكل أفضل من هذه الناحية، وهذه هي المقايضة الفعلية. وينطبق الشكل نفسه على خادم بحث خاص، ولذلك تعتمد البيانات التي يخفيها SearXNG فعلياً على VPS الخاص بك على عدد الأشخاص الذين يشاركونك المثيل.
- أصبحت مسؤولية التوافر عليك الآن. امتلاء القرص أو تعطل الجهاز يعني توقف تسليم الرسائل، ولا يستطيع جهات اتصالك تجاوزك للوصول إلى مسار آخر.
ينطبق المنطق نفسه على أي خدمة خاصة تضعها على جهاز تملكه، سواء كان ذلك relay هذا أو شبكة WireGuard VPN على VPS الخاص بك. أنت تختار الطرف الذي يرى البيانات الوصفية. لكنك لا تجعلها تختفي.
عند عدم عمله
تبدأ الخدمة ثم تتوقف فوراً. اقرأ sudo journalctl -u smp-server -n 50. يذكر فشل الربط المنفذ الذي تعذّر حجزه. ثم شغّل sudo ss -tlnp | grep :443 لمعرفة العملية التي تستخدمه حالياً. في خادم جديد، تكون هذه العملية عادةً nginx أو Caddy أو خادم XFTP الذي ثبّتَّه قبل ساعة.
يتعذّر على Init كتابة إعداداته. يؤدي تشغيل smp-server init بصفة المستخدم smp قبل وجود /etc/opt/simplex إلى خطأ في الصلاحيات، لأنّ /etc/opt مملوك لـ root. أنشئ الدليل بالمالك الصحيح أولاً، ثم أعد تشغيل init.
يتعذّر على العملاء الوصول إلى المرحّل. تحقق من أن الاسم يُحلّ إلى العنوان الصحيح باستخدام dig +short smp1.example.com. ثم اختبر المنفذ من حاسوبك المحمول، لا من الخادم: nc -vz smp1.example.com 5223. إذا فشل الاتصال من خارج الخادم، بينما يوضّح ss أن المقبس مفتوح على الخادم، فهذا يشير إلى جدار الشبكة الناري لدى مزوّد الخدمة. وهو عنصر تحكم منفصل عن ufw.
يتعذّر على جهة اتصال الاتصال عبر المرحّل. يجب أن تطابق البصمة الموجودة في العنوان الذي شاركته المحتوى الحالي لـ /etc/opt/simplex/fingerprint. إذا ضبطت create_password ضمن [AUTH]، فيجب أن يتضمن العنوان كلمة المرور أيضاً، وإلا فلن يُسمح للعميل بإنشاء قائمة انتظار.
لم يتحرك شيء بعد إضافة الخادم في التطبيق. هذا متوقع. تستخدم جهات الاتصال الجديدة فقط المرحّل المضاف حديثاً. أما جهات الاتصال الحالية فتحتفظ بقوائم الانتظار الموجودة لديها.
FAQ
هل يجعل تشغيل خادم SimpleX ذاتياً رسائلي أكثر أماناً؟
لا، وهذا مقصود في التصميم. يشفّر SimpleX الرسائل من طرف إلى طرف بين الأجهزة، لذلك لا يملك relay المفاتيح، بصرف النظر عمّن يشغّله. يغيّر التشغيل الذاتي الجهة التي تراقب البيانات الوصفية المحيطة بهذه الرسائل: قوائم الانتظار الموجودة، ووقت قراءتها، وعناوين IP التي تتصل بها. هذا قرار يتعلق بالبيانات الوصفية. إذا كان سببك للتشغيل الذاتي هو الحصول على تشفير أقوى، فالتشفير موجود أصلاً.
ماذا يستطيع مشغّل relay الخاص بـSimpleX أن يرى فعلياً؟
يوضّح protocol/security.md في المشروع ذلك. لا يستطيع relay قراءة محتوى الرسائل أو أنواعها، ولا تعديل رسائل فردية دون اكتشاف ذلك، ولا كسر التشفير من طرف إلى طرف عبر هجوم نشط. لكنه يستطيع معرفة وقت اتصال مستلم قائمة انتظار، وعدّ الرسائل التي تمر عبر قائمة انتظار، ومعرفة عنوان IP الخاص بالمستلم، وإسقاط الرسائل المستقبلية في قائمة انتظار، أو الكذب بشأن حالة قائمة الانتظار. هذه هي الصلاحيات التي تملكها عندما يصبح relay ملكك.
هل أحتاج إلى اسم نطاق وشهادة TLS؟
تحتاج إلى نطاق لإعداد قابل للاستخدام، ويقبل smp-server init استخدام --ip إذا لم يكن لديك نطاق فعلاً. لا تحتاج إلى شهادة من جهة عامة موثوقة لمنفذ المراسلة: إذ ينشئ init جهة موثوقة خاصة به، ويثبّت العميل بصمة الإصبع الظاهرة في عنوان smp:// الخاص بك. لا تحتاج إلى شهادة موثوقة علناً إلا لصفحة معلومات الويب الاختيارية، التي تُضبط باستخدام cert وkey في قسم [WEB] من smp-server.ini.
ماذا يحدث إذا فقدت /etc/opt/simplex؟
تتوقف كل العناوين التي وزّعتها عن العمل. يحتوي ذلك الدليل على جهة الشهادات الموثوقة التي تكون بصمتها مضمّنة في عنوان خادمك، لذلك ينتج عن إعادة البناء بصمة مختلفة، ومن ثم خادم مختلف. لا يمكن إصلاح جهات الاتصال التي توجد قوائم انتظارها على ذلك relay من جهة العميل. انسخ الدليل احتياطياً بعد تشفيره وخزّنه خارج الخادم، واحفظ ca.key في وضع عدم الاتصال وفقاً لتعليمات الوثائق، لأن من يملكه يستطيع انتحال relay الخاص بك.
هل يمكنني تشغيل relay الخاص بـSMP وrelay الملفات الخاص بـXFTP على VPS واحد؟
نعم، مع وجود تعارض واحد يجب حله. المنفذ الموثّق لخادم XFTP هو 443، ويعرض إعداد SMP الافتراضي port: 5223,443، ولذلك يحاول كلاهما استخدام المقبس نفسه. خصّص المنفذ 443 لأحدهما: اضبط port: 5223 لخادم SMP، أو انقل relay الملفات إلى عنوان IP ثانٍ أو VPS ثانٍ. اضبط أيضاً حصة التخزين بما يتوافق مع مساحة القرص المتاحة فعلياً، لأن relay الملفات هو المكوّن الذي يستهلك مساحة القرص وعرض النطاق الترددي.