ADB dan emulator Android gagal di balik VPN: tiga jalur
Penemuan ADB, kartu jaringan virtual emulator, dan resolver host gagal secara terpisah di balik VPN. Uji setiap jalur secara berurutan sebelum menyalahkan terowongan.
Anda menghubungkan VPN kantor dan Android Studio kehilangan emulator yang berjalan, adb start-server menggantung, dan ponsel fisik di Wi-Fi hilang dari daftar perangkat. Tampaknya satu terowongan memblokir satu produk. Kenyataannya tiga jalur terpisah gagal dengan tiga cara: penemuan perangkat adb, jaringan virtual emulator, dan resolver host. Terowongan biasanya hanya memiliki yang terakhir, dan sering hanya sebagian.
Tiga soket, tiga pemilik
Server adb mendengarkan di port 5037 pada host dan berbicara dengan perangkat lewat USB atau TCP, dengan mDNS untuk penemuan jaringan. Emulator berjalan di balik router virtualnya sendiri: tamu adalah 10.0.2.15, gateway 10.0.2.2 dan server DNS 10.0.2.3, dan proses emulator menerjemahkan semuanya menjadi soket host. Resolver host adalah tempat klien VPN memasang DNS dan domain pencarian.
Pemisahan itu menjelaskan mengapa sebuah perbaikan tampak berhasil untuk satu alat dan tidak untuk alat lain. Klien yang mengubah resolver host meninggalkan proses emulator berjalan dengan status resolver yang dibacanya saat mulai. Klien yang memfilter multicast merusak penemuan tanpa menyentuh DNS. Klien yang memfilter adaptor virtual menolak emulator sementara browser host tetap bekerja. Setiap gejala punya penyebab berbeda, jadi kenali jalur yang gagal sebelum mengubah pengaturan apa pun.
Mulai dari apa yang bisa dilihat adb
Jalankan adb devices sebelum menyentuh VPN. Daftar kosong adalah masalah transportasi, bukan perutean, dan tidak ada pengaturan terowongan yang memperbaiki perangkat yang tidak pernah didaftar server. Mulai ulang server dengan bersih: pertama adb kill-server lalu adb start-server, dan baca keluaran untuk melihat port yang diikat. Jika start sendiri menggantung, penemuan mDNS adalah tersangka biasa di jaringan yang memfilter multicast; solusi terdokumentasi adalah memulai server dengan penemuan dimatikan:
ADB_MDNS_OPENSCREEN=0 adb start-server
adb devicesUntuk perangkat fisik, USB adalah jalur terpendek. Jika perlu TCP, masukkan perangkat ke mode mendengarkan dengan adb tcpip 5555 dan sambungkan ke alamat dan port perangkat, adb connect 192.0.2.10:5555. Port 5037 adalah port server host, bukan port tempat perangkat mendengarkan.
Uji emulator dari dalam
Emulator menjawab DNS dari 10.0.2.3, dan resolver itu dipasok oleh proses host. Saat klien VPN mengubah resolver host, emulator dapat mewarisinya; saat klien memfilter proses emulator atau daftar adaptor host berubah setelah emulator dimulai, ia tidak bisa. Pisahkan keduanya dengan target numerik dan nama dari shell yang sama. adb shell ping -c 2 10.0.2.2 membuktikan jaringan virtual mencapai sisi host. Pencarian nama sesudahnya menunjukkan apakah resolusi melewati batas.
Lalu jalankan pencarian nama yang sama di host. Host menyelesaikan dan emulator tidak berarti putusnya antara resolver host dan jaringan virtual emulator, bukan di terowongan. Keduanya gagal berarti resolver host tempat mencarinya. Menyalakan ulang emulator setelah VPN tersambung layak dicoba sekali, karena beberapa klien memasang status resolver yang tidak diambil proses emulator yang berjalan.
Periksa resolver host dan filter klien
Klien terowongan penuh mengganti resolver host dengan miliknya, dan klien split-DNS menambahkan domain pencarian serta penerus bersyarat. Nama internal sering bergantung pada konfigurasi split-DNS itu, jadi periksa apa yang dipakai host saat tersambung: alamat resolver, domain pencarian, dan apakah zona internal dirutekan ke DNS perusahaan. Resolver yang menjawab nama publik tetapi tidak internal adalah soal kebijakan, bukan terowongan rusak.
Beberapa klien perusahaan juga memblokir lalu lintas dari adaptor virtual. Bagi driver filter, emulator tampak seperti adaptor virtual, jadi host bisa bekerja sempurna sementara kebijakan menolak emulator. Kebijakan itu tidak terlihat dari stasiun kerja, dan menebak pengaturan proksi tidak akan mengungkapnya. Jika host menyelesaikan dan emulator tetap diblokir terlepas dari pengaturan resolver, eskalasi yang benar adalah ke tim yang memiliki kebijakan klien.
Urutan pemeriksaan dan arti setiap hasil
Bekerjalah dari atas ke bawah dan berhenti di baris pertama yang gagal. Setiap hasil menunjuk pemilik berbeda, dan tidak ada yang diperbaiki dengan memasang ulang 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 |
Hanya dua baris terakhir yang merupakan pertanyaan VPN dalam arti biasa, dan hanya yang terakhir soal isi DNS. Dokumentasi adb mencakup port server dan variabel lingkungan yang disebut di sini, cukup untuk menjaga sisi transportasi tetap jujur saat Anda menguji sisanya.