إنهاء الاتصال أو فصله: نتيجتان مختلفتان لشبكة VPN
قد يترك إنهاء الاتصال أو فصله أو إيقافه مؤقتًا أو إغلاق النافذة حالات تنظيف وحجب مختلفة. اقرأ تعريفات العميل قبل اختبار سلوك الخصوصية.
توفّر القائمة خيار فصل الاتصال، وللنافذة زر إغلاق، ويوفّر مدير المهام خيار إنهاء المهمة. كل واحد منها يبدو طريقة لإيقاف شبكة VPN، وكل واحد قد يترك الجهاز في حالة مختلفة. قد يوقف أحدها النفق مع إبقاء الحجب قائمًا، وقد ينظّف آخر كل شيء ضمن خروج سلس، وقد يكتفي ثالث بإخفاء الواجهة بينما يستمر المكوّن الخلفي في العمل. التعامل مع هذه الخيارات كمرادفات هو الطريق الذي يجعل اختبار الخصوصية يصل إلى استنتاج خاطئ حول ما حدث.
توثيق العميل هو المكان الموثوق الوحيد لمعرفة أي خيار يفعل ماذا.
أربعة عناصر تحكم، وأربعة سلوكيات محتملة
فصل الاتصال عادةً يهدم النفق ويُبقي العميل مقيمًا، ما يعني أن خدمة أو مكوّنًا في شريط المهام أو قاعدة لمفتاح الإيقاف قد تبقى بعد النقر. عندها يواصل كثير من العملاء حجب حركة المرور لأن سياستهم تنص على ألا يعود الجهاز إلى الوصول المباشر ما دام العميل موجودًا. هذا السلوك يبدو كشبكة معطوبة، لكنه حماية مقصودة.
إنهاء الاتصال يهدف إلى إغلاق التطبيق، والعميل الجيد يزيل قواعده أثناء الخروج. بعض التصاميم تترك بدلًا من ذلك مساعدًا منفصلًا يفرض السياسة، وهذا خيار لا عيب. إغلاق النافذة إجراء في واجهة المستخدم ليس له أثر محدد على النفق، والإيقاف المؤقت، حيث يتوفر، سلوك رابع له قواعده الخاصة.
انقطاع الخدمة من جانب الخادم مسار خامس تمامًا، وهو المسار الذي يصادفه المستخدمون فعليًا في أغلب الأحيان.
اقرأ الحالة قبل كل إجراء وبعده
التقط قائمة العمليات وحالة الخدمة وقواعد جدار الحماية قبل الإجراء، ثم كرّر الالتقاط فورًا بعده. مقارنة القائمتين تُظهر ما فعله عنصر التحكم فعلًا، دون الاعتماد على وصف الواجهة نفسها.
systemctl status wg-quick@wg0 --no-pager pgrep -a -f 'openvpn|wireguard|vpnagent' ip link show | grep -E 'tun|wg' nft list ruleset | grep -E 'drop|reject' | head -20 scutil --nc list
إذا اختفت القواعد مع العملية، فإن العميل هو من كان يملكها. إذا بقيت القواعد بينما اختفت العملية، فثمة مكوّن آخر يفرض السياسة، والعثور على ذلك المكوّن يأتي قبل أي تغيير. سجّل حالة الخدمة في اللحظة نفسها، لأن واجهة متوقفة لا تقول شيئًا عن خدمة نظام.
الفصل اليدوي ليس انهيارًا
فصل الاتصال يشغّل مسار الإغلاق المقصود، والانهيار يتخطاه. لذلك لا تنتقل نتائج أحدهما إلى الآخر، فالاختبار الذي استخدم عنصرًا في القائمة لا يمكن أن يدعم ادعاءً عن السلوك عندما يموت العميل.
بالطريقة نفسها، لا يخبرك الانهيار بشيء عن إيقاف مؤقت معتمد. أبقِ تلك الأسئلة الثلاثة منفصلة في خطة الاختبار وفي كل ما يُكتب بعد ذلك. كما يفسّر مسار الإغلاق سبب قدرة خروج نظيف على إزالة قواعد يتركها الانهيار. الزر نفسه، شيفرة مختلفة، أدلة مختلفة.
اختر الحالة غير المتاحة التي تحتاجها فعلًا
إذا كان يجب أن تبقى حركة المرور محجوبة كلما كان النفق معطلًا، فتحقق من ذلك الشرط أثناء الإجراء المحدد الذي يهمك، باستخدام حركة غير ضارة إلى وجهة معروفة. أدرج استثناءات التطبيقات واستثناءات الشبكة المحلية، لأن الفرض على مستوى الجهاز غالبًا أضيق مما يوحي به اسمه. ثم أكّد ما يحدث بعد إعادة التشغيل، لأن الحالة القديمة تظهر عادةً عندئذ.
إذا كان الهدف وصولًا مباشرًا عاديًا، فاستخدم عنصر التحكم الموثّق بدلًا من قتل العمليات أو تعطيل جدار الحماية كله. القواعد القديمة التي يتركها خروج متقطع مشكلة مختلفة عن إغلاق متعمّد، وهي تحتاج إلى استعادة مختلفة.
اكتب أي مكوّن توقف: النفق، أم التطبيق المرئي، أم الطبقة التي تفرض السياسة. تلك الجملة الواحدة تمنع معظم الالتباس الذي تخلقه عناصر التحكم هذه.