VPN کلائنٹ اَن انسٹال ہو گیا، پھر بھی ٹنل بوٹ پر شروع ہوتی ہے
ہٹایا گیا VPN کلائنٹ ایک systemd یونٹ، محفوظ پروفائل، ایک مددگار اور apt مخزن چھوڑ سکتا ہے۔ کچھ اور صاف کرنے سے پہلے چاروں کی فہرست بنائیں۔
آپ کی ڈسٹرو پیکیج ہٹا دیتی ہے، آپ کا مینو اپنا اندراج کھو دیتا ہے، اور اگلی ری بوٹ کے بعد بھی ٹنل اوپر آ جاتی ہے۔ تجارتی VPN کلائنٹ ایسے ٹکڑے چھوڑتا ہے جنہیں پیکیج مینیجر نے کبھی ٹریک نہیں کیا، اس لیے صاف اَن انسٹال ہونا صاف مشین کے برابر نہیں۔ ان ٹکڑوں میں سے چار تقریباً ہر بھوت کنکشن کی وضاحت کرتے ہیں: ایک یونٹ، ایک کنکشن پروفائل، ایک مراعات یافتہ مددگار اور ایک فروش مخزن۔ کچھ بھی حذف کرنے سے پہلے چاروں پڑھیں، پھر ہر ایک کو اس جزو کے ذریعے ہٹائیں جو اس کا مالک ہے۔
جو اَن انسٹالر نے کبھی ریکارڈ نہیں کیا
پیکیج مینیجر صرف وہی فائلیں ہٹاتا ہے جو اس نے خود لکھیں، اور کچھ نہیں۔ اس کے پاس کلائنٹ کی رن ٹائم میں بنائی گئی کنکشن پروفائل، انسٹال کے بعد فعال کی گئی یونٹ، یا بلند حقوق کے ساتھ چلتے ہوئے خود کو رجسٹر کرنے والے مددگار کا کوئی ریکارڈ نہیں۔ ان میں سے ہر ایک الگ ذیلی نظام سے تعلق رکھتا ہے، اور ہر ایک پیکیج کے بعد ایک یا زیادہ ری بوٹ تک زندہ رہ سکتا ہے۔ یہی خلا بتاتا ہے کہ ٹنل صحت مند کیسے ہو سکتی ہے جبکہ اسے بنانے والا سافٹ ویئر جا چکا ہو۔
باقیات کا ہمیشہ کوئی مالک ہوتا ہے، چاہے وہ systemd ہو، NetworkManager ہو، مخزن کی تشکیل ہو یا فی صارف آٹو اسٹارٹ اندراج۔ پہلے مالک کا پتہ لگانا ہی صفائی کو آدھی ترتیب شدہ مشین بننے سے روکتا ہے۔ فائلوں کو براہ راست حذف کرنا عموماً تب تک کام کرتا ہے جب تک مالک انہیں دوبارہ نہ بنائے، اسی لیے نیچے دیے گئے احکام سوالات سے شروع ہوتے ہیں۔
چار مالک، پہلے صرف پڑھنا
حذف کرنے کی بجائے سوالات سے شروع کریں اور واپس آنے والے درست نام لکھ لیں۔ فروش اکثر میٹا پیکیج کے ساتھ ورژن والا پے لوڈ بھیجتے ہیں، اس لیے ایک ہی مصنوعہ دو ناموں سے ظاہر ہو سکتا ہے۔ دونوں فہرستوں میں نظر آنے والا نام دو مالکوں والی ایک ہی مصنوعہ ہے، اور دونوں کو ہٹانا ضروری ہے۔ پہلا بیچ پیکیجوں اور یونٹوں کا احاطہ کرتا ہے، جہاں زیادہ تر باقیات نظر آتی ہیں۔
dpkg -l | grep -i acmevpn
systemctl list-unit-files | grep -i acmevpn
systemctl list-units --type=service --state=running | grep -i acmevpn
دوسرا بیچ ان دو اجزا کا احاطہ کرتا ہے جو صفائی کے بعد سب سے زیادہ بچتے ہیں، یعنی کنکشن پروفائل اور فروش مخزن۔ نام کی بجائے UUID کالم پڑھیں، کیونکہ مکرر نام عام ہیں اور حذف کا حکم شناخت کنندہ کی توقع کرتا ہے۔ مخزن کی سطر آج نہ ہٹانے پر بھی پڑھنے کے قابل ہے، کیونکہ مردہ فروش میزبان مہینوں بعد غیر متعلقہ انسٹالیشن کو توڑ سکتا ہے۔ دونوں میں سے کوئی فہرست کچھ تبدیل نہیں کرتی، اور انہیں پہلے چلانے کا مقصد یہی ہے۔
nmcli -f NAME,UUID,TYPE connection show
nmcli connection show --active
grep -ril acmevpn /etc/apt/sources.list.d/ /etc/apt/sources.list
صفائی کے بعد بھی زندہ عمل یا تو فعال یونٹ ہے یا کسی دوسرے پروگرام کی اولاد۔ اب موجود نہ ہونے والی سروس کو الزام دینے سے پہلے عمل کا جدول اور اس کی والدین کی زنجیر پڑھیں۔ فی صارف آٹو اسٹارٹ اندراجات کو بھی وہی جانچ چاہیے، اور وہ صرف نئے لاگ ان شیل میں ظاہر ہوتے ہیں، root سیشن میں نہیں۔
تین افعال جو ایک دوسرے کی جگہ نہیں لے سکتے
روکنا موجودہ عمل ختم کرتا ہے، غیر فعال کرنا بوٹ کے وقت کے روابط ہٹاتا ہے، اور ماسک کرنا یونٹ کو /dev/null کی طرف اشارہ کرتا ہے۔ صرف تیسرا ہی ساکٹ، ٹائمر یا انحصار کے ذریعے فعال ہونے کو بھی روکتا ہے، جو اسے تینوں میں سب سے مضبوط بناتا ہے۔ مشین کے ساتھ کیا کرنا ہے یہ طے کرتے وقت ترتیب اہم ہے۔ اس فیصلے کے دوران ماسک کرنا درست حالت ہے، کیونکہ یہ اگلی بوٹ پر خاموشی سے شروع ہونے کی بجائے بلند آواز میں ناکام ہوتا ہے۔
دوبارہ انسٹال کرنے سے پہلے ماسک ہٹائیں، ورنہ نیا پیکیج ایسی وجہ سے ٹوٹا ہوا دکھے گا جو کسی نے نہیں لکھی۔ وہی احتیاط پیکیجنگ کے فرق پر بھی لاگو ہوتی ہے: ایک بلڈ ایسی یونٹ بھیجتا ہے جسے روکا جا سکتا ہے، جبکہ دوسرا کوئی سروس ہی نہیں چھوڑتا۔ فعل چننے سے پہلے طے کریں کہ آپ کے پاس کون سی پیکیجنگ ہے، کیونکہ صفائی کا راستہ دونوں میں مختلف ہے۔
وائلڈ کارڈز سے غلط پروفائل حذف ہوتی ہے
جو UUID آپ نے لکھا اس کے ساتھ پروفائل حذف کریں، اور کبھی وائلڈ کارڈ سے نہیں۔ keyfile ڈائریکٹری میں مشین کی ہر Wi-Fi اور Ethernet پروفائل بھی ہوتی ہے، اس لیے وسیع مماثلت وہ چیزیں ہٹا دیتی ہے جن کی آپ کو ابھی ضرورت ہے۔ ہاتھ سے حذف شدہ keyfile کو وہ پالیسی دوبارہ بنا سکتی ہے جو اس کی مالک ہے، جس سے حذف غیر مؤثر لگتا ہے۔
nmcli connection delete uuid <uuid>
اگر وہ پروفائل آپ کے پاس بچی واحد نقل ہو تو پہلے گیٹ وے اور شناخت برآمد کریں، کیونکہ مقامی حذف سرور پر کچھ منسوخ نہیں کرتا۔ مخزن بھی وہی اصول اپناتا ہے: واحد فروش فائل اور اس کی کی رنگ ہٹائیں، پھر پیکیج فہرستیں تازہ کریں اور وہ انسٹالیشن دوبارہ آزمائیں جو آپ واقعی چاہتے تھے۔ پرانا فریق ثالث اندراج چھوڑ دینا پرانی انحصار پن کر سکتا ہے یا بالکل جواب نہیں دے سکتا۔ دونوں حذف چھوٹے ہیں، اور آپ کی رکھی نقل سے کوئی بھی واپس لایا جا سکتا ہے۔
ری بوٹ کے بعد بھی کیا چلتا ہے
فتح کا اعلان کرنے سے پہلے ری بوٹ کریں، پھر ایپلیکیشن کی بجائے آثار تلاش کریں۔ پرانے کلائنٹ کے چھوڑے ہوئے ٹنل انٹرفیس، پرانا منقسم راستہ اور ہر لنک کے لیے DNS، ہر ایک کو اپنا حکم چاہیے۔ تینوں ایسی صفائی کے بعد بھی بچ سکتے ہیں جس نے ہر پیکیج کامیابی سے ہٹایا ہو۔
ip link
ip route
resolvectl status
نیا لاگ ان شیل بھی کھولیں، کیونکہ آٹو اسٹارٹ اندراج صرف وہیں متحرک ہوتا ہے۔ پھر /etc/NetworkManager/dispatcher.d/ پڑھیں ایسی اسکرپٹ کے لیے جو انٹرفیس کی حالت بدلنے پر ہر بار کنکشن اوپر لاتی ہے، جو پیچھے سروس کے بغیر ٹنل کے واپس آنے کی وضاحت کرتی ہے۔ اگر کوئی چیز اب بھی باہر کال کرتی ہے تو علامت رک جانے تک فائلیں حذف کرنے کی بجائے عمل کو اس کے والدین تک ٹریس کریں۔ مشین صاف کرنا اور اکاؤنٹ منسوخ کرنا الگ کام رہتے ہیں، اور ری بوٹ خاموش دکھنے پر ان میں سے صرف ایک ہی مکمل ہوتا ہے۔