عميل VPN على Mac: Network Extension مقابل System Extension
Network Extension قدرة وSystem Extensions آلية تسليم: افصل بينهما لاختيار خطوة الموافقة في macOS والسجل الذي تقرأه.
يُستخدم مصطلحان من Apple كأنهما يسمّيان الشيء نفسه، وهذا الالتباس يوجّه الناس إلى لوحة إعدادات خاطئة. يصف Network Extension قدرةً: طريقة مدعومة لتنفيذ أنفاق VPN ووكلاء ومرشّحات. ويصف System Extensions آلية تسليم وموافقة لإضافات مساحة المستخدم. يحتاج عميل VPN حديث على Mac عادةً إلى الاثنين، ولهذا لا يفسّر أي من الاسمين وحده عرَضًا ما. وفصل الاثنين يجيب عن أي مكوّن تفحص وأي خطوة موافقة تتوقع.
سؤالان لا اسم واحد
اسأل عمّا يفعله المكوّن قبل أن تسأل كيف يُثبَّت. تحدد القدرة فئة المزوّد الموجودة، وبالتالي الشيفرة التي تتعامل مع حزمك. وتحدد آلية التسليم كيف تصل الشيفرة الثنائية، وكيف تُعتمد، وأين تُسجَّل حالتها. يمكن لمنتج أن ينفّذ نفق حزم دون تسليم إضافة نظام على الإصدارات الأقدم، ويمكنه أن يسلّم إضافة نظام تنفّذ شيئًا غير النفق.
إضافات النواة هي المصطلح الثالث الذي يخلطه الناس. كانت الطريقة الأقدم لتشغيل شيفرة شبكة ذات امتيازات، وكانت تتطلب موافقات مختلفة، وقد ظلّت Apple تدفع المطوّرين بعيدًا عنها لسنوات. وتطبيق وصفة الموافقة الخاصة بإضافات النواة على عميل حديث يهدر الوقت على نافذة لن تظهر أبدًا.
اقرأ ملاحظات النشر من المورّد للإصدار من macOS الذي تشغّله بدلًا من منشور منتدى من إصدار أقدم. تغيّرت البنية أكثر من مرة، والتعليمات تتقادم بسرعة. والملاحظة التي تذكر الموافقة على إضافة النواة تصف عصرًا مختلفًا من المنتج.
ما يقدّمه Network Extension
توفّر الأداة أنواعًا من المزوّدين للمهام الشبكية الشائعة: نفق حزم لحركة VPN، ووكيل تطبيقات لتدفّقات كل تطبيق، ومرشّح محتوى لفحص الحركة، ومعالجة وكيل DNS لسلوك المُحلِّل. ويحدد نوع المزوّد ما يمكن للإضافة فعله، والعميل الذي يسلّم مزوّدين قد يقوم بمهمتين مختلفتين.
هذا مهم أثناء التشخيص لأن العرَض نفسه للاتصال قد يأتي من نفق أو مرشّح أو وكيل DNS. حجب موقع هو قرار مرشّح، والفشل في الوصول إلى شبكة فرعية خاصة هو عادةً قرار نفق، وحلّ العنوان الخطأ هو عادةً قرار مُحلِّل. وتسمية نوع المزوّد تضيّق البحث قبل قراءة أي سجل.
لا شيء في الأداة يوحي بموقف خصوصية معين. فالإضافة في مساحة المستخدم لا تزال لها أذونات وإعدادات ومشغّل وراءها، لذا تعامل مع البنية كتفصيل تنفيذي لا كإشارة ثقة. واسأل من يشغّل نقطة النهاية وما هي مهيّأة لجمعها.
ما يغيّره System Extensions
تنقل الآلية الشيفرة ذات الامتيازات من النواة إلى مساحة المستخدم، وتغيّر طريقة طلب نظام التشغيل للموافقة. التفعيل خطوة منفصلة عن التثبيت، وعلى المستخدم أو ملف MDM أن يسمح به. عميل يُثبَّت لكنه لا يُفعَّل أبدًا يبدو موجودًا في مجلد Applications ولا يفعل شيئًا للاتصال.
يسجّل النظام الحالة بدلًا من التطبيق، وهذا مفيد لأنها قابلة للاستعلام. ويسرد الأمر أدناه الإضافات التي يعرفها النظام وحالة تفعيلها.
systemextensionsctl list
scutil --nc list
يجيب الأمر الأول عمّا إذا كان المكوّن مثبّتًا ومفعّلًا. ويسرد الثاني تهيئات VPN التي يحتفظ بها النظام، وهو سؤال مختلف وغالبًا هو المهم عندما يكون ملف تعريف الاتصال مفقودًا لا معطوبًا.
أي واحد تفحص لعرَض معين
طابِق العرَض مع الطبقة قبل فتح لوحة إعدادات. التهيئة المفقودة سؤال ملف تعريف، والمكوّن المثبّت غير المفعّل سؤال تسليم، والمكوّن المفعّل الذي لا يمرّر الحركة سؤال قدرة.
| Symptom | First place to look |
|---|---|
| No VPN entry at all | Configuration profile or scutil list |
| Client installed, nothing happens | Extension activation state |
| Tunnel up, private host unreachable | Tunnel provider routes and policy |
| One app blocked, others fine | Filter or app proxy provider |
سجلّ البث هو الدليل المشترك للصفّين الأخيرين. فقراءة نظام فرعي لإضافة الشبكة تخبرك أي مزوّد تعامل مع التدفّق، وقرار المرشّح يبدو مختلفًا عن فشل النفق حتى عندما يصف المستخدم الاثنين بأن VPN معطوب.
log show --last 10m --predicate 'process == "nesessionmanager"'
لا تستنتج أن إضافة مفعّلة لأن أيقونة في شريط القوائم موجودة. فالأيقونات تبقى بعد فشل التفعيل، والأيقونة القديمة من أكثر أسباب بدء مكالمة دعم في المكان الخطأ. اقرأ حالة التفعيل بدلًا من ذلك، لأنها ما يسجّله النظام.
الموافقة وMDM وأسطورة إضافة النواة
على أجهزة Mac المُدارة، تنتمي خطوة الموافقة إلى ملف MDM، وقد يظل المستخدم الذي ينقر Allow في System Settings محجوبًا بسياسة لم تُحدَّث. اسأل فريق سطح المكتب أي آلية تعتمد الإضافة لتلك المجموعة قبل أن تطلب من المستخدم النقر على أي شيء.
على جهاز Mac غير مُدار، يظهر طلب الموافقة مرة واحدة، وقد يكون الرفض دائمًا حتى تُعاد إضافة النظام. ويفسّر هذا السلوك الجهاز الذي عمل عليه العميل قبل ترقية نظام التشغيل ويبلّغ الآن عن اتصال لا ينشأ أبدًا.
اكتب نوع المزوّد وحالة التفعيل وآلية الموافقة الخاصة بالعميل الذي تنشره. فهذه الحقائق الثلاث تجيب عن معظم الأسئلة المستقبلية حول VPN على Mac دون إعادة فتح جدل القدرة مقابل التسليم.