Mac VPN کے لیے مستقل روٹس: networksetup یا کنیکٹ ہک؟
ہر دوبارہ کنیکشن کے بعد لکھا جانے والا روٹ کوئی پالیسی نہیں۔ فیصلہ کریں کہ سابقہ VPN سروس، عارضی جانچ، یا صرف بات چیت کے بعد معلوم ہونے والے پتوں کے لیے ہک سے تعلق رکھتا ہے۔
ہر کنیکشن کے بعد لکھا جانے والا روٹ لمحے کا حل ہے، ہفتے کا نہیں۔ macOS پر، پائیدار انتخاب عام طور پر VPN سروس کے ساتھ محفوظ سابقہ ہوتا ہے، کیونکہ سروس اسے ہر کنیکشن پر دوبارہ نصب کرتی ہے اور سروس بند ہونے پر ہٹا دیتی ہے۔ متبادل جانچ کے لیے عارضی route add اور صرف بات چیت کے بعد معلوم ہونے والے پتوں کے لیے کنیکٹ ہک ہیں۔
فیصلہ کریں کہ روٹ سروس کا ہے یا سیشن کا
پوچھیں کہ سابقہ کس پر منحصر ہے۔ اگر یہ مقامی VPN سروس کے پیچھے مقررہ نجی نیٹ ورک ہے، تو روٹ اسی سروس کا ہے۔ اگر یہ ہر کنیکشن پر بدلنے والے پیر پتے پر منحصر ہے، تو ہک یا حالت سے چلنے والا کام بہتر مالک ہو سکتا ہے۔ اگر آپ صرف اگلے پانچ منٹ کے لیے راستہ جانچ رہے ہیں، تو عارضی روٹ کافی ہے۔
سروس سے بندھے روٹ کا زندگی کا دورانیہ سب سے صاف ہے۔ یہ سروس کے ساتھ ظاہر ہوتا ہے اور سروس منسلک نہ ہونے پر غائب ہو جاتا ہے، اس لیے یہ اس سرنگ سے زیادہ زندہ نہیں رہ سکتا جس کی طرف اشارہ کرتا ہے۔ یہ خصوصیت ایک سطری کمانڈ کی سہولت سے زیادہ قیمتی ہے۔
سیشن سے بندھا روٹ انٹرفیس کا ہے، اور وہ عدد اطلاع کے بغیر بدلتا ہے۔ دوبارہ کنیکشن سرنگ کو پچھلے سیشن سے مختلف utun نام دے سکتا ہے، جو سخت کوڈ شدہ کمانڈ کو ایسے روٹ میں بدل دیتا ہے جو کہیں اشارہ نہیں کرتا یا، اس سے بدتر، کسی دوسری سرنگ کی طرف۔
موجودہ روٹ اور سروس کی حالت پڑھیں
سسٹم اصل میں جو نام استعمال کرتا ہے ان سے شروع کریں۔ نیٹ ورک سیٹنگز میں سروس کا نام نیچے دی گئی کمانڈز کے لیے شناخت کنندہ ہے، اور موجودہ روٹ جدول دکھاتا ہے کہ منسلک کلائنٹ نے کیا نصب کیا۔ سرنگ چلنے کے دوران دونوں پڑھیں۔
scutil --nc list
networksetup -listnetworkserviceorder
netstat -rn | head -30
route get 10.20.5.5
وہ تلاش دکھاتی ہے کہ کرنل اس لمحے اس پتے کے لیے کون سا گیٹ وے اور انٹرفیس چنے گا۔ اگر یہ پہلے ہی سرنگ چنتا ہے، تو سابقہ ڈھکا ہوا ہے اور نیا روٹ زائد ہوگا۔ اگر یہ مقامی راؤٹر چنتا ہے، تو سرنگ میں وہ سابقہ نہیں ہے۔
منسلک رہنے کے دوران پیر کا پتہ نوٹ کریں۔ یہ سروس سے بندھے روٹ میں گیٹ وے کی قدر بنتا ہے، اور عام طور پر netstat -rn میں سرنگ کے ڈیفالٹ روٹ کے لیے دکھایا گیا منزل یہی ہوتا ہے۔
networksetup سے سابقہ محفوظ کریں
networksetup ٹول نیٹ ورک سروس میں اضافی روٹس جوڑتا ہے۔ OfficeVPN نامی سروس اور سرنگ کے پیر کے ذریعے پہنچنے والے نجی سابقہ کے لیے، شکل یہ ہے:
sudo networksetup -setadditionalroutes OfficeVPN 10.20.0.0 255.255.0.0 10.8.0.6
networksetup -getadditionalroutes OfficeVPN
سروس کے نام کے بعد ہر ثلاثی منزل، اس کا نیٹ ماسک اور گیٹ وے کے طور پر سرنگ کا پیر دیتی ہے۔ ایک کال کئی سابقے لے جا سکتی ہے، اور خالی کال محفوظ فہرست مٹا دیتی ہے۔ قاری تصدیق کا مرحلہ ہے؛ اگر فہرست خالی ہے، تو سیٹ اس سروس پر لاگو نہیں ہوا جو آپ سوچتے ہیں۔
گیٹ وے سرنگ کا پیر ہونا چاہیے، جسمانی راؤٹر نہیں۔ جو روٹ مقامی گیٹ وے کا نام دیتا ہے وہ نجی سابقہ جسمانی انٹرفیس سے باہر بھیجتا ہے، جو اضافی مراحل کے ساتھ اصل ناکامی ہے۔ پرانا پیر سب سے عام وجہ ہے کہ درست دکھنے والا روٹ کبھی ٹریفک نہیں ڈھوتا۔ پرانے نوٹ سے پتہ نقل کرنے کے بجائے منسلک حالت سے پیر دوبارہ پڑھیں۔
route add صرف جانچ کے لیے استعمال کریں
سیدھا روٹ سابقہ کو مستقل بنانے سے پہلے یہ ثابت کرنے کے لیے مفید ہے کہ یہ کام کرتا ہے۔ انٹرفیس کی شکل گیٹ وے کی تلاش سے بچتی ہے:
sudo route -n add -net 10.20.0.0/16 -interface utun4
روٹ اگلے دوبارہ کنیکشن پر غائب ہو جاتا ہے اور آج موجود انٹرفیس نمبر پر منحصر ہے۔ یہ اسے تشخیص بناتا ہے، تعیناتی نہیں۔ اگر جانچ کامیاب ہو اور سروس سے بندھا روٹ نہ ہو، تو پہلے گیٹ وے کی قدر کا موازنہ کریں؛ وہی سب سے زیادہ غلط ہونے والا میدان ہے۔
ان مشوروں سے ہوشیار رہیں جو تقسیم کا رویہ مسلط کرنے کے لیے VPN کے ڈیفالٹ روٹ کی جگہ لیتے ہیں۔ مکمل سرنگ نافذ کرنے والا کلائنٹ دوبارہ کنیکشن یا پالیسی ریفریش کے بعد اپنے روٹس دوبارہ نصب کر سکتا ہے، اس لیے دستی تبدیلی خاموشی سے منسوخ ہو جاتی ہے۔ چند نجی سابقے روٹنگ کا مسئلہ ہیں؛ مکمل سرنگ پالیسی کے خلاف ساری انٹرنیٹ ٹریفک مقامی رکھنا سرور کی طرف کا فیصلہ ہے۔
ہک صرف اس وقت چنیں جب پتے پر بات چیت ہو
PPP پر مبنی روابط کے لیے، جیسے L2TP، macOS رابطہ قائم ہونے کے بعد /etc/ppp/ip-up چلاتا ہے۔ اسکرپٹ کو انٹرفیس کا نام اور طے شدہ مقامی و دور دراز پتے ملتے ہیں، اس لیے یہ سرور کے تفویض کردہ پیر پر منحصر روٹ شامل کر سکتی ہے۔ یہی وہ صورتحال ہے جو مقررہ سروس روٹ بیان نہیں کر سکتا۔
IKEv2 اور وینڈر کلائنٹ اس PPP راستے کو بالکل استعمال نہ کر سکیں، جس کا مطلب ہے اسکرپٹ پورے سیشن میں خاموش رہ سکتی ہے۔ جب ایسا ہو، تو scutil --nc status سے پوچھنے والا اور حالت کی تبدیلی پر عمل کرنے والا launchd کام ہی مساوی طریقہ کار ہے، تھوڑی تاخیر کے ساتھ۔
آپ کوئی بھی ہک استعمال کریں، اسے ایڈمپوٹنٹ بنائیں اور یہ صرف اپنے بنائے ہوئے روٹس ہٹائے۔ جو اسکرپٹ سرنگ کا ذکر کرنے والا ہر روٹ مٹا دیتی ہے، وہ آخرکار وہ روٹ بھی مٹا دے گی جو VPN سرور کو قابل رسائی رکھتا ہے، اور کنیکشن کامیاب ہوتے ہی ٹوٹ جائے گا۔
نجی منزل، عام براؤزنگ اور دوبارہ کنیکشن یا نیند کے چکر کی جانچ کر کے ختم کریں۔ پھر scutil --dns کا معائنہ کریں، کیونکہ ناموں کا حل الگ پالیسی ہے اور چلنے والا روٹ یہ ثابت نہیں کرتا کہ نجی نام حل ہوتے ہیں۔