Mac کے لیے VPN کلائنٹ: Network Extension بمقابلہ System Extension
Network Extension ایک صلاحیت ہے اور System Extensions ایک ترسیل کا طریقہ: انہیں الگ کریں تاکہ macOS کی منظوری کا مرحلہ اور پڑھنے والا لاگ منتخب کریں۔
Apple کی دو اصطلاحیں ایسے استعمال ہوتی ہیں جیسے ایک ہی چیز کا نام دیں، اور یہ الجھن لوگوں کو غلط ترتیبات پینل پر بھیجتی ہے۔ Network Extension ایک صلاحیت بیان کرتا ہے: VPN سرنگوں، پراکسیوں اور فلٹروں کو نافذ کرنے کا تعاون یافتہ طریقہ۔ System Extensions صارف کی جگہ میں توسیعات کے لیے ترسیل اور منظوری کا طریقہ بیان کرتا ہے۔ جدید Mac VPN کلائنٹ کو عام طور پر دونوں کی ضرورت ہوتی ہے، اسی لیے کوئی ایک لیبل تنہا علامت کی وضاحت نہیں کرتا۔ دونوں کو الگ کرنا یہ بتاتا ہے کہ کون سا جزو جانچنا ہے اور کس منظوری مرحلے کی توقع کرنی ہے۔
دو سوال، ایک لیبل نہیں
یہ پوچھنے سے پہلے کہ جزو کیسے نصب ہوتا ہے، پوچھیں کہ وہ کیا کرتا ہے۔ صلاحیت طے کرتی ہے کہ کون سی فراہم کنندہ کلاس موجود ہے اور اسی لیے کون سا کوڈ آپ کے پیکٹ سنبھالتا ہے۔ ترسیل کا طریقہ طے کرتا ہے کہ بائنری کیسے آتی ہے، کیسے منظوری ملتی ہے اور اس کی حالت کہاں درج ہوتی ہے۔ کوئی مصنوع پرانے ورژنوں پر سسٹم توسیع بھیجے بغیر پیکٹ سرنگ نافذ کر سکتی ہے، اور ایسی سسٹم توسیع بھی بھیج سکتی ہے جو سرنگ کے علاوہ کچھ اور نافذ کرے۔
کرنل توسیعات وہ تیسری اصطلاح ہیں جنہیں لوگ ملا دیتے ہیں۔ یہ مراعات یافتہ نیٹ ورک کوڈ چلانے کا پرانا طریقہ تھیں، انہیں مختلف منظوریوں کی ضرورت تھی، اور 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 پروفائل کا ہوتا ہے، اور System Settings میں Allow پر کلک کرنے والا صارف اب بھی ایسی پالیسی سے روکا جا سکتا ہے جو اپ ڈیٹ نہیں ہوئی۔ صارف سے کچھ کلک کرنے کو کہنے سے پہلے ڈیسک ٹاپ ٹیم سے پوچھیں کہ اس بیڑے کے لیے کون سا طریقہ توسیع کی منظوری دیتا ہے۔
غیر منظم Mac پر منظوری کی درخواست ایک بار ظاہر ہوتی ہے اور توسیع دوبارہ نصب ہونے تک انکار مستقل ہو سکتا ہے۔ یہ رویہ اس مشین کی وضاحت کرتا ہے جہاں OS اپ گریڈ سے پہلے کلائنٹ کام کرتا تھا اور اب ایسے کنکشن کی اطلاع دیتا ہے جو کبھی قائم نہیں ہوتا۔
آپ جو کلائنٹ تعینات کرتے ہیں اس کے لیے فراہم کنندہ قسم، فعال کرنے کی حالت اور منظوری کا طریقہ لکھیں۔ یہ تین حقائق صلاحیت بمقابلہ ترسیل کی بحث دوبارہ کھولے بغیر Mac VPN کے بارے میں زیادہ تر مستقبل کے سوالات کا جواب دیتے ہیں۔