الوثائق
البدء السريع + شرح وظائف كل قسم لكل جهاز (يُحدَّث باستمرار)
نفق المنافذ
يشرح هذا المستند ميزة «نفق المنافذ» في اللوحة — ربط منافذ التطبيقات على خادم النفق الذي لا يملك IP عامًا بمنافذ عامة على خادم اللوحة، ليتسنّى للمستخدمين الخارجيين الوصول.
بجملة واحدة
خادمك مخفي داخل الشبكة الداخلية (بلا IP عام)، ويعمل عليه موقع أو تطبيق لا يستطيع الآخرون الوصول إليه. نفق المنافذ يعني «فتح منفذ عام على خادم اللوحة، ونقل الوصول الخارجي عبر نفق مشفّر إلى منفذ التطبيق على خادمك الداخلي». والنتيجة: وصول الآخرين إلى IP خادم اللوحة:المنفذ يساوي الوصول إلى التطبيق على خادمك الداخلي.
نظرة عامة على الميزة
بالنسبة إلى خادم بلا IP عام متصل عبر «الإدارة عبر الأنفاق»، لا يمكن الوصول من الخارج إلى تطبيقاته (مثل Navidrome للموسيقى، وNextcloud للقرص السحابي، وMemos للملاحظات). يقوم نفق المنافذ بربط منافذ هذه التطبيقات بمنافذ خادم اللوحة (الذي يملك IP عامًا)، ليتيح للمستخدمين الخارجيين الوصول عبر «IP خادم اللوحة:المنفذ».
حالات الاستخدام
- تطبيق ويب يعمل على خادم النفق وترغب في إتاحته للخارج
- إتاحة خدمات جهاز داخل الشبكة الداخلية على الإنترنت العام
- توفير مدخل عام لموقع أو API أو لوحة على جهاز بلا IP عام
المبدأ (كيف تتدفق البيانات)
مستخدم خارجي → منفذ عام على خادم اللوحة (مثل :9117) → نفق مشفّر → منفذ التطبيق على خادم النفق (مثل :9117)
تصل الحركة الخارجية أولًا إلى خادم اللوحة (المكان الوحيد الذي يملك IP عامًا)، ثم تُنقل عبر نفق عكسي مشفّر إلى الجهاز الداخلي، وأخيرًا تهبط على منفذ التطبيق الحقيقي على الجهاز.
قناة موحّدة (لجميع الأجهزة، بلا اختيار يدوي):
| نوع الجهاز | قناة النقل | الشرح |
|---|---|---|
| خادم Linux (بلا IP عام) | نفق عكسي 4433 (تشفير AES-256-GCM) | تدفق TCP بايتي أصلي، سريع ومستقر، ويدعم تزامنًا كبيرًا |
| جهاز أندرويد/Termux | نفق عكسي 4433 (تشفير AES-256-GCM) | يسلك النفق المشفّر نفسه مع أجهزة Linux، مستقر وبلا كلفة إضافية |
تسلك اللوحة جميع الحالات النفق العكسي 4433 بشكل موحّد، فلا حاجة إلى معرفة القناة الأساسية عند إنشاء النفق، ولا إلى الاختيار اليدوي.
> توضيح إضافي: إدارة النظام على أجهزة أندرويد/Termux (تنفيذ الأوامر، الطرفية، الملفات) تسلك قناة SocketIO المستقرة؛ أما نفق المنافذ فيسلك بشكل موحّد النفق العكسي 4433، وكل منهما يقوم بوظيفته دون تداخل.
طريقة الاستخدام
1. تأكد من أن الجهاز الهدف متصل عبر «الإدارة عبر الأنفاق» (Agent متصل)
2. افتح «نفق المنافذ» واضغط «إضافة نفق»
3. اختر خادم النفق (Agent)، واملأ:
- منفذ الاستماع: المنفذ العام على خادم اللوحة (للوصول الخارجي)، مثل
9117 - منفذ الهدف: منفذ التطبيق على خادم النفق، مثل
8080
4. بعد الإنشاء يستطيع الخارج الوصول إلى http://IP خادم اللوحة:منفذ الاستماع
مثال
افترض أن IP العام لخادم اللوحة هو 203.0.113.10، ولديك Raspberry Pi داخل الشبكة الداخلية يعمل عليه Navidrome (يستمع على 4533):
- منفذ الاستماع:
4533 - منفذ الهدف:
4533 - بعد الإنشاء، يكفي أن يفتح المستخدم الخارجي
http://203.0.113.10:4533ليفتح Navidrome على Raspberry Pi
حدود الموارد
| الحد | القيمة |
|---|---|
| أقصى عدد قنوات النقل لكل Agent | 32 قناة |
| أقصى عدد Agents في اللوحة كلها | 64 |
وعند التجاوز يُرفض الاتصال الجديد تلقائيًا، دون التأثير على الأنفاق العاملة.
ملاحظات مهمة
1. جدار الحماية السحابي: يجب أن يسمح جدار الحماية السحابي / مجموعة الأمان الخاصة بخادم اللوحة بمنفذ الاستماع المقابل، وإلا تعذّر الوصول من الخارج.
2. إصدار Agent: نقل منافذ غير SSH (غير 22) يتطلب أن يكون على خادم النفق إصدار Agent جديد (الإصدارات القديمة تدعم نقل المنفذ 22 فقط). وإذا احتجت إلى نقل منافذ أخرى، فأعد تثبيت Agent.
3. بقاء Agent متصلًا: يعتمد النفق على بقاء Agent متصلًا. وعند خروج Agent يتوقف النفق، ثم يُستعاد تلقائيًا بعد إعادة الاتصال.
4. استعادة تلقائية بعد إعادة تشغيل اللوحة: بعد إعادة تشغيل خدمة اللوحة يُستعاد النفق تلقائيًا (يُفعَّل عند إعادة اتصال Agent).
5. خدمة الهدف على أندرويد يجب أن تدعم التزامن: إذا كانت الخدمة الهدف على أندرويد (مثل python3 -m http.server) أحادية الخيط ومفعّلة keep-alive، فإن بقاء الاتصال نفسه مفتوحًا يحجب الطلبات التالية. يُنصح بأن تستخدم خدمة الهدف خيوطًا متعددة، أو بالتأكد من إغلاق الاتصالات في الوقت المناسب.
مستندات ذات صلة
- الإدارة عبر الأنفاق — اربط الأجهزة بلا IP عام باللوحة أولًا
- إعادة توجيه المنافذ — إعادة التوجيه التقليدية على خادم يملك IP عامًا (والفرق بين الاثنين في الأسفل)
نفق المنافذ مقابل إعادة توجيه المنافذ (كيف تختار)
| نفق المنافذ (هذا المستند) | إعادة توجيه المنافذ | |
|---|---|---|
| الخادم المناسب | بلا IP عام (خادم النفق) | يملك IP عامًا مستقلًا |
| طريقة التنفيذ | نفق عكسي | DNAT في جدار حماية النظام |
| موضع النقل | خادم اللوحة | الخادم الهدف نفسه |
| يحتاج Agent | نعم | لا |
بجملة واحدة: بلا IP عام استخدم النفق، ومع IP عام استخدم إعادة التوجيه.