Ofis VPN-nə qoşulursunuz və Android Studio işləyən emulyatoru itirir, adb start-server dayanır, Wi-Fi-dakı fiziki telefon cihaz siyahısından düşür. Bir tunelin bir məhsulu blokladığı görünür. Əslində üç ayrı yol üç ayrı şəkildə uğursuz olur: adb cihaz aşkarlanması, emulyatorun virtual şəbəkəsi və host həlledicisi. Tünel adətən yalnız sonuncusuna sahibdir, çox vaxt da onun bir hissəsinə.

Üç soket, üç sahib

adb server hostda 5037 portunda dinləyir və cihazlarla USB və ya TCP üzərindən danışır, şəbəkə aşkarlanması üçün mDNS istifadə edir. Emulyator öz virtual marşrutlaşdırıcısının arxasında işləyir: qonaq 10.0.2.15, şlüz 10.0.2.2 və DNS serveri 10.0.2.3-dür, hamısını emulyator prosesi host soketlərinə çevirir. Host həlledicisi VPN müştərisinin DNS və axtarış domenlərini quraşdırdığı yerdir.

Bu ayrılıq bir düzəlişin bir alətdə işləyib digərində işləməməsini izah edir. Host həlledicisini dəyişən müştəri işləyən emulyator prosesini başlanğıcda oxuduğu həlledici vəziyyəti ilə tərk edir. multicast-ı süzən müştəri DNS-ə toxunmadan aşkarlanmanı pozur. Virtual adapterləri süzən müştəri host brauzeri işləyərkən emulyatoru rədd edir. Hər simptomun səbəbi fərqlidir, ona görə hər hansı parametri dəyişməzdən əvvəl uğursuz yolu müəyyən edin.

adb-nin gördüyü ilə başlayın

VPN-ə toxunmadan əvvəl adb devices işə salın. Boş siyahı nəqliyyat problemidir, marşrutlaşdırma problemi deyil və serverin heç vaxt sadalamadığı cihazı heç bir tunel parametri düzəltməyəcək. Serveri təmiz şəkildə yenidən başladın: əvvəl adb kill-server sonra adb start-server, və bağladığı portu görmək üçün çıxışı oxuyun. Başlatma özü dayanırsa, multicast-ı süzən şəbəkədə mDNS aşkarlanması adi şübhəlidir; sənədləşdirilmiş həll aşkarlanmanı söndürərək serveri başlatmaqdır:

ADB_MDNS_OPENSCREEN=0 adb start-server
adb devices

Fiziki cihaz üçün USB ən qısa yoldur. TCP lazımdırsa, cihazı dinləmə rejiminə keçirin: adb tcpip 5555 və cihaz ünvanı və cihaz portuna qoşulun, adb connect 192.0.2.10:5555. Port 5037 host server portudur və cihazın dinlədiyi port deyil.

Emulyatoru içəridən yoxlayın

Emulyator DNS-i 10.0.2.3-dən cavablandırır və bu həlledici host prosesi tərəfindən qidalanır. VPN müştərisi host həlledicisini dəyişdikdə emulyator onu miras ala bilər; müştəri emulyator prosesini süzdükdə və ya emulyator başladıqdan sonra host adapter siyahısı dəyişdikdə isə ala bilməz. İkisini eyni qabıqdan rəqəmsal hədəf və adla ayırın. adb shell ping -c 2 10.0.2.2 virtual şəbəkənin host tərəfinə çata bildiyini sübut edir. Sonrakı ad axtarışı həllin sərhədi keçib-keçmədiyini göstərir.

Sonra eyni ad axtarışını hostda işə salın. Host həll edir, emulyator etmir demək ki, qırılma host həlledicisi ilə emulyatorun virtual şəbəkəsi arasındadır, tunelin özündə deyil. İkisi də uğursuz olursa baxılmalı yer host həlledicisidir. VPN qoşulduqdan sonra emulyatoru yenidən başlatmaq bir cəhdə dəyər, çünki bəzi müştərilər işləyən emulyator prosesinin heç vaxt götürmədiyi həlledici vəziyyəti quraşdırır.

Host həlledicisini və müştəri süzgəclərini yoxlayın

Tam tunel müştərisi host həlledicisini özü ilə əvəz edir, split-DNS müştərisi isə axtarış domenləri və şərti yönləndiricilər əlavə edir. Daxili adlar çox vaxt həmin split-DNS konfiqurasiyasından asılıdır, ona görə qoşulmuş halda hostun nə istifadə etdiyinə baxın: həlledici ünvanı, axtarış domeni və daxili zonanın korporativ DNS-ə yönləndirilib-yönləndirilmədiyi. Ümumi adlara cavab verən, daxili adlara verməyən həlledici siyasət məsələsidir, pozulmuş tunel deyil.

Bəzi korporativ müştərilər virtual adapterlərdən gələn trafiki də bloklayır. Filtr sürücüsü üçün emulyator virtual adapter kimi görünür, ona görə host mükəmməl işləyərkən emulyator siyasətlə rədd edilə bilər. Bu siyasət iş stansiyasından görünmür və proksi parametrlərini təxmin etməklə aşkar olunmur. Host həll edir və emulyator həlledici parametrlərindən asılı olmayaraq bloklanırsa, düzgün eskalasiya müştəri siyasətinə sahib komandadır.

Yoxlamaların sırası və hər nəticənin mənası

Yuxarıdan aşağı işləyin və ilk uğursuz sətirdə dayanın. Hər nəticə fərqli sahibi göstərir və heç biri Android Studio-nu yenidən quraşdırmaqla düzəlmir.

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

Yalnız son iki sətir adi mənada VPN suallarıdır və yalnız sonuncusu DNS məzmununa aiddir. adb sənədləri burada adı çəkilən server portunu və mühit dəyişənlərini əhatə edir, bu da qalanını yoxlayarkən nəqliyyat tərəfini dürüst saxlamaq üçün kifayətdir.

Əlaqəli məqalələr