دو لوگ ایک ہی سوال پوچھتے ہیں اور ایک دوسرے سے نہ ملنے والے جواب پاتے ہیں، کیونکہ وہ مختلف جگہوں پر کھڑے ہیں۔ ایک کے سامنے سسٹم کی VPN سیٹنگز کی اسکرین کھلی ہے اور وہ ایپس کی فہرست میں ترمیم کر رہا ہے۔ دوسرا ایڈیٹر میں VpnService.Builder.addDisallowedApplication() لکھ رہا ہے۔ دونوں اسے فی ایپ VPN فلٹر کہتے ہیں۔ ان میں سے صرف ایک کے پاس وہ کنٹرول ہے جسے وہ بیان کر رہے ہیں، اور دونوں کچھ بھی بلاک نہیں کر رہے۔

اس اسکرین سے شروع کریں جو صارف دیکھتا ہے

سیٹنگز کھولیں، VPN کا اندراج تلاش کریں اور وہ کنکشن دیکھیں جو واقعی فعال ہے۔ اگر کلائنٹ فی ایپ فہرست پیش کرتا ہے تو یہ فہرست خود کلائنٹ کی ٹنل کی ہے۔ پلیٹ فارم ایسی عمومی API شائع نہیں کرتا جس کے ذریعے کوئی غیر متعلق ایپ کسی دوسری VPN کی ایپ کے انتخاب کو پڑھ یا بدل سکے، اس لیے دوسری ایپ صارف کی خاطر وہ فہرست درست نہیں کر سکتی۔

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

پیکٹ کا ٹنل تک پیچھا کریں

جب آپ کی اپنی ایپ ٹنل بناتی ہے تو وہ TUN انٹرفیس بناتی ہے اور اعلان کرتی ہے کہ کون سی ایپس کی ٹریفک اس میں داخل ہوتی ہے۔ ممبرشپ کالز انٹرفیس قائم ہونے سے پہلے ہوتی ہیں، اور اس کے بعد اس سیشن کے لیے قواعد کا مجموعہ مقرر ہو جاتا ہے:

val builder = VpnService.Builder()
builder.addAddress("10.8.0.2", 32)
builder.addRoute("0.0.0.0", 0)
builder.addDisallowedApplication("com.example.bypass")
val tun = builder.establish()   // membership decided here

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

خارج کرنا بلاک جیسا کیوں لگا

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

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

خود بنانے پر کیا ٹوٹتا ہے

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

پیکٹ کی نظر آنا دوسرا جال ہے۔ ایپ کے پیکج کا نام حل کرنا NameNotFoundException کے ساتھ ناکام ہو سکتا ہے، اور نئے Android ورژنز پر آپ کو نظر آنے والے پیکجز کا مجموعہ آپ کے اعلان کردہ سوالات پر منحصر ہے۔ ہر نام کے حل ہونے کے مفروضے کے بجائے استثنا سنبھالیں، اور ایپس کی تنصیب یا معطلی پر فہرست دوبارہ پڑھیں، اسے ہمیشہ کے لیے کیش میں رکھنے کے بجائے۔

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

اسے ایسی ایپ سے آزمائیں جسے آپ کنٹرول کرتے ہیں

جس ایپ کو آپ فلٹر کرنا چاہتے ہیں اس سے آزمائش نہ کریں۔ دوسری ایپ استعمال کریں جس کا نیٹ ورک رویہ آپ دیکھ سکیں، اور جانچیں کہ اس کی ٹریفک آپ کی ٹنل سے باہر جاتی ہے جبکہ ہدف کی نہیں جاتی۔ اگر دونوں اندر رہیں تو پالیسی کام کر رہی ہے اور ہدف خارج ہے؛ اگر کوئی بھی باہر نہ جائے تو ٹنل ہی غلط ہے اور ایپ فہرست مسئلہ نہیں۔

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

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