الوثائق

البدء السريع + شرح وظائف كل قسم لكل جهاز (يُحدَّث باستمرار)

الإدارة عبر الأنفاق

يشرح هذا المستند «الإدارة عبر الأنفاق» في اللوحة — إدخال الخوادم التي لا تملك IP عامًا إلى اللوحة.

بجملة واحدة

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

نظرة عامة على الميزة

الأجهزة التي لا تملك أي عنوان يمكن الوصول إليه من الإنترنت العام (أجهزة الشبكة الداخلية، والأجهزة خلف NAT، وهواتف Android وغيرها) لا يمكن الاتصال بها عبر SSH مباشرة. والإدارة عبر الأنفاق تجعل هذه الأجهزة تتصل بنفسها بخادم اللوحة عبر نفق عكسي، وبعدها تتعامل معها كما تتعامل مع خادم عادي.

المبدأ

  • خادم اللوحة (الذي يملك IP عامًا) يشغّل خدمة نفق
  • يُثبَّت على الجهاز الهدف Agent خفيف «يتصل بالخارج» نحو خادم اللوحة
  • وبعد إنشاء الاتصال تستطيع اللوحة الدخول إلى الجهاز الهدف عبر SSH بشكل عكسي من خلال هذا النفق

> فهم مبسّط: الجهاز الهدف بمثابة من «يتصل هاتفيًا» بخادم اللوحة، وبعد نجاح الاتصال تستطيع اللوحة التحكم به في الاتجاه المعاكس عبر هذا «الخط المخصّص».

حالات الاستخدام

  • إدارة أجهزة الشبكة الداخلية في المنزل (Raspberry Pi، NAS، راوتر برمجي)
  • إدارة VPS رخيص بلا IP عام (خادم NAT)
  • إدارة هواتف Android (بيئة Termux)

طريقة الاستخدام (ثلاث خطوات)

1. افتح «الإدارة عبر الأنفاق» واضغط «سكربت التثبيت بنقرة واحدة» لتوليد أمر مستقل

2. الصق الأمر على الجهاز الهدف وشغّله مرة واحدة (يثبّت Agent تلقائيًا + يضبط التشغيل التلقائي عند الإقلاع)

3. بعد نحو 10 ثوانٍ يظهر الجهاز تلقائيًا في اللوحة، ويمكنك الاتصال عبر SSH واستخدام كل الوظائف

> أمر التثبيت صُمّم قصيرًا عن قصد، ليسهل كتابته يدويًا قبل اكتمال التثبيت:

> - Linux (curl): curl -sSL http://server:5501/i/<token> | sudo bash

> - Termux: curl -sSL http://server:5501/t/<token> | bash

> - إذا كنت root فيمكن حذف sudo؛ وفي Alpine استخدم wget -qO- … | sudo bash، وفي BSD استخدم fetch -o - … | sudo bash

>

> موضع التثبيت: في Linux يُثبَّت افتراضيًا في /opt/sshe-agent (وإذا كان /opt مفقودًا أو غير قابل للكتابة يرجع السكربت تلقائيًا إلى ~/sshe-agent، دون أخطاء)؛ وفي Termux يُستخدم ~/sshe-agent (يتبع تشغيل Termux).

>

> اتصال بلا كلمة مرور: بعد التثبيت تتصل اللوحة بالجهاز بمفتاح مُحقَن مسبقًا وبلا كلمة مرور، فلا حاجة إلى إدخال كلمة المرور في كل مرة.

البيئات التي يدعمها Agent

البيئةطريقة التثبيت
Linux (apt/yum/dnf/apk)سكربت بنقرة واحدة، يثبّت الاعتماديات تلقائيًا + تشغيل تلقائي عبر systemd
Android / Termuxسكربت مخصّص (يثبّت Agent تلقائيًا + يتبع تشغيل Termux)

> ⚠️ macOS غير مدعوم حاليًا: تختلف مصادقة SSH بين إصدارات macOS اختلافًا كبيرًا، ولا يمكن ضمان اتصال مستقر بين الإصدارات، لذلك لا يوفّر هذا الإصدار ربط macOS عبر الأنفاق. استخدم أجهزة Linux / Termux للربط عبر الإدارة بالأنفاق.

حالة اتصال Agent

  • متصل: اتصال النفق سليم، ويمكن التعامل مع الجهاز في أي وقت
  • غير متصل: انقطع الجهاز (إيقاف، انقطاع شبكة، توقف Agent). ويُحتفظ بسجل الانقطاع مدة، ثم يعود تلقائيًا إلى «متصل» بعد إعادة الاتصال

> 📌 تحديد الحالة على بطاقة الخادم: حالة «متصل/غير متصل» لأجهزة النفق يحدّدها نبض Agent. وبعد اتصال Agent تُنشأ قناة SSH ديناميكيًا عبر النفق لجمع بيانات سلامة حقيقية (الحمل/الذاكرة/القرص/مدة التشغيل/البطارية/الحرارة)، تمامًا كالخوادم العادية.

ملاحظات مهمة

1. Agent هو البرنامج الوحيد الذي تحتاج اللوحة إلى تثبيته على الجهاز الهدف (استثناء من مبدأ «بلا أثر»). لأن الأجهزة بلا IP عام لا يمكن الاتصال بها بنشاط، فلا بد أن تتصل هي بالخارج.

2. استهلاك Agent للموارد ضئيل جدًا (عملية Python واحدة + اتصال طويل واحد).

3. يستخدم Agent نفقًا مشفّرًا في النقل، فالاتصال آمن.

4. إذا تغيّر IP الجهاز أو تعطّل Agent، فيكفي إعادة تشغيل سكربت التثبيت مرة أخرى للاستعادة.

علاقته بنفق المنافذ

الإدارة عبر الأنفاق تتولى «إدخال الجهاز»، ونفق المنافذ يتولى «إتاحة منافذ تطبيقات الجهاز على الإنترنت العام». ويعملان معًا: أدخل أولًا الجهاز بلا IP عام عبر الإدارة بالأنفاق، ثم اربط تطبيقاته (مثل Navidrome وNextcloud) عبر نفق المنافذ بمنافذ خادم اللوحة العامة.