Ofis VPN iga ulanasiz va Android Studio ishlab turgan emulyatorni yo‘qotadi, adb start-server qotib qoladi, Wi-Fi dagi jismoniy telefon esa qurilmalar ro‘yxatidan tushib qoladi. Bitta tunnel bitta mahsulotni to‘sayotgandek ko‘rinadi. Aslida uchta alohida yo‘l uch xil tarzda ishlamay qoladi: adb qurilmalarini aniqlash, emulyatorning virtual tarmog‘i va xostning yechuvchisi. Tunnel odatda faqat oxirgisiga egalik qiladi, ko‘pincha uning bir qismiga.

Uchta soket, uchta egasi

adb serveri xostdagi 5037 portida tinglaydi va qurilmalar bilan USB yoki TCP orqali gaplashadi, tarmoqni aniqlash uchun mDNS ishlatadi. Emulyator o‘zining virtual marshrutizatori ortida ishlaydi: mehmon 10.0.2.15, shlyuz 10.0.2.2 va DNS serveri 10.0.2.3, va emulyator jarayoni bularning barchasini xost soketlariga aylantiradi. Xostning yechuvchisi VPN mijozi DNS va qidiruv domenlarini o‘rnatadigan joy.

Aynan shu ajratish bitta tuzatishning bir vositada ishlab, boshqasida ishlamasligini tushuntiradi. Xost yechuvchisini o‘zgartirgan mijoz ishlab turgan emulyator jarayonini boshlanishda o‘qigan yechuvchi holati bilan qoldiradi. multicast ni filtrlaydigan mijoz DNS ga tegmasdan aniqlashni buzadi. Virtual adapterlarni filtrlaydigan mijoz xost brauzeri ishlab turganda emulyatorni rad etadi. Har bir alomatning sababi boshqa, shuning uchun har qanday sozlamani o‘zgartirishdan oldin ishlamay qolgan yo‘lni aniqlang.

adb ko‘ra oladigan narsadan boshlang

VPN ga tegishdan oldin adb devices ni ishga tushiring. Bo‘sh ro‘yxat tashish muammosi, marshrutlash emas, va server hech qachon ro‘yxatga olmagan qurilmani hech qanday tunnel sozlamasi tuzatmaydi. Serverni toza qayta ishga tushiring: avval adb kill-server keyin adb start-server, va qaysi portni egallaganini bilish uchun chiqishni o‘qing. Agar ishga tushishning o‘zi qotib qolsa, multicast ni filtrlaydigan tarmoqda mDNS aniqlashi odatiy gumondor; hujjatlashtirilgan yechim serverni aniqlashni o‘chirib ishga tushirish:

ADB_MDNS_OPENSCREEN=0 adb start-server
adb devices

Jismoniy qurilma uchun USB eng qisqa yo‘l. Agar TCP kerak bo‘lsa, qurilmani adb tcpip 5555 bilan tinglash rejimiga o‘tkazing va qurilma manzili va portiga ulanib, adb connect 192.0.2.10:5555. 5037 porti xost serverining porti, qurilma tinglaydigan port emas.

Emulyatorni ichkaridan sinang

Emulyator 10.0.2.3 dan DNS ga javob beradi, va bu yechuvchini xost jarayoni oziqlantiradi. VPN mijozi xost yechuvchisini o‘zgartirsa, emulyator uni meros olishi mumkin; mijoz emulyator jarayonini filtrlasa yoki ishga tushgandan keyin xost adapterlari ro‘yxati o‘zgarsa, ololmaydi. Ikkalasini bir shell dan raqamli nishon va nom bilan ajrating. adb shell ping -c 2 10.0.2.2 virtual tarmoqning xost tomoniga yetib borishini isbotlaydi. Keyingi nom qidiruvi yechim chegaradan o‘tganini ko‘rsatadi.

So‘ngra xuddi shu nom qidiruvini xostda bajaring. Xost yechadi, emulyator yechmasa, uzilish xost yechuvchisi bilan emulyatorning virtual tarmog‘i orasida, tunnelda emas. Ikkalasi ham ishlamasa, xost yechuvchisiga qarash kerak. VPN ulangandan keyin emulyatorni qayta ishga tushirish bitta urinishga arziydi, chunki ba’zi mijozlar ishlab turgan emulyator jarayoni olmaydigan yechuvchi holatini o‘rnatadi.

Xost yechuvchisi va mijoz filtrlarini tekshiring

To‘liq tunnel mijozi xost yechuvchisini o‘zinikiga almashtiradi, split-DNS mijozi esa qidiruv domenlari va shartli yo‘naltiruvchilarni qo‘shadi. Ichki nomlar ko‘pincha aynan shu split-DNS konfiguratsiyasiga bog‘liq, shuning uchun ulangan holda xost nima ishlatishini ko‘ring: yechuvchi manzili, qidiruv domeni va ichki zona korporativ DNS ga yo‘naltirilganmi. Ommaviy nomlarga javob berib, ichki nomlarga bermaydigan yechuvchi siyosat masalasi, buzilgan tunnel emas.

Ba’zi korporativ mijozlar virtual adapterlardan keladigan trafikni ham to‘sadi. Filtr drayveri uchun emulyator virtual adapterga o‘xshaydi, shuning uchun xost mukammal ishlab turishi mumkin, siyosat esa emulyatorni rad etadi. Bu siyosat ish stantsiyasidan ko‘rinmaydi, proksi sozlamalarini taxmin qilish uni oshkor qilmaydi. Xost yechsa-yu, sozlamalardan qat’i nazar emulyator to‘silgan bo‘lsa, to‘g‘ri eskalatsiya mijoz siyosatiga ega jamoaga.

Tekshirishlar tartibi va har bir natijaning ma’nosi

Yuqoridan pastga ishlang va birinchi muvaffaqiyatsiz qatorda to‘xtang. Har bir natija boshqa egaga ishora qiladi va hech biri Android Studio ni qayta o‘rnatish bilan tuzatilmaydi.

ResultLikely ownerNext check
adb devices is empty with USB attachedUSB, driver or adb servercable, authorization prompt, adb kill-server
adb start-server hangsmDNS discoveryADB_MDNS_OPENSCREEN=0
Emulator reaches 10.0.2.2, names failHost resolver to emulator boundaryhost lookup of the same name
Host resolves, emulator still failsEmulator process or client filterrestart emulator, ask IT about virtual adapters
Both fail for internal names onlySplit DNS or search domainresolver and zone configuration

Oddiy ma’noda faqat oxirgi ikki qator VPN savollari, va faqat oxirgisi DNS mazmuni haqida. adb hujjatlari server porti va bu yerda tilga olingan muhit o‘zgaruvchilarini qamrab oladi, qolganini sinaganda tashish tomonini halol saqlash uchun yetarli.

O'xshash maqolalar