Jo ferbine it kantoar-VPN en Android Studio ferliest de rinnende emulator, adb start-server hinget, en in fysike telefoan op Wi-Fi falt út de apparaatlist. It liket as blokket ien tunnel ien produkt. Yn de praktyk misse trije aparte paden op trije ferskillende manieren: ADB-apparaatûntdekking, it firtuele netwurk fan de emulator en de resolver fan de host. De tunnel hat meastentiids allinnich de lêste, en faak mar in part dêrfan.

Trije sockets, trije eigners

De adb-tsjinner harket op poarte 5037 op de host en praat mei apparaten fia USB of TCP, mei mDNS foar netwurkûntdekking. De emulator rint efter syn eigen firtuele router: de gast is 10.0.2.15, de gateway is 10.0.2.2 en de DNS-tsjinner is 10.0.2.3, en it emulatorproses set dat allegear oer yn sockets fan de host. De resolver fan de host is it plak dêr’t de VPN-klant DNS en sykdominen ynstallearret.

Dy skieding ferklearret wêrom in repaaraasje foar ien ark liket te wurkjen en foar in oar net. In klant dy’t de resolver fan de host feroaret lit it rinnende emulatorproses efter mei de resolverstatus dy’t it by it starten lies. In klant dy’t multicast filteret brekt de ûntdekking sûnder DNS oan te reitsjen. In klant dy’t firtuele adapters filteret wegeret de emulator wylst de browser fan de host trochwurket. Elk symptoom hat in oare oarsaak, dus bepale it paad dat misse giet foardat jo in ynstelling feroarje.

Begjin mei wat adb sjen kin

Fier adb devices út foardat jo it VPN oanreitsje. In lege list is in transportprobleem, gjin routeringsprobleem, en gjin tunnel-ynstelling reparearret in apparaat dat de tsjinner nea neamd hat. Start de tsjinner skjin opnij: earst adb kill-server dan adb start-server, en lês de útfier om te sjen hokker poarte er naam. As it starten sels hinget, is mDNS-ûntdekking de gewoane fertochte op in netwurk dat multicast filteret; de dokumintearre oplossing is de tsjinner te starten mei ûntdekking útskeakele:

ADB_MDNS_OPENSCREEN=0 adb start-server
adb devices

Foar in fysyk apparaat is USB it koartste paad. As jo TCP nedich hawwe, set it apparaat yn harkstân mei adb tcpip 5555 en ferbinje mei it adres en de poarte fan it apparaat, adb connect 192.0.2.10:5555. Poarte 5037 is de tsjinnerpoarte fan de host, net de poarte dêr’t in apparaat op harket.

Test de emulator fan binnenôf

De emulator antwurdet DNS fan 10.0.2.3, en dy resolver wurdt fiedt troch it proses fan de host. As de VPN-klant de resolver fan de host feroaret, kin de emulator dy erve; as de klant it emulatorproses filteret of de adapterlist fan de host feroaret nei it starten, kin dat net. Skied beide mei in numerysk doel en in namme út deselde shell. adb shell ping -c 2 10.0.2.2 bewiist dat it firtuele netwurk de kant fan de host berikt. In namme-ûndersyk dêrnei seit oft de resolúsje de grins oerstutsen hat.

Fier dan itselde namme-ûndersyk út op de host. De host lost op en de emulator net betsjut dat de breuk tusken de resolver fan de host en it firtuele netwurk fan de emulator sit, net yn de tunnel. Beide misse betsjut dat de resolver fan de host it plak is om te sjen. De emulator opnij starte nei it ferbinen fan it VPN is ien besykjen wurdich, want guon klanten ynstallearje in resolverstatus dy’t in rinnend emulatorproses nea opfangt.

Kontrolearje de resolver fan de host en de filters fan de klant

In foltunnel-klant ferfangt de resolver fan de host troch syn eigen, en in split-DNS-klant foeget sykdominen en betingste trochstjoerders ta. Ynterne nammen hingje faak fan dy split-DNS-konfiguraasje ôf, sjoch dus wat de host brûkt wylst jo ferbûn binne: it resolveradres, it sykdomein en oft de ynterne sône nei it bedriuws-DNS rûte wurdt. In resolver dy’t publike nammen beantwurdet mar gjin ynterne is in kwestje fan belied, gjin stikken tunnel.

Guon bedriuwsclients blokkearje ek ferkear fan firtuele adapters. Foar in filterdriver liket de emulator in firtuele adapter, dus de host kin perfekt wurkje wylst it belied de emulator wegeret. Dat belied is net sichtber fan it wurkstasjon ôf, en it rieden fan proxy-ynstellingen sil it net iepenbierje. As de host oplost en de emulator blokkearre bliuwt los fan de resolver-ynstellingen, is de juste eskalasaasje nei it team dat it klantbelied hat.

Oarder fan kontrôles en wat elk resultaat betsjut

Wurkje fan boppe nei ûnderen en stopje by de earste rige dy’t misse giet. Elk resultaat wiist nei in oare eigner, en gjinien wurdt reparearre troch Android Studio opnij te ynstallearjen.

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

Allinnich de lêste twa rigen binne VPN-fragen yn de gewoane sin, en allinnich de lêste giet oer DNS-ynhâld. De adb-dokumintaasje beslacht de tsjinnerpoarte en de hjir neamde omjouwingsfariabelen, genôch om de transportkant earlik te hâlden wylst jo de rest testen.

Relatearre artikelen