ADB na emulator ya Android hushindwa nyuma ya VPN: njia tatu
Ugunduzi wa ADB, kadi ya mtandao pepe ya emulator na kitatuzi cha jina la mwenyeji hushindwa kivyake nyuma ya VPN. Jaribu kila njia kwa mpangilio kabla ya kulaumu handaki.
Unaunganisha VPN ya ofisi na Android Studio inapoteza emulator inayoendesha, adb start-server inakwama, na simu halisi iliyo kwenye Wi-Fi inaanguka kutoka kwenye orodha ya vifaa. Inaonekana kama handaki moja linazuia bidhaa moja. Kwa hakika njia tatu tofauti hushindwa kwa namna tatu: ugunduzi wa vifaa wa adb, mtandao pepe wa emulator na kitatuzi cha jina la mwenyeji. Handaki kwa kawaida humiliki ya mwisho pekee, na mara nyingi sehemu yake tu.
Soketi tatu, wamiliki watatu
Seva ya adb husikiliza kwenye bandari 5037 kwenye mwenyeji na huzungumza na vifaa kupitia USB au TCP, ikitumia mDNS kwa ugunduzi wa mtandao. Emulator huendesha nyuma ya kipanga njia chake pepe: mgeni ni 10.0.2.15, lango ni 10.0.2.2 na seva ya DNS ni 10.0.2.3, na mchakato wa emulator hutafsiri yote kuwa soketi za mwenyeji. Kitatuzi cha jina la mwenyeji ni mahali ambapo mteja wa VPN husakinisha DNS na vikoa vya utafutaji.
Utenganishaji huo hueleza kwa nini marekebisho huonekana kufanya kazi kwa chombo kimoja na si kingine. Mteja anayebadilisha kitatuzi cha mwenyeji huacha mchakato wa emulator ukiwa na hali ya kitatuzi iliyoonekana mwanzoni. Mteja anayechuja multicast huvunja ugunduzi bila kugusa DNS. Mteja anayechuja adapta pepe hukataa emulator wakati kivinjari cha mwenyeji kinaendelea kufanya kazi. Kila dalili ina sababu tofauti, kwa hiyo tambua njia inayoshindwa kabla ya kubadilisha mpangilio wowote.
Anza na kile adb inachoweza kuona
Endesha adb devices kabla ya kugusa VPN. Orodha tupu ni tatizo la usafirishaji, si la uelekezaji, na hakuna mpangilio wa handaki utakayorekebisha kifaa ambacho seva haikuwahi kuorodhesha. Anzisha upya seva kwa usafi: kwanza adb kill-server kisha adb start-server, na soma matokeo ili kuona bandari iliyoichukua. Ikiwa uanzishaji wenyewe unakwama, ugunduzi wa mDNS ndiye mtuhumiwa wa kawaida kwenye mtandao unaochuja multicast; suluhisho lililoandikwa ni kuanzisha seva na ugunduzi umezimwa:
ADB_MDNS_OPENSCREEN=0 adb start-server
adb devicesKwa kifaa halisi USB ni njia fupi zaidi. Ikiwa unahitaji TCP, weka kifaa katika hali ya kusikiliza kwa adb tcpip 5555 na unganisha kwa anwani na bandari ya kifaa, adb connect 192.0.2.10:5555. Bandari 5037 ni bandari ya seva ya mwenyeji, si bandari ambayo kifaa husikiliza.
Jaribu emulator kutoka ndani
Emulator hujibu DNS kutoka 10.0.2.3, na kitatuzi hicho hulishwa na mchakato wa mwenyeji. Mteja wa VPN anapobadilisha kitatuzi cha mwenyeji emulator inaweza kurithi; mteja anapochuja mchakato wa emulator au orodha ya adapta inabadilika baada ya kuanza, haiwezi. Tenganisha vyote kwa lengo la nambari na jina kutoka shell moja. adb shell ping -c 2 10.0.2.2 huthibitisha kuwa mtandao pepe unafikia upande wa mwenyeji. Utafutaji wa jina baada ya hapo huonyesha kama utatuzi ulivuka mpaka.
Kisha endesha utafutaji huo wa jina kwenye mwenyeji. Mwenyeji hutatua na emulator haitatui maana yake ni kwamba kuvunjika kuko kati ya kitatuzi cha mwenyeji na mtandao pepe wa emulator, si ndani ya handaki. Vyote hushindwa maana yake ni kwamba kitatuzi cha mwenyeji ni mahali pa kuangalia. Kuanzisha upya emulator baada ya kuunganisha VPN kunafaa jaribio moja, kwa sababu baadhi ya wateja husakinisha hali ya kitatuzi ambayo mchakato wa emulator unaoendesha haichukui.
Kagua kitatuzi cha mwenyeji na vichujio vya mteja
Mteja wa handaki kamili hubadilisha kitatuzi cha mwenyeji na chake, na mteja wa split-DNS huongeza vikoa vya utafutaji na vipitishaji vyenye masharti. Majina ya ndani mara nyingi hutegemea usanidi huo wa split-DNS, kwa hiyo angalia mwenyeji hutumia nini ukiwa umeunganishwa: anwani ya kitatuzi, kikoa cha utafutaji na kama eneo la ndani linaelekezwa kwa DNS ya kampuni. Kitatuzi kinachojibu majina ya umma lakini si ya ndani ni swali la sera, si handaki iliyovunjika.
Baadhi ya wateja wa kampuni huzuia pia trafiki kutoka adapta pepe. Kwa dereva wa kichujio emulator inaonekana kama adapta pepe, kwa hiyo mwenyeji anaweza kufanya kazi vizuri wakati sera inakataa emulator. Sera hiyo haionekani kutoka kituo cha kazi, na kukisia mipangilio ya proksi hakutafichua. Ikiwa mwenyeji unatatua na emulator imezuiwa bila kujali mipangilio ya kitatuzi, upandishaji sahihi ni kwa timu inayomiliki sera ya mteja.
Mpangilio wa ukaguzi na maana ya kila matokeo
Fanya kazi kutoka juu hadi chini na simama kwenye mstari wa kwanza unaoshindwa. Kila matokeo huelekeza kwa mmiliki tofauti, na hakuna hata moja linalorekebishwa kwa kusakinisha upya 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 |
Ni mistari miwili ya mwisho pekee iliyo maswali ya VPN kwa maana ya kawaida, na ni ya mwisho pekee inayohusu maudhui ya DNS. Nyaraka za adb zinashughulikia bandari ya seva na vigeu vya mazingira vilivyotajwa hapa, vya kutosha kuweka upande wa usafirishaji ukiwa waaminifu unapojaribu mengine.