ADB اور Android ایمولیٹر VPN کے پیچھے ناکام: تین راستے
ADB کی دریافت، ایمولیٹر کا مجازی نیٹ ورک کارڈ اور میزبان کا حل کنندہ VPN کے پیچھے الگ الگ ناکام ہوتے ہیں۔ ٹنل کو قصوروار ٹھہرانے سے پہلے ہر راستہ ترتیب سے آزمائیں۔
آپ دفتر کا VPN جوڑتے ہیں اور Android Studio چل رہا ایمولیٹر کھو دیتا ہے، adb start-server رک جاتا ہے، اور Wi-Fi پر موجود حقیقی فون آلات کی فہرست سے گر جاتا ہے۔ لگتا ہے ایک ٹنل ایک مصنوعات کو روک رہا ہے۔ دراصل تین الگ راستے تین طرح ناکام ہوتے ہیں: adb کی آلات کی دریافت، ایمولیٹر کا مجازی نیٹ ورک اور میزبان کا حل کنندہ۔ ٹنل عام طور پر صرف آخری کا مالک ہوتا ہے، اور اکثر اس کا ایک حصہ۔
تین ساکٹ، تین مالک
adb سرور میزبان پر پورٹ 5037 پر سنتا ہے اور آلات سے USB یا TCP کے ذریعے بات کرتا ہے، نیٹ ورک کی دریافت کے لیے mDNS استعمال کرتا ہے۔ ایمولیٹر اپنے مجازی راؤٹر کے پیچھے چلتا ہے: مہمان 10.0.2.15 ہے، گیٹ وے 10.0.2.2 اور DNS سرور 10.0.2.3 ہے، اور ایمولیٹر کا عمل یہ سب میزبان کے ساکٹ میں بدل دیتا ہے۔ میزبان کا حل کنندہ وہ جگہ ہے جہاں VPN کلائنٹ DNS اور تلاش کے ڈومین نصب کرتا ہے۔
یہی علیحدگی بتاتی ہے کہ ایک درستی ایک آلے پر کیوں کام کرتی ہے اور دوسرے پر نہیں۔ میزبان کا حل کنندہ بدلنے والا کلائنٹ چلتے ہوئے ایمولیٹر عمل کو شروع میں پڑھی گئی حل کنندہ حالت کے ساتھ چھوڑ دیتا ہے۔ multicast چھاننے والا کلائنٹ DNS کو چھوئے بغیر دریافت توڑ دیتا ہے۔ مجازی اڈاپٹر چھاننے والا کلائنٹ میزبان کے براؤزر کے چلتے رہنے پر بھی ایمولیٹر کو انکار کر دیتا ہے۔ ہر علامت کی وجہ الگ ہے، اس لیے کوئی بھی ترتیب بدلنے سے پہلے ناکام راستہ پہچانیں۔
adb جو دیکھ سکتا ہے اس سے شروع کریں
VPN چھونے سے پہلے adb devices چلائیں۔ خالی فہرست نقل و حمل کا مسئلہ ہے، راستے کا نہیں، اور سرور نے جس آلے کو کبھی درج نہیں کیا اسے کوئی ٹنل ترتیب ٹھیک نہیں کرے گی۔ سرور کو صاف طور پر دوبارہ شروع کریں: پہلے adb kill-server پھر adb start-server، اور یہ دیکھنے کے لیے آؤٹ پٹ پڑھیں کہ کون سی پورٹ لی۔ اگر آغاز خود رک جائے تو multicast چھاننے والے نیٹ ورک پر mDNS دریافت عام مشتبہ ہے؛ دستاویزی حل دریافت بند کر کے سرور شروع کرنا ہے:
ADB_MDNS_OPENSCREEN=0 adb start-server
adb devicesحقیقی آلے کے لیے USB سب سے چھوٹا راستہ ہے۔ اگر TCP چاہیے تو آلے کو adb tcpip 5555 سے سننے کی حالت میں رکھیں اور آلے کے پتے اور پورٹ سے جڑیں، adb connect 192.0.2.10:5555۔ پورٹ 5037 میزبان سرور کی پورٹ ہے، وہ پورٹ نہیں جس پر آلہ سنتا ہے۔
ایمولیٹر کو اندر سے آزمائیں
ایمولیٹر 10.0.2.3 سے DNS کا جواب دیتا ہے، اور اس حل کنندہ کو میزبان کا عمل خوراک دیتا ہے۔ جب VPN کلائنٹ میزبان کا حل کنندہ بدلتا ہے تو ایمولیٹر اسے وراثت میں لے سکتا ہے؛ جب کلائنٹ ایمولیٹر عمل چھانتا ہے یا آغاز کے بعد میزبان کی اڈاپٹر فہرست بدلتی ہے تو نہیں لے سکتا۔ دونوں کو ایک ہی شیل سے عددی ہدف اور نام دے کر الگ کریں۔ adb shell ping -c 2 10.0.2.2 ثابت کرتا ہے کہ مجازی نیٹ ورک میزبان کی طرف پہنچتا ہے۔ اس کے بعد نام کی تلاش بتاتی ہے کہ حل حد سے گزرا یا نہیں۔
پھر وہی نام کی تلاش میزبان پر چلائیں۔ میزبان حل کرتا ہے اور ایمولیٹر نہیں کا مطلب ہے کہ ٹوٹنا میزبان کے حل کنندہ اور ایمولیٹر کے مجازی نیٹ ورک کے درمیان ہے، ٹنل میں نہیں۔ دونوں ناکام ہوں تو میزبان کا حل کنندہ دیکھنے کی جگہ ہے۔ VPN جڑنے کے بعد ایمولیٹر دوبارہ شروع کرنا ایک کوشش کے قابل ہے، کیونکہ کچھ کلائنٹ ایسی حل کنندہ حالت نصب کرتے ہیں جو چلتا ہوا ایمولیٹر عمل نہیں اٹھاتا۔
میزبان کا حل کنندہ اور کلائنٹ کے فلٹر جانچیں
مکمل ٹنل کا کلائنٹ میزبان کے حل کنندہ کو اپنے سے بدل دیتا ہے، اور split-DNS کلائنٹ تلاش کے ڈومین اور مشروط فارورڈر شامل کرتا ہے۔ اندرونی نام اکثر اسی split-DNS ترتیب پر منحصر ہوتے ہیں، اس لیے دیکھیں کہ جڑے رہنے پر میزبان کیا استعمال کرتا ہے: حل کنندہ کا پتہ، تلاش کا ڈومین اور یہ کہ اندرونی زون کارپوریٹ DNS پر بھیجا جاتا ہے یا نہیں۔ عوامی ناموں کا جواب دے کر اندرونی ناموں کا نہ دینے والا حل کنندہ پالیسی کا سوال ہے، ٹوٹی ہوئی ٹنل نہیں۔
کچھ کارپوریٹ کلائنٹ مجازی اڈاپٹروں سے آنے والی ٹریفک بھی روکتے ہیں۔ فلٹر ڈرائیور کے لیے ایمولیٹر مجازی اڈاپٹر جیسا دکھتا ہے، اس لیے میزبان بہترین کام کر سکتا ہے جبکہ پالیسی ایمولیٹر کو انکار کرتی ہے۔ وہ پالیسی ورک سٹیشن سے نظر نہیں آتی، اور پراکسی ترتیبات کا اندازہ اسے ظاہر نہیں کرے گا۔ اگر میزبان حل کرے اور ترتیبات سے قطع نظر ایمولیٹر بلاک رہے تو درست ایسکلیشن کلائنٹ پالیسی کے مالک ٹیم کو ہے۔
جانچ کا ترتیب اور ہر نتیجے کا مطلب
اوپر سے نیچے کام کریں اور پہلی ناکام سطر پر رکیں۔ ہر نتیجہ مختلف مالک کی طرف اشارہ کرتا ہے، اور Android Studio دوبارہ نصب کرنے سے کوئی ٹھیک نہیں ہوتا۔
| Result | Likely owner | Next check |
|---|---|---|
| adb devices is empty with USB attached | USB, driver or adb server | cable, authorization prompt, adb kill-server |
| adb start-server hangs | mDNS discovery | ADB_MDNS_OPENSCREEN=0 |
| Emulator reaches 10.0.2.2, names fail | Host resolver to emulator boundary | host lookup of the same name |
| Host resolves, emulator still fails | Emulator process or client filter | restart emulator, ask IT about virtual adapters |
| Both fail for internal names only | Split DNS or search domain | resolver and zone configuration |
عام معنی میں صرف آخری دو سطریں VPN کے سوال ہیں، اور صرف آخری DNS کے مواد کے بارے میں ہے۔ adb دستاویزات سرور پورٹ اور یہاں بتائے گئے ماحول کے متغیرات کا احاطہ کرتی ہیں، جو باقی جانچتے وقت نقل و حمل کے پہلو کو دیانت دار رکھنے کے لیے کافی ہے۔