آپ SSH سے لاگ اِن کرتے ہیں، -D 1080 شامل کرتے ہیں اور کمانڈ کامیاب ہوتی ہے۔ اب فون پر SOCKS سننے والا موجود ہے، اور آدھی ایپس اب بھی موبائل ڈیٹا سے باہر جاتی ہیں۔ یہ معمول کا نتیجہ ہے، ٹوٹی ہوئی ٹنل نہیں: ssh -D پراکسی کا آخری نقطہ بناتا ہے، اور Android ایپس پراکسی صرف اسی وقت استعمال کرتی ہیں جب کوئی چیز انہیں مجبور کرے۔ زنجیر کو قدم بہ قدم چلنا دکھاتا ہے کہ کام کا ہر حصہ واقعی کہاں رہتا ہے۔

جہاں سے ٹریفک شروع ہوتی ہے وہیں سے شروع کریں

وہ ایپ چنیں جسے ٹنل استعمال کرنی چاہیے اور دیکھیں کہ اس کی اپنی پراکسی سیٹنگ ہے یا نہیں۔ SOCKS فیلڈ والا براؤزر آسان معاملہ ہے: اسے 127.0.0.1:1080 کی طرف اشارہ کریں، سیٹنگ ہو تو ریموٹ DNS آن کریں، اور درخواست گزر جاتی ہے۔ چیٹ کلائنٹ، نقشے کی ایپ یا ایسی فیلڈ کے بغیر گیم کے پاس سننے والا استعمال کرنے کا کوئی راستہ نہیں، اور SSH کمانڈ میں آپ جو لکھیں وہ اسے نہیں بدلتا۔

کسی اور چیز کو شامل کرنے سے پہلے ثابت کریں کہ سننے والا فون کے اپنے شیل سے SOCKS سیدھا بولنے والے کلائنٹ کے ساتھ کام کرتا ہے:

ssh -N -D 1080 [email protected]
curl --socks5-hostname 127.0.0.1:1080 https://ifconfig.me

واپس آنے والا پتہ SSH سرور کا ہونا چاہیے، فون کا نہیں۔ اگر ایسا ہے تو پراکسی کا آدھا حصہ مکمل اور باقی کام کوریج کا ہے۔ اگر نہیں، پہلے SSH طرف درست کریں: کلید کی توثیق، سرور کی منزل تک پہنچنے کی صلاحیت اور SSH سرور کا اپنا اخراج۔

وہ حصہ شامل کریں جو Android کو چاہیے

پراکسی سیٹنگ کے بغیر ایپس کو ایسی چیز چاہیے جو ان کے پیکٹ پکڑے اور انہیں پراکسی کنکشن بنائے۔ root کے بغیر آلے پر یہ VPN سروس اڈاپٹر ہے: ایسی ایپ جو ورچوئل انٹرفیس لے اور منتخب ٹریفک مقامی SOCKS سننے والے کو بھیجے۔ زنجیر ایپ، اڈاپٹر، SOCKS سننے والا، SSH کنکشن، منزل بن جاتی ہے۔

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

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

SSH ٹرانسپورٹ کو پکڑنے سے باہر رکھیں

SSH کنکشن خود جس SOCKS ٹنل کو سنبھالتا ہے اس میں واپس نہیں بہنا چاہیے۔ اگر اڈاپٹر SSH ایپ کی ٹریفک پکڑے، تو ٹنل اس کنکشن پر منحصر ہے جو ٹنل کا انتظار کر رہا ہے، اور نتیجہ ایسا لوپ ہے جو اڈاپٹر شروع ہوتے ہی رک جاتا ہے یا ناکام ہو جاتا ہے۔

یکجا عمل درآمد اپنے ٹرانسپورٹ ساکٹ کی حفاظت کرتے ہیں۔ الگ ایپس کے ساتھ معاون استثنا چاہیے: SSH ایپ کو پکڑنے سے باہر رکھیں، یا پتے کے مطابق SSH آخری نقطہ مستثنیٰ کریں۔ دونوں کی قیمت ہے۔ پوری ٹرمینل ایپ مستثنیٰ کرنے سے اس کی غیر متعلق نیٹ ورک سرگرمی بھی ٹنل سے نکل جاتی ہے، اور پتے کا استثنا تب ٹوٹتا ہے جب سرور کا پتہ بدلے یا اگلی کنکشن پر نام مختلف طریقے سے حل ہو۔

استثنا کو باہر سے جانچیں: اڈاپٹر دوبارہ جوڑیں، پھر تصدیق کریں کہ SSH سیشن زندہ رہتا ہے اور پراکسی درخواست اب بھی سرور کا پتہ بتاتی ہے۔ اڈاپٹر شروع ہونے تک چلنے اور پھر جم جانے والا سیشن وہی لوپ ہے۔

DNS اور UDP کی زنجیر کے آخر تک پیروی کریں

OpenSSH کی متحرک فارورڈنگ TCP کنکشن لے جاتی ہے۔ یہ UDP-associate یا ICMP ٹرانسپورٹ نہیں، اور اڈاپٹر UDP پیکٹ قبول کر کے UDP فارورڈنگ نہیں بنا سکتا۔ UDP پر اصرار کرنے والی ہر چیز، QUIC اور WebRTC میڈیا سمیت، ایپ کے مطابق ناکام ہوتی ہے یا TCP پر واپس آ جاتی ہے۔

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

SOCKS سننے والے کو loopback سے بندھا رکھیں، پہلے استعمال پر SSH سرور کی host چابی کی تصدیق کریں، اور آخری سائٹ کے لیے عام HTTPS توثیق اپنی جگہ پر رہنے دیں۔ SSH فون سے سرور تک حصے کی حفاظت کرتا ہے؛ یہ اس چیز کو خفیہ نہیں کرتا جو سرور بعد میں کرتا ہے۔

دو زندگی کے دورانیے جانچیں اور فیصلہ کریں

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

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

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

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