Lidhni VPN-në e zyrës dhe Android Studio humbet emulatorin që punon, adb start-server ngec, dhe një telefon fizik në Wi-Fi bie nga lista e pajisjeve. Duket sikur një tunel bllokon një produkt. Në praktikë dështojnë tre rrugë të ndryshme në tre mënyra: zbulimi i pajisjeve nga adb, rrjeti virtual i emulatorit dhe zgjidhësi i hostit. Tuneli zakonisht zotëron vetëm të fundit, dhe shpesh vetëm një pjesë të tij.

Tre soketa, tre pronarë

Serveri adb dëgjon në portën 5037 të hostit dhe flet me pajisjet përmes USB ose TCP, me mDNS për zbulimin në rrjet. Emulatori punon pas ruterit të vet virtual: mysafiri është 10.0.2.15, porta është 10.0.2.2 dhe serveri DNS është 10.0.2.3, dhe procesi i emulatorit i përkthen të gjitha në soketa të hostit. Zgjidhësi i hostit është vendi ku klienti VPN instalon DNS dhe domenet e kërkimit.

Ky ndarje shpjegon pse një rregullim duket se funksionon për një mjet dhe jo për një tjetër. Një klient që ndryshon zgjidhësin e hostit lë procesin e emulatorit me gjendjen e zgjidhësit që lexoi në nisje. Një klient që filtron multicast prish zbulimin pa prekur DNS. Një klient që filtron përshtatës virtualë refuzon emulatorin ndërsa shfletuesi i hostit vazhdon të punojë. Çdo simptomë ka shkak tjetër, prandaj identifikoni rrugën që dështon përpara se të ndryshoni çdo cilësim.

Filloni me atë që sheh adb

Ekzekutoni adb devices përpara se të prekni VPN-në. Një listë bosh është problem transporti, jo rrugëtimi, dhe asnjë rregullim tuneli nuk riparon një pajisje që serveri nuk e ka renditur kurrë. Rinisni serverin pastër: së pari adb kill-server pastaj adb start-server, dhe lexoni daljen për të parë cilën portë zuri. Nëse vetë nisja ngec, zbulimi mDNS është i dyshuari i zakonshëm në një rrjet që filtron multicast; zgjidhja e dokumentuar është nisja e serverit me zbulimin e fikur:

ADB_MDNS_OPENSCREEN=0 adb start-server
adb devices

Për një pajisje fizike USB është rruga më e shkurtër. Nëse ju nevojitet TCP, vendosni pajisjen në modalitetin e dëgjimit me adb tcpip 5555 dhe lidhuni me adresën dhe portën e pajisjes, adb connect 192.0.2.10:5555. Porta 5037 është porta e serverit të hostit, jo porta në të cilën dëgjon një pajisje.

Provojeni emulatorin nga brenda

Emulatori përgjigjet për DNS nga 10.0.2.3, dhe atë zgjidhës e ushqen procesi i hostit. Kur klienti VPN ndryshon zgjidhësin e hostit, emulatori mund ta trashëgojë; kur klienti filtron procesin e emulatorit ose lista e përshtatësve ndryshon pas nisjes, nuk mundet. Ndajini të dy me një objektiv numerik dhe një emër nga i njëjti shell. adb shell ping -c 2 10.0.2.2 vërteton se rrjeti virtual arrin anën e hostit. Një kërkim emri më pas tregon nëse zgjidhja kaloi kufirin.

Më pas ekzekutoni të njëjtin kërkim emri në host. Host zgjidh dhe emulatori jo do të thotë që thyerja është midis zgjidhësit të hostit dhe rrjetit virtual të emulatorit, jo në tunel. Të dyja dështojnë do të thotë që zgjidhësi i hostit është vendi për të parë. Rinisja e emulatorit pas lidhjes së VPN meriton një provë, sepse disa klientë instalojnë një gjendje zgjidhësi që një proces emulatori në punë nuk e merr.

Kontrolloni zgjidhësin e hostit dhe filtrat e klientit

Një klient tuneli të plotë zëvendëson zgjidhësin e hostit me të vetin, dhe një klient split-DNS shton domene kërkimi dhe përcjellës me kushte. Emrat e brendshëm shpesh varen nga ajo konfigurim split-DNS, prandaj shikoni çfarë përdor hosti sa kohë jeni i lidhur: adresa e zgjidhësit, domeni i kërkimit dhe nëse zona e brendshme drejtohet te DNS-i korporativ. Një zgjidhës që përgjigjet për emra publikë por jo të brendshëm është çështje politike, jo tunel i prishur.

Disa klientë korporativë bllokojnë edhe trafikun nga përshtatësit virtualë. Për një drejtues filtri emulatori duket si përshtatës virtual, kështu që hosti mund të punojë në mënyrë të përsosur ndërsa politika refuzon emulatorin. Ajo politikë nuk është e dukshme nga stacioni i punës, dhe hamendja e cilësimeve të proxy nuk do ta zbulojë. Nëse hosti zgjidh dhe emulatori bllokohet pavarësisht cilësimeve, eskalimi i saktë është te ekipi që zotëron politikën e klientit.

Rendi i kontrolleve dhe çfarë do të thotë çdo rezultat

Punoni nga lart poshtë dhe ndaloni në rreshtin e parë që dështon. Çdo rezultat tregon një pronar tjetër, dhe asnjë nuk rregullohet duke riinstaluar 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

Vetëm dy rreshtat e fundit janë pyetje VPN në kuptimin e zakonshëm, dhe vetëm i fundit ka të bëjë me përmbajtjen e DNS. Dokumentacioni i adb mbulon portën e serverit dhe variablat e mjedisit të përmendura këtu, mjaftueshëm për ta mbajtur anën e transportit të ndershme ndërsa provoni pjesën tjetër.

Artikuj të ngjashëm