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 devices

Kwa 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.

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

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.

Makala zinazohusiana