Você conecta a VPN do escritório e o Android Studio perde o emulador em execução, o adb start-server trava e um telefone físico no Wi-Fi cai da lista de dispositivos. Parece que um túnel bloqueia um produto. Na prática, três caminhos distintos falham de três maneiras: a descoberta de dispositivos do adb, a rede virtual do emulador e o resolvedor do host. O túnel normalmente possui apenas o último, e muitas vezes só uma parte dele.

Três sockets, três donos

O servidor adb escuta na porta 5037 do host e fala com os dispositivos por USB ou TCP, com mDNS para descoberta em rede. O emulador roda atrás do seu próprio roteador virtual: o convidado é 10.0.2.15, o gateway é 10.0.2.2 e o servidor DNS é 10.0.2.3, e o processo do emulador traduz tudo em sockets do host. O resolvedor do host é onde o cliente VPN instala DNS e domínios de busca.

Essa separação explica por que uma correção parece funcionar para uma ferramenta e não para outra. Um cliente que muda o resolvedor do host deixa o processo do emulador com o estado de resolvedor lido na inicialização. Um cliente que filtra multicast quebra a descoberta sem tocar no DNS. Um cliente que filtra adaptadores virtuais nega o emulador enquanto o navegador do host continua funcionando. Cada sintoma tem uma causa diferente, então identifique o caminho que falha antes de mudar qualquer configuração.

Comece pelo que o adb consegue ver

Execute adb devices antes de tocar na VPN. Uma lista vazia é um problema de transporte, não de roteamento, e nenhum ajuste do túnel conserta um dispositivo que o servidor nunca enumerou. Reinicie o servidor de forma limpa: primeiro adb kill-server e depois adb start-server, e leia a saída para ver qual porta ele ocupou. Se a própria inicialização travar, a descoberta mDNS é o suspeito habitual numa rede que filtra multicast; a solução documentada é iniciar o servidor com a descoberta desativada:

ADB_MDNS_OPENSCREEN=0 adb start-server
adb devices

Para um dispositivo físico, o USB é o caminho mais curto. Se precisar de TCP, coloque o dispositivo em modo de escuta com adb tcpip 5555 e conecte ao endereço e à porta do dispositivo, adb connect 192.0.2.10:5555. A porta 5037 é a porta do servidor do host, não a porta em que um dispositivo escuta.

Teste o emulador por dentro

O emulador responde ao DNS a partir de 10.0.2.3, e esse resolvedor é alimentado pelo processo do host. Quando o cliente VPN muda o resolvedor do host, o emulador pode herdá-lo; quando o cliente filtra o processo do emulador ou a lista de adaptadores muda depois da inicialização, não pode. Separe os dois com um alvo numérico e um nome do mesmo shell. adb shell ping -c 2 10.0.2.2 demonstra que a rede virtual alcança o lado do host. Uma consulta de nome depois mostra se a resolução cruzou a fronteira.

Depois execute a mesma consulta no host. O host resolve e o emulador não significa que a quebra está entre o resolvedor do host e a rede virtual do emulador, não no túnel. Os dois falharem significa que o resolvedor do host é o lugar a olhar. Reiniciar o emulador depois de conectar a VPN vale uma tentativa, porque alguns clientes instalam um estado de resolvedor que um processo de emulador em execução não captura.

Verifique o resolvedor do host e os filtros do cliente

Um cliente de túnel completo substitui o resolvedor do host pelo seu, e um cliente split-DNS adiciona domínios de busca e encaminhadores condicionais. Nomes internos costumam depender dessa configuração split-DNS, então veja o que o host usa enquanto está conectado: o endereço do resolvedor, o domínio de busca e se a zona interna é encaminhada ao DNS corporativo. Um resolvedor que responde a nomes públicos mas não a internos é uma questão de política, não um túnel quebrado.

Alguns clientes corporativos também bloqueiam o tráfego de adaptadores virtuais. Para um driver de filtro, o emulador parece um adaptador virtual, então o host pode funcionar perfeitamente enquanto a política nega o emulador. Essa política não é visível da estação de trabalho, e adivinhar configurações de proxy não a revelará. Se o host resolve e o emulador fica bloqueado independentemente do resolvedor, a escalada correta é para a equipe que possui a política do cliente.

Ordem das verificações e o que cada resultado significa

Trabalhe de cima para baixo e pare na primeira linha que falhar. Cada resultado aponta para um dono diferente, e nenhum deles se resolve reinstalando o 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

Apenas as duas últimas linhas são perguntas de VPN no sentido habitual, e só a última trata do conteúdo do DNS. A documentação do adb cobre a porta do servidor e as variáveis de ambiente citadas aqui, o suficiente para manter o lado do transporte honesto enquanto você testa o resto.

Artigos relacionados