ADB жана Android эмулятору VPN артында иштебейт: үч жол
ADB аныктоо, эмулятордун виртуалдык тармак картасы жана хосттун чечүүчүсү VPN артында өз-өзүнчө ишке ашпайт. Туннелди күнөөлөөдөн мурун ар бир жолду кезеги менен текшериңиз.
Кеңсе VPN ине туташасыз, анан Android Studio иштеп жаткан эмуляторду жоготот, adb start-server илинип калат, ал эми Wi-Fi деги физикалык телефон түзмөктөр тизмесинен чыгып калат. Бир туннель бир продуктту тосуп жаткандай көрүнөт. Иш жүзүндө үч өзүнчө жол үч түрдүү жол менен ишке ашпайт: adb түзмөктөрдү аныктоо, эмулятордун виртуалдык тармагы жана хосттун чечүүчүсү. Туннель адатта акыркысына гана ээ, көбүнчө анын бир бөлүгүнө гана.
Үч сокет, үч ээси
adb сервери хосттогу 5037 портунда угат жана түзмөктөр менен USB же TCP аркылуу сүйлөшөт, тармактык аныктоо үчүн mDNS колдонот. Эмулятор өзүнүн виртуалдык маршрутизаторунун артында иштейт: конок 10.0.2.15, дарбазасы 10.0.2.2 жана DNS сервери 10.0.2.3, ал эми эмулятор процесси мунун баарын хосттун сокеттерине айландырат. Хосттун чечүүчүсү — VPN кардары DNS жана издөө домендерин орноткон жер.
Ошол бөлүнүү бир оңдоо бир куралда иштеп, экинчисинде иштебей турганын түшүндүрөт. Хосттун чечүүчүсүн алмаштырган кардар иштеп жаткан эмулятор процессин иштетүүдө окуган чечүүчү абалы менен калтырат. multicast чыпкалаган кардар DNS ке тийбестен аныктоону бузат. Виртуалдык адаптерлерди чыпкалаган кардар хосттун браузери иштеп турганда эмулятордон баш тартат. Ар бир симптомдун себеби башка, ошондуктан параметрди өзгөртүүдөн мурун ишке ашпаган жолду аныктаңыз.
adb көргөн нерседен баштаңыз
VPN ге тийүүдөн мурун adb devices иштетиңиз. Бош тизме — ташуу маселеси, маршруттоо эмес, жана сервер эч качан тизмеге койбогон түзмөктү эч бир туннель жөндөөсү оңдобойт. Серверди таза кайра иштетиңиз: адегенде adb kill-server, андан кийин adb start-server, жана кайсы портту алганын билүү үчүн чыгууну окуңуз. Иштетүү өзү илинип калса, multicast чыпкалаган тармакта mDNS аныктоо адаттагы шектүү; документтелген чечим — серверди аныктоону өчүрүп иштетүү:
ADB_MDNS_OPENSCREEN=0 adb start-server
adb devicesФизикалык түзмөк үчүн USB эң кыска жол. TCP керек болсо, түзмөктү угуу режимине adb tcpip 5555 аркылуу койңуз жана түзмөктүн дареги менен портуна туташыңыз, adb connect 192.0.2.10:5555. 5037 порту — хост серверинин порту, түзмөк уккан порт эмес.
Эмуляторду ичинен текшериңиз
Эмулятор DNS ке 10.0.2.3 төн жооп берет, ал чечүүчүнү хосттун процесси азыктандырат. VPN кардары хосттун чечүүчүсүн өзгөртсө, эмулятор аны мураска алат; кардар эмулятор процессин чыпкаласа же иштетүүдөн кийин хост адаптерлеринин тизмеси өзгөрсө, ал ала албайт. Экөөнү бир shell ден сандык максат жана ат менен ажыратыңыз. adb shell ping -c 2 10.0.2.2 виртуалдык тармактын хост тарабына жеткенин далилдейт. Кийинки ат издөө чечим чектен өткөнүн көрсөтөт.
Анан ошол эле ат издөөнү хостто иштетиңиз. Хост чечет, эмулятор чечпейт — үзүлүү хосттун чечүүчүсү менен эмулятордун виртуалдык тармагынын ортосунда, туннелде эмес. Экөө тең ишке ашпаса, хосттун чечүүчүсүн кароо керек. VPN туташкандан кийин эмуляторду кайра иштетүү бир аракетке татыктуу, анткени кээ бир кардарлар иштеп жаткан эмулятор процесси кабыл албаган чечүүчү абалын орнотушат.
Хосттун чечүүчүсүн жана кардардын чыпкаларын текшериңиз
Толук туннель кардары хосттун чечүүчүсүн өзүнүкү менен алмаштырат, ал эми split-DNS кардары издөө домендерин жана шарттуу жиберүүчүлөрдү кошот. Ички аттар көбүнчө ошол split-DNS конфигурациясына көз каранды, ошондуктан туташканда хост эмнени колдонорун караңыз: чечүүчүнүн дареги, издөө домени жана ички аймак корпоративдик DNS ке багытталабы. Жалпы аттарга жооп берип, ички аттарга бербеген чечүүчү — саясат маселеси, бузулган туннель эмес.
Кээ бир корпоративдик кардарлар виртуалдык адаптерлерден келген трафикти да тосот. Чыпка драйвери үчүн эмулятор виртуалдык адаптер болуп көрүнөт, ошондуктан хост мыкты иштеп, саясат эмулятордон баш тартат. Бул саясат жумуш станциясынан көрүнбөйт, прокси жөндөөлөрүн болжолдоо аны ачпайт. Хост чечип, эмулятор чечүүчү жөндөөлөрүнө карабастан тосулса, туура эскалация — кардар саясатына ээ болгон топко.
Текшерүү тартиби жана ар бир натыйжанын мааниси
Жогорудан төмөн иштеңиз жана биринчи ишке ашпаган сапта токтоңуз. Ар бир натыйжа башка ээсин көрсөтөт жана эч бири 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 |
Акыркы эки сап гана адаттагы мааниде VPN суроолору, акыркысы гана DNS мазмуну тууралуу. adb документтери сервер портун жана бул жерде аталган чөйрө өзгөрмөлөрүн камтыйт, бул калганын текшерүүдө ташуу тарабын ак ниет кармоого жетет.