Rydych yn cysylltu â VPN y swyddfa ac mae Android Studio yn colli’r emwleiddiad sy’n rhedeg, mae adb start-server yn hongian, ac mae ffôn corfforol ar Wi-Fi yn diflannu oddi ar y rhestr ddyfeisiau. Ymddengys fel pe bai un cynnyrch yn cael ei rwystro gan un twnnel. Mewn gwirionedd mae tair llwybr ar wahân yn methu mewn tri ffordd: darganfod dyfeisiau adb, rhwydwaith rhith yr emwleiddiad a datryswr y gwesteiwr. Y twnnel sy’n berchen ar yr olaf yn unig fel arfer, ac yn aml ar ran ohono’n unig.

Tri soced, tri pherchennog

Mae gweinydd adb yn gwrando ar borth 5037 ar y gwesteiwr ac yn siarad â dyfeisiau dros USB neu TCP, gyda mDNS ar gyfer darganfod rhwydwaith. Mae’r emwleiddiad yn rhedeg y tu ôl i’w rwter rhith ei hun: y gwestai yw 10.0.2.15, ei giât yw 10.0.2.2 a’i weinydd DNS yw 10.0.2.3, ac mae proses yr emwleiddiad yn cyfieithu’r cyfan i socedi’r gwesteiwr. Datryswr y gwesteiwr yw’r man lle mae cleient VPN yn gosod DNS a pharthau chwilio.

Mae’r gwahanu hwnnw’n esbonio pam y mae atgyweiriad yn gweithio i un teclyn ac nid i un arall. Mae cleient sy’n newid datryswr y gwesteiwr yn gadael proses emwleiddiad sy’n rhedeg gyda chyflwr y datryswr a ddarllenodd wrth gychwyn. Mae cleient sy’n hidlo multicast yn torri darganfod heb gyffwrdd â DNS. Mae cleient sy’n hidlo addasyddion rhith yn gwrthod yr emwleiddiad tra bo porwr y gwesteiwr yn dal i weithio. Mae gan bob symptom achos gwahanol, felly nodwch y llwybr sy’n methu cyn newid unrhyw osodiad.

Dechreuwch gyda’r hyn y gall adb ei weld

Rhedwch adb devices cyn cyffwrdd â’r VPN. Mae rhestr wag yn broblem cludo, nid llwybro, ac ni fydd unrhyw osodiad twnnel yn trwsio dyfais na restrwyd gan y gweinydd erioed. Ailgychwynnwch y gweinydd yn lân: yn gyntaf adb kill-server yna adb start-server, a darllenwch yr allbwn i weld pa borth a ddefnyddiodd. Os yw’r cychwyn ei hun yn hongian, mDNS yw’r drwgdybus arferol ar rwydwaith sy’n hidlo multicast; yr ateb dogfennol yw cychwyn y gweinydd gyda darganfod wedi’i analluogi:

ADB_MDNS_OPENSCREEN=0 adb start-server
adb devices

Ar gyfer dyfais gorfforol, USB yw’r llwybr byrraf. Os oes angen TCP, rhowch y ddyfais mewn modd gwrando gyda adb tcpip 5555 a chysylltwch â chyfeiriad a phorth y ddyfais, adb connect 192.0.2.10:5555. Porth 5037 yw porth gweinydd y gwesteiwr, nid y porth y mae dyfais yn gwrando arno.

Profwch yr emwleiddiad o’r tu mewn

Mae’r emwleiddiad yn ateb DNS o 10.0.2.3, ac mae’r datryswr hwnnw’n cael ei fwydo gan broses y gwesteiwr. Pan fydd cleient VPN yn newid datryswr y gwesteiwr gall yr emwleiddiad ei etifeddu; pan fydd y cleient yn hidlo proses yr emwleiddiad neu restr addasyddion y gwesteiwr yn newid ar ôl cychwyn, ni all. Gwahanwch y ddau gyda tharged rhifol ac enw o’r un plisgyn. adb shell ping -c 2 10.0.2.2 sy’n profi bod y rhwydwaith rhith yn cyrraedd ochr y gwesteiwr. Mae chwiliad enw wedyn yn dweud a groesodd y datrysiad y ffin.

Yna rhedwch yr un chwiliad enw ar y gwesteiwr. Mae’r gwesteiwr yn datrys a’r emwleiddiad ddim yn golygu bod y toriad rhwng datryswr y gwesteiwr a rhwydwaith rhith yr emwleiddiad, nid yn y twnnel. Mae’r ddau’n methu yn golygu mai datryswr y gwesteiwr yw’r lle i edrych. Mae ailgychwyn yr emwleiddiad ar ôl cysylltu’r VPN yn werth un cynnig, oherwydd mae rhai cleientiaid yn gosod cyflwr datryswr na chymer proses emwleiddiad sy’n rhedeg.

Gwiriwch ddatryswr y gwesteiwr a hidlwyr y cleient

Mae cleient twnnel llawn yn disodli datryswr y gwesteiwr gyda’i un ei hun, ac mae cleient split-DNS yn ychwanegu parthau chwilio ac anfonwyr amodol. Mae enwau mewnol yn aml yn dibynnu ar y cyfluniad split-DNS hwnnw, felly edrychwch beth mae’r gwesteiwr yn ei ddefnyddio tra’n gysylltiedig: cyfeiriad y datryswr, y parth chwilio, ac a yw’r parth mewnol yn cael ei lwybro i DNS corfforaethol. Mae datryswr sy’n ateb enwau cyhoeddus ond nid rhai mewnol yn gwestiwn polisi, nid twnnel wedi torri.

Mae rhai cleientiaid corfforaethol hefyd yn rhwystro traffig o addasyddion rhith. I yrwyr hidlo mae’r emwleiddiad yn edrych fel addasydd rhith, felly gall y gwesteiwr weithio’n berffaith tra bod y polisi’n gwrthod yr emwleiddiad. Nid yw’r polisi hwnnw i’w weld o’r gweithfan, ac ni fydd dyfalu gosodiadau dirprwy yn ei ddatgelu. Os yw’r gwesteiwr yn datrys a’r emwleiddiad wedi’i rwystro beth bynnag fo gosodiadau’r datryswr, yr esgaliad cywir yw i’r tîm sy’n berchen ar bolisi’r cleient.

Trefn y gwiriadau a beth mae pob canlyniad yn ei olygu

Gweithiwch o’r brig i’r gwaelod ac arhoswch ar y rhes gyntaf sy’n methu. Mae pob canlyniad yn cyfeirio at berchemnog gwahanol, ac nid oes yr un yn cael ei drwsio trwy ailosod 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

Dim ond y ddwy res olaf yw cwestiynau VPN yn yr ystyr arferol, a dim ond yr olaf sy’n ymwneud â chynnwys DNS. Dogfennaeth adb yn cynnwys porth y gweinydd a’r newidynnau amgylchedd a enwir yma, sy’n ddigon i gadw ochr y cludiant yn onest wrth brofi’r gweddill.

Erthyglau cysylltiedig