الوثائق

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

كشف خوادم NAT والتوصية بالأنفاق

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

قبل البدء: ما هو NAT

خادم NAT هو خادم «لا يملك سوى IP داخلي، دون IP عام مستقل». مثل كثير من خوادم NAT VPS الرخيصة، حيث يمنح المزوّد عنوانًا داخليًا(مثل 192.168.x.x),فلا تستطيع الوصول إليه مباشرة من الإنترنت العام، وإنما عبر تعيين المنافذ الذي يوفّره المزوّد(تحويل منفذ عام معيّن إلى شبكتك الداخلية).

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

بعد إضافة خادم، وعند نجاح اتصال SSH، تكتشف اللوحة تلقائيًا ما إذا كانت هذه الآلة من نوع NAT(لا تملك سوى عنوان داخلي، دون IP عام مستقل). وعند الكشف عن NAT تُعرض شارة صغيرة على بطاقة الخادم، ويظهر شرح مركزي في أعلى «نظرة عامة». ويمكن للمستخدم الضغط على الشارة الصفراء ليتأكد مما إذا كان خادم NAT هذا يستطيع تعيين إعادة توجيه المنافذ من لوحة المزوّد، ليقرّر إن كان بحاجة إلى الإدارة عبر الأنفاق.

لماذا يجب التمييز بين أنواع NAT

«IP داخلي» ≠ «بحاجة إلى نفق». خوادم NAT نوعان:

النوعالسماتهل يحتاج نفقًا
NAT بإمكانية تعيين المنافذيوفّر المزوّد لوحة تعيين منافذ، ويستطيع المستخدم ربط منفذ عام بمنفذ داخلي بنفسه❌ لا حاجة، فالمنافذ تُضبط بنفسه
NAT بلا إمكانية تعيين المنافذالمزوّد يعيّن بشكل ثابت منافذ قليلة مثل SSH(22) فقط، وبقية المنافذ لا تدخل من الإنترنت العام✅ يحتاج الإدارة عبر الأنفاق

فقط «NAT بلا إمكانية تعيين المنافذ»يحتاج الإدارة عبر الأنفاق. أما NAT القابل لتعيين المنافذ فيستطيع ربط منافذه بنفسه، ويعمل كما لو كان خادمًا ذا IP عام، ولا ينبغي تذكيره مرارًا.

مبدأ الكشف

بعد نجاح اتصال SSH تنفّذ اللوحة أمر القراءة فقط ip -4 addr show لقراءة عناوين بطاقات الشبكة المحلية على الخادم، وتحدّد ما إذا كانت جميعها تنتمي إلى النطاقات الداخلية:

  • 10.0.0.0/8
  • 172.16.0.0/12
  • 192.168.0.0/16
  • 100.64.0.0/10(CGNAT، نطاق NAT على مستوى المشغّل)
  • 127.0.0.0/8,169.254.0.0/16,0.0.0.0/8

ووجوده أي عنوان IP من نطاق عام واحد يكفي للتصنيف كـ«يملك IP عام»(ليس NAT);أما إذا كانت جميعها في نطاقات داخلية فيُصنَّف كـ«NAT».

> أمر الكشف للقراءة فقط، ولا يغيّر أي حالة على الخادم. تُكتب نتيجة الكشف في قاعدة البيانات، ويُجرى الكشف مرة واحدة عند أول اتصال فقط، ثم تُعاد النتيجة نفسها مباشرة، دون إبطاء الاتصال.

مواضع الشارة والشرح

بعد كشف NAT يظهر التنبيه في موضعين:

1. تبويب «نظرة عامة» في لوحة إدارة النظام: بعد الضغط على «إدارة النظام» في بطاقة خادم والدخول إلى اللوحة، يظهر في التبويب الأول «نظرة عامة» شريط تنبيه NAT المقابل — الخوادم المعلّمة بالأصفر تعرض شرحًا أصفر(يتضمن إرشادات إزالة العلامة),والخوادم المعلّمة بالأحمر تعرض إرشادًا أحمر لاستخدام الأنفاق. ولا يظهر التنبيه إلا على الخوادم المباشرة من نوع NAT وغير المؤكَّدة، ولا يشغل مساحة على البطاقة.

2. الشارة الصغيرة على البطاقة: تُبقى على البطاقة شارة صغيرة واحدة فقط، بثلاث حالات:

الشارةاللونالمعنىسلوك الضغط
NATأصفرتم كشف NAT(IP محلي في نطاق داخلي),بانتظار التأكيدفتح مربّع التأكيد
يحتاج نفقًاأحمرالمنفذ غير قابل للوصول من الإنترنت العام، ويلزم نفقفتح إرشاد الإدارة عبر الأنفاق
(بلا شارة)—تم تأكيد أن «المنفذ سليم» وإزالة العلامة—

الشارة الصفراء NAT هي حالة «بانتظار التأكيد»: بالضغط عليها يُفتح مربّع تأكيد مع خيارين:

  • «المنفذ سليم، أزل العلامة» → تختفي الشارة، ولا يظهر تنبيه بعدها؛
  • «المنفذ غير قابل للوصول، علّمه كيحتاج نفقًا» → تتحول الشارة إلى الأحمر، مع إرشاد إلى الإدارة عبر الأنفاق.

الشارة الحمراء يحتاج نفقًا هي «تحذير»: بالضغط عليها تنتقل مباشرة إلى الإدارة عبر الأنفاق + نفق المنافذ.

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

لماذا «ينقطع الاتصال» بخوادم NAT مع مرور الوقت

في بوابة المزوّد لخوادم NAT يوجد idle timeout(مهلة انتهاء الاتصال الخامل). بعد دقائق من خمول اتصال SSH تقوم البوابة بقطعه بهدوء(TCP نصف مفتوح),ولا يدرك الطرفان ذلك.

تعالج اللوحة المشكلة من جذرها بالنقطتين التاليتين:

1. تفعيل keepalive على اتصالات SSH: بعد إنشاء أي اتصال تُرسل حزمة إبقاء كل 30 ثانية، ما يمنع القطع بسبب خمول NAT، ويكشف الاتصالات الميتة نصف المفتوحة في الوقت المناسب.

2. تنظيف دوري لمجموعة الاتصالات: يُغلق خيط خلفي كل دقيقتين الاتصالات الخاملة لأكثر من دقيقتين، منعًا لتراكم الاتصالات الميتة بلا حدود.

ملاحظات مهمة

1. الكشف يعتمد على نجاح اتصال SSH: عند كون الخادم غير متصل أو عند خطأ في كلمة المرور لا يمكن الكشف، ولا تُعرض شارة.

2. الخوادم التي لا تُعرض لها شارة: الخوادم ذات IP العام، وأجهزة أندرويد(Termux),والأجهزة المتصلة عبر الأنفاق(التي تملك tunnel_token)لا تُعرض لها شارة NAT — فهي تسلك أصلًا قنواتها الخاصة، ولا حاجة إلى تنبيه NAT.

3. إفساح المجال للحالات الخاصة: قلّة نادرة من «NAT بنسبة 1:1»(خوادم جميع منافذها مفتوحة)يكون IPها المحلي داخليًا أيضًا، فتُكشف كـ NAT. في هذه الحالة يختار المستخدم «موافق» في مربّع التأكيد، ولا يتأثر الاستخدام.

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

مستندات ذات صلة