قوائم استثناءات Happ وsplit tunneling: إدارة توجيه حركة البيانات
التقسيم النفقي هو مجموعة قواعد توجيه تمرّ فيها المواقع المحجوبة عبر الاتصال الآمن لفتحها، بينما تُفتح المواقع المحلية مباشرة. مفيد لوصول مستقر ومريح.
لماذا يساعد
الخدمات المحلية مباشرة
قد تعمل بعض المواقع المحلية بدون VPN: أسرع وأكثر استقراراً.
البقية عبر الـ VPN
تمرّ الخدمات العالمية عبر الاتصال الآمن.
بدون تبديل الـ VPN
لا حاجة لتشغيل وإيقاف الاتصال في كل مرة.
ما هو split tunneling وقوائم الاستثناءات في Happ
split tunneling هو وضع يقوم فيه العميل بتقسيم حركة البيانات الصادرة إلى تدفقين: أحدهما يمر عبر خادم الوكيل، والآخر مباشرة عبر مزوّد الخدمة. ويُدار هذا التقسيم عبر قوائم Happ — وهي مجموعات من القواعد تحدّد فيها صراحةً النطاقات أو شبكات الـ IP الفرعية أو التطبيقات المشمولة بالاستثناءات. وكل ما لا تنطبق عليه قاعدة يُعالَج وفق السياسة الافتراضية.
يوجد في Happ نهجان مختلفان جوهرياً لتكوين القوائم. الأول هو وضع الاستثناءات (bypass)، حيث تمر كل حركة البيانات عبر الوكيل باستثناء ما هو مُدرَج: وهو مناسب لإخراج التطبيقات المصرفية والخدمات المحلية والمواقع الحساسة لتغيير المنطقة من النفق. والثاني هو وضع التضمينات (proxy-only)، حيث يمر كل شيء مباشرة، ولا يُوجَّه عبر الخادم سوى قائمة الموارد المحددة فقط. واختيار الوضع يحدّد منطق تجاوز Happ بالكامل على الجهاز.
من الناحية التقنية، تُخزَّن القواعد في إعدادات الملف التعريفي، ويطبّقها محرّك التوجيه فوراً دون إعادة الاتصال بالجلسة. وهذا يعني أن تغيير القائمة يسري مفعوله على الفور تقريباً، دون الحاجة إلى إعادة إنشاء النفق بالكامل. وفهم هذا النموذج هو الأساس للضبط الدقيق للسرعة والاستقرار.
كيفية إضافة موقع إلى قائمة استثناءات Happ
لإضافة نطاق، افتح الملف التعريفي النشط وانتقل إلى قسم التوجيه (Routing / القواعد). اضغط على إضافة قاعدة وأدخل النطاق بصيغة example.com — دون بروتوكول http ودون شرطة مائلة في النهاية. ولتغطية جميع النطاقات الفرعية استخدم قناعاً بصيغة domain:example.com أو التدوين اللاحق، حتى يندرج app.example.com وcdn.example.com تحت قاعدة واحدة تلقائياً.
حدّد للقاعدة إجراءً: proxy (التوجيه عبر الخادم)، أو direct (المرور مباشرة)، أو block (حظر الاتصال). فالربط بين النطاق والإجراء هو ما يشكّل سلوك تجاوز Happ. إذا أردت إخراج خدمة فيديو ثقيلة من النفق لأجل السرعة فاختر direct؛ وإذا لزم وصول مستقر إلى مورد معيّن عبر الخادم فاختر proxy.
إلى جانب النطاقات، يمكن إدراج عناوين IP وشبكات CIDR الفرعية في قوائم Happ (مثل 10.0.0.0/8 للشبكة المحلية) وعلامات GEO (geoip:ru، geosite:category-ads). وتُعدّ الشبكات الفرعية مفيدة للموارد المؤسسية وأجهزة NAS، بينما تصف قواعد GEO فئات كاملة دفعة واحدة بدلاً من السرد اليدوي لمئات النطاقات.
بعد الحفظ، تحقّق من ترتيب القواعد: يطبّقها المحرّك من الأعلى إلى الأسفل ويتوقف عند أول تطابق. فالقاعدة العامة جداً الموضوعة في الأعلى ستحجب القاعدة الأدق الأدنى منها — لذا احتفظ بالنطاقات المحددة فوق الأقنعة الواسعة وفئات GEO.
كيفية حذف موقع أو قاعدة من القائمة
يتم الحذف في قسم التوجيه نفسه. ابحث عن السطر المطلوب في قائمة القواعد، واستدعِ قائمة السياق (بالسحب لليسار على العملاء المحمولين أو أيقونة سلة المهملات في النسخة المكتبية) وأكّد الحذف. تختفي القاعدة من الإعداد النشط دون إعادة تشغيل التطبيق.
إذا استمر المورد في التصرف كما كان بعد الحذف، فإن السبب يكون دائماً تقريباً في ذاكرة DNS المؤقتة أو في قاعدة مكرّرة. تحقّق مما إذا كان النطاق نفسه موجوداً في قائمة أخرى أو تحت قناع أوسع (مثلاً قد يكون موقع منفرد قد اندرج تحت فئة geosite). أزل القاعدة المتداخلة وأعد ضبط ذاكرة DNS المؤقتة بإعادة الاتصال بالملف التعريفي.
للتنظيف الجماعي، من الأنسب تحرير القائمة لا سطراً بسطر بل عبر استيراد/تصدير الإعداد: صدّر القواعد الحالية، وحرّر كتلة routing في محرّر خارجي ثم استوردها مجدداً. وهذا يقلّل خطر ترك قاعدة يتيمة عن طريق الخطأ ويبسّط إدارة قوائم Happ الكبيرة.
قبل حذف القواعد الحرجة، أنشئ نسخة احتياطية من الملف التعريفي. فالتراجع إلى نسخة محفوظة يستغرق ثوانٍ، بينما إعادة بناء قائمة مجمّعة يدوياً من عشرات النطاقات مهمة تستغرق نصف ساعة.
التوجيه حسب التطبيقات والاشتراك في القوائم
إلى جانب التوجيه حسب النطاقات، يدعم Happ التقسيم حسب التطبيقات (per-app). على المنصات المحمولة، تحدّد أي التطبيقات تمر عبر النفق وأيها مباشرة متجاوزة الوكيل. وهذه طبقة منفصلة فوق قواعد النطاقات: مثلاً يمكن توجيه تطبيق مراسلة بالكامل عبر الخادم، وإخراج العميل المصرفي من النفق دون المساس بقوائم النطاقات.
للسيناريوهات كثيفة الموارد، استخدم اشتراكات جاهزة في قوائم التوجيه — روابط URL خارجية تحوي مجموعات من القواعد يجلبها العميل ويحدّثها دورياً. وهكذا يمكن الحفاظ على تحديث الفئات (الإعلانات، أدوات التتبع، الموارد الإقليمية) دون تحرير يدوي. ويُضاف الاشتراك عبر إضافة مصدر قواعد مع تحديد الرابط وفترة التحديث.
امزج المستويات بوعي: أولاً يحدّد per-app ما إذا كانت حركة بيانات التطبيق تدخل النفق أصلاً، ثم تقرّر قواعد النطاقات والاشتراكات أي خادم أو مسار مباشر يُطبَّق داخل النفق. وهذا التسلسل الهرمي يمنح تجاوز Happ قابلاً للتنبؤ دون تعارضات بين الطبقات.
أبقِ عدد الاشتراكات النشطة في حدّه الأدنى. فكل اشتراك يضيف آلاف القواعد إلى محرّك التوجيه، والتداخلات بين القوائم تزيد من وقت تحليل الاتصال وقد تبطئ إنشاء الجلسة على الأجهزة الضعيفة.
تحسين السرعة والاستقرار عبر القوائم الصحيحة
قائمة الاستثناءات المُصمَّمة بذكاء تؤثر مباشرة في السرعة. فبإخراج حركة البيانات المحلية وعالية الحمل من النفق (البث، تحديثات نظام التشغيل، التورنت وفق السياسة)، تخفّف الحمل عن قناة الوكيل وتقلّل زمن الاستجابة للاتصالات المهمة فعلاً. وهذا أسلوب تحسين أساسي، وليس مجرد وسيلة لتجاوز شيء ما.
ترتيب القواعد ودقّتها يحدّدان أداء التحليل. فالقواعد النطاقية الدقيقة أرخص للمحرّك من فئات GEO الواسعة، لذا أخرِج الموارد المستخدمة كثيراً كأسطر منفردة في الأعلى. نظّف قوائم Happ بانتظام من الإدخالات القديمة والمكرّرة — فمجموعة القواعد المتضخمة تبطئ إنشاء كل اتصال جديد.
للتشخيص، استخدم سجل الاتصالات المدمج: فهو يُظهر أي قاعدة عملت لنطاق معيّن (proxy أو direct أو block). وإذا سلك المورد مساراً خاطئاً، ترى فوراً أي قاعدة اعترضت الاتصال، فتصحّحها هي بالتحديد بدلاً من تصفّح القائمة كلها بشكل أعمى.
الفحص النهائي بعد التغييرات: افتح موردين تجريبيين، وتحقّق من المسار في السجل، وقِس زمن الاستجابة. فالإعداد المستقر هو الذي يكون فيه كل قاعدة مبرَّرة، والترتيب قابلاً للتنبؤ، ولا توجد تداخلات زائدة بين القوائم والاشتراكات.
الأسئلة الشائعة
بماذا يختلف وضع الاستثناءات عن وضع التضمينات في Happ؟
في وضع الاستثناءات (bypass) تمر كل حركة البيانات عبر الوكيل باستثناء ما هو مُدرَج في القائمة — إذ يُمرَّر مباشرة. أما في وضع التضمينات (proxy-only) فيمر كل شيء مباشرة، ولا يُوجَّه عبر الخادم سوى ما هو مُدرَج. الأول مناسب عندما تحتاج إلى إخراج بضعة موارد من النفق؛ والثاني عندما يجب أن يمر عبر الخادم مجموعة ضيّقة فقط من المواقع.
بأي صيغة أضيف النطاق إلى قائمة الاستثناءات؟
أدخل النطاق دون بروتوكول ودون شرطة مائلة: example.com. ولجميع النطاقات الفرعية دفعة واحدة استخدم القناع domain:example.com أو التدوين اللاحق — عندئذٍ يندرج app.example.com وcdn.example.com تحت قاعدة واحدة. أما الـ IP والشبكات الفرعية فتُدرَج بصيغة CIDR، مثل 10.0.0.0/8، والفئات عبر geosite: وgeoip:.
لماذا لا يزال الموقع يمر عبر الوكيل بعد إضافته إلى الاستثناءات؟
الأكثر شيوعاً أن يعيق ذلك ترتيب القواعد أو تداخل القوائم. فالمحرّك يطبّق القواعد من الأعلى إلى الأسفل ويتوقف عند أول تطابق، لذا فإن قاعدة أعمّ في الأعلى تحجب قاعدة أدق في الأسفل. تحقّق من سجل الاتصالات — فهو يُظهر أي قاعدة عملت، وارفع القاعدة المحددة إلى الأعلى وأعد الاتصال بالملف التعريفي لإعادة ضبط ذاكرة DNS المؤقتة.
كيف أضبط التوجيه حسب التطبيقات لا حسب النطاقات؟
استخدم وضع per-app في قسم التطبيقات: حدّد أي التطبيقات تمر عبر النفق وأيها مباشرة. وهذه طبقة منفصلة فوق قواعد النطاقات — أولاً يقرّر per-app ما إذا كانت حركة بيانات التطبيق تدخل النفق، ثم تحدّد قوائم النطاقات المسار المعيّن داخله.
هل يمكن ربط قائمة توجيه جاهزة عبر رابط؟
نعم. أضف مصدر قواعد (اشتراكاً) مع رابط URL وفترة تحديث — سيجلب العميل دورياً مجموعة القواعد المحدّثة دون تحرير يدوي. أبقِ عدد الاشتراكات في حدّه الأدنى: فكل اشتراك يضيف آلاف القواعد إلى المحرّك ويزيد من وقت تحليل الاتصالات.
هل يؤثر حجم القائمة في سرعة الاتصال؟
نعم. فالقوائم المتضخمة بالتكرارات وكثرة فئات GEO الواسعة تبطئ تحليل كل اتصال جديد. أخرِج الموارد المستخدمة كثيراً كقواعد دقيقة منفردة في الأعلى، ونظّف بانتظام الإدخالات القديمة، وقلّل التداخلات بين القوائم والاشتراكات — فهذا يسرّع إنشاء الجلسة، خصوصاً على الأجهزة الضعيفة.