macOS پر VPN ہٹانا ایک عمل لگتا ہے لیکن درحقیقت کم از کم چار ہے۔ سسٹم سیٹنگز کا بٹن سسٹم کنفیگریشن اسٹور سے ایک نیٹ ورک سروس حذف کرتا ہے۔ یہ کلائنٹ ایپ، اس ایپ کی نصب کردہ نیٹ ورک ایکسٹینشن، آپ کی کیچین میں موجود اسناد یا ڈیوائس مینجمنٹ کی بھیجی ہوئی پروفائل حذف نہیں کرتا۔ یہ جاننا کہ کون سی چیز کس علامت کی مالک ہے وہی چیز ہے جو ہٹائے گئے VPN کو خاموشی سے واپس آنے سے روکتی ہے۔

کنفیگریشن ہٹائیں بٹن اصل میں کیا حذف کرتا ہے

آپ جو بھی VPN شامل کرتے ہیں وہ نیٹ ورک سروس بن جاتا ہے، Wi-Fi یا Thunderbolt Bridge جیسی ہی قسم کی چیز۔ macOS ان سب کو یہاں رکھتا ہے: /Library/Preferences/SystemConfiguration/preferences.plist میں، ہر ایک کے ساتھ سروس ID، ظاہری نام اور ایک کنفیگریشن ڈکشنری جو ٹنل کی قسم، سرور کا پتہ اور ٹنل کا آغاز کیسے ہوتا ہے بیان کرتی ہے۔

جب آپ سسٹم سیٹنگز اور VPN کھولتے ہیں، کسی سروس کے ساتھ معلوماتی بٹن دباتے ہیں، کنفیگریشن ہٹائیں منتخب کرتے ہیں اور تصدیق کرتے ہیں، تو macOS ٹنل روکتا ہے، اس سروس آبجیکٹ کو حذف کرتا ہے اور اسٹور دوبارہ لکھتا ہے۔ جو سسٹم کی ملکیت ہے اس کے لیے یہ انہدام مکمل ہے: سروس فہرست سے جا چکی ہے اور لاگ ان پر کوئی چیز اسے شروع نہیں کرتی۔

بٹن جہاں نہیں پہنچ سکتا وہ ہر وہ چیز ہے جو کسی دوسرے ذیلی نظام کی ملکیت ہے۔ ایپ بنڈل یہاں ہے: /Applications۔ NetworkExtension کلائنٹ ایک سسٹم ایکسٹینشن کے طور پر چلتا ہے جو اس کی کنفیگریشن سے الگ رجسٹر ہوتا ہے۔ اسناد کیچین آئٹمز ہیں جن پر اس کیچین کے رسائی کنٹرول ہیں جو انہیں رکھتی ہے۔ کنفیگریشن پروفائل پروفائل سسٹم کی ملکیت ہے۔ سروس ہٹائیں اور چاروں وہیں رہ جاتے ہیں جہاں تھے۔

فہرست بنائیں کہ Mac اب بھی کیا نصب سمجھتا ہے

کچھ بھی حذف کرنے سے پہلے گنتی کریں۔ تین کمانڈز ان تین تہوں کو ڈھانپتی ہیں جو ایک ہی نظر آنے والی خرابی پیدا کرتی ہیں:

scutil --nc list
networksetup -listallnetworkservices
profiles -P

scutil --nc list VPN کنفیگریشنز کا مستند منظر ہے، کنکشن کی حالت، سروس کا نام اور سروس ID کے ساتھ۔ یہ اکثر ایسی اندراجات دکھاتا ہے جو سیٹنگز کی فہرست میں کبھی نہیں آتیں: مہینوں پہلے ان انسٹال کیے گئے کلائنٹ کی باقی سروسز اور خاموشی سے شروع ہونے والی طلب کے مطابق کنفیگریشنز۔ networksetup -listallnetworkservices نیٹ ورک سروسز کو ان ناموں سے دکھاتا ہے جن کی کمانڈ لائن ٹولز توقع کرتے ہیں، اور نام سے ہٹانے کے لیے آپ کو یہی درکار ہے۔ profiles -P نصب شدہ کنفیگریشن پروفائلز کی فہرست دیتا ہے؛ کسی منظم Mac پر VPN شاید آپ کی شامل کردہ سروس نہ ہو بلکہ ان پروفائلز میں سے کسی کے اندر کا پے لوڈ ہو۔

پہلی پر بھروسہ کرنے کے بجائے فہرستیں اکٹھی پڑھیں۔ scutil میں موجود ہو لیکن سیٹنگز میں نہ ہو تو عام طور پر اس کا مطلب ہے کہ کوئی تیسرے فریق کا کلائنٹ ٹنل کا مالک ہے اور اسے اپنی ونڈو میں دکھاتا ہے۔ دونوں مناظر میں موجود لیکن سیٹنگز میں سرمئی سروس پالیسی کا مطلب ہے۔ حذف کے بعد دوبارہ نمودار ہونے والا نام اس بات کا مطلب ہے کہ کوئی چیز اسے دوبارہ بناتی ہے، اور وہی چیز اصل ہدف ہے۔

سروس کو اس کے مالک کے ذریعے ہٹائیں

آپ کی خود شامل کردہ سروس کے لیے دستاویزی راستے پر رہیں: سسٹم سیٹنگز، VPN، معلوماتی بٹن، کنفیگریشن ہٹائیں۔ Apple اس راستے کی دستاویز کرتا ہے، اور یہ کنفیگریشن اسٹور کو ہم آہنگ رکھتا ہے۔ ہاتھ سے ترمیم کرنا preferences.plist جب نیٹ ورک اسٹیک چل رہا ہو، ان ڈبل یا زومبی سروسز تک پہنچنے کا راستہ ہے جنہیں کوئی انٹرفیس نہیں ہٹاتا۔

ٹرمینل سے، سروس کو نام سے اس کے ذریعے ہٹائیں: networksetup -removenetworkservice "Service Name"، پھر اس سے تصدیق کریں: scutil --nc list۔ کمانڈ انٹرفیس کی اسی سروس فہرست پر کام کرتی ہے، اس لیے networksetup -listallnetworkservices میں نہ دکھنے والا نام کسی بھی راستے سے نہیں ہٹے گا۔ جب کلائنٹ ٹنل کا مالک ہو تو پہلے اس کلائنٹ کا ہٹانے یا ان انسٹال کرنے کا راستہ استعمال کریں، کیونکہ کلائنٹ اگلی بار شروع ہونے پر سروس دوبارہ بناتا ہے۔

اگر VPN ڈیوائس مینجمنٹ سے آیا ہے تو آپ مالک نہیں ہیں۔ MDM کی نصب کردہ پروفائلز کو ناقابلِ حذف نشان زد کیا جا سکتا ہے، اور قابلِ حذف پروفائل بھی اگلی جانچ پر دوبارہ بھیجی جا سکتی ہے۔ اس سے تصدیق کریں: profiles -P، پھر اپنی تنظیم کی اخراج کا عمل استعمال کریں۔ پے لوڈ کو مقامی طور پر حذف کرنا یا ناکام ہوتا ہے یا دوبارہ انسٹال کرنے کا سبب بنتا ہے۔

وہ باقیات جو سروس کے بغیر دوبارہ جڑتی ہیں

عام «وہ واپس آ گیا» رپورٹ سروس کی واپسی نہیں بلکہ اس ایکسٹینشن کی واپسی ہے جو اس کی مالک ہے۔ رجسٹرڈ سسٹم ایکسٹینشنز اور نیٹ ورک ایکسٹینشن قسم کی ایپ ایکسٹینشنز کی فہرست بنائیں:

systemextensionsctl list
pluginkit -m -p com.apple.networkextension.packet-tunnel

NetworkExtension کلائنٹ اپنے ٹنل فراہم کنندہ کو اپنی شناخت کے تحت نصب رکھتا ہے، کسی بھی کنفیگریشن سے الگ۔ کنفیگریشن جانے کے بعد بھی ایکسٹینشن فعال رہ سکتا ہے، اور کلائنٹ کا مینو بار ایجنٹ اگلی بار شروع ہونے پر نئی کنفیگریشن بنا سکتا ہے، کبھی کبھار وہی نام دوبارہ استعمال کرتے ہوئے جو آپ نے ابھی حذف کیا۔ لاگ ان آئٹمز اور وینڈر کا مددگار یہاں جانچیں: /Library/LaunchDaemons اس سے پہلے کہ آپ یہ نتیجہ اخذ کریں کہ ہٹانا ناکام رہا۔

اسناد دوسری باقیات ہیں۔ لاگ ان کیچین میں محفوظ پاس ورڈ یا کلائنٹ سرٹیفکیٹ سروس کے ساتھ حذف نہیں ہوتا، اور IPSec کا مشترک راز تاریخی طور پر سسٹم کیچین میں رہتا ہے، اسی لیے ہٹا کر دوبارہ شامل کرنے پر کبھی کبھار پاس ورڈ کی درخواست چھوٹ جاتی ہے۔ اگر Mac آپ کے کنٹرول سے نکل رہا ہے تو Keychain Access میں سروس کے نام سے آئٹم تلاش کریں اور وہ اکاؤنٹ، سرٹیفکیٹ یا پیر کلید منسوخ کریں جس کی نمائندگی محفوظ اسناد کرتی ہیں۔ A copied configuration file is a live credential even after local removal۔

ہٹانا تصدیق کریں، اور واپس آنے والی پروفائل درست پڑھیں

ہٹانا اُس وقت مکمل ہوتا ہے جب سروس دونوں مناظر سے جا چکی ہو اور ری اسٹارٹ کے بعد بھی غائب رہے۔ جانچیں scutil --nc list میں سروس ID، scutil --dns سے تصدیق کریں کہ نام کی حل پذیری وہی حل کنندہ استعمال کرتی ہے جس کی آپ توقع کرتے ہیں، پھر ایک بار ری اسٹارٹ کریں، کیونکہ طلب کے مطابق قواعد اور لاگ ان ایجنٹ وہ دو چیزیں ہیں جو صرف صاف بوٹ پر خود کو ظاہر کرتی ہیں۔

اگر وہ اب بھی وہاں ہے تو مزید آبجیکٹ حذف نہ کریں۔ معلوم کریں کہ کس تہہ نے اسے دوبارہ بنایا: MDM پروفائل سروس دوبارہ بھیجتی ہے، کلائنٹ ایجنٹ اسے دوبارہ بناتا ہے، یا نام نہ ملنے کی وجہ سے سروس کبھی حذف ہی نہیں ہوئی۔ وہی جواب طے کرتا ہے کہ آپ کو وینڈر کا ان انسٹالر، آپ کی IT ٹیم یا اسی ہٹانے والے مکالمے کا ایک اور دور درکار ہے۔ Apple کا ہٹانے کا رہنما آپ کی شامل کردہ سروسز کے لیے معاون راستہ ڈھانپتا ہے؛ باقیات وہ حصہ ہیں جو آپ کو خود جانچنا ہے: remove a VPN configuration۔

متعلقہ مضامین