Sie verbinden das Büro-VPN, und Android Studio verliert den laufenden Emulator, adb start-server hängt, und ein physisches Telefon im WLAN fällt aus der Geräteliste. Es sieht aus, als blockiere ein Tunnel ein Produkt. Tatsächlich scheitern drei getrennte Wege auf drei verschiedene Arten: die ADB-Geräteerkennung, das virtuelle Netzwerk des Emulators und der Resolver des Hosts. Der Tunnel besitzt meist nur den letzten, und oft nur einen Teil davon.

Drei Sockets, drei Eigentümer

Der adb-Server lauscht auf Port 5037 am Host und spricht über USB oder TCP mit Geräten, für die Netzwerkerkennung mit mDNS. Der Emulator läuft hinter einem eigenen virtuellen Router: Der Gast ist 10.0.2.15, sein Gateway 10.0.2.2 und sein DNS-Server 10.0.2.3, und der Emulatorprozess übersetzt alles in Sockets des Hosts. Der Resolver des Hosts ist der Ort, an dem der VPN-Client DNS und Suchdomänen installiert.

Diese Trennung erklärt, warum eine Korrektur bei einem Werkzeug zu wirken scheint und bei einem anderen nicht. Ein Client, der den Host-Resolver ändert, hinterlässt einen laufenden Emulatorprozess mit dem Resolver-Zustand, den er beim Start gelesen hat. Ein Client, der Multicast filtert, bricht die Erkennung, ohne DNS anzutasten. Ein Client, der virtuelle Adapter filtert, verweigert dem Emulator den Zugriff, während der Browser des Hosts weiterläuft. Jedes Symptom hat eine andere Ursache, also bestimmen Sie den fehlerhaften Weg, bevor Sie eine Einstellung ändern.

Beginnen Sie mit dem, was adb sieht

Führen Sie adb devices aus, bevor Sie das VPN anfassen. Eine leere Liste ist ein Transportproblem, kein Routingproblem, und keine Tunnel-Einstellung repariert ein Gerät, das der Server nie aufgelistet hat. Starten Sie den Server sauber neu: erst adb kill-server, dann adb start-server, und lesen Sie die Ausgabe, um zu sehen, welchen Port er belegt hat. Wenn schon der Start hängt, ist die mDNS-Erkennung der übliche Verdächtige in einem Netz, das Multicast filtert; der dokumentierte Ausweg ist, den Server mit deaktivierter Erkennung zu starten:

ADB_MDNS_OPENSCREEN=0 adb start-server
adb devices

Bei einem physischen Gerät ist USB der kürzeste Weg. Wenn Sie TCP brauchen, bringen Sie das Gerät mit adb tcpip 5555 in den Listening-Modus und verbinden Sie sich mit Geräteadresse und Geräteport, adb connect 192.0.2.10:5555. Port 5037 ist der Serverport des Hosts und nicht der Port, auf dem ein Gerät lauscht.

Testen Sie den Emulator von innen

Der Emulator beantwortet DNS von 10.0.2.3, und dieser Resolver wird vom Hostprozess gespeist. Wenn der VPN-Client den Host-Resolver ändert, kann der Emulator ihn erben; wenn der Client den Emulatorprozess filtert oder sich die Adapterliste des Hosts nach dem Start des Emulators ändert, kann er es nicht. Trennen Sie beides mit einem numerischen Ziel und einem Namen aus derselben Shell. adb shell ping -c 2 10.0.2.2 belegt, dass das virtuelle Netzwerk die Hostseite erreicht. Eine Namensauflösung danach zeigt, ob die Auflösung die Grenze überschritten hat.

Führen Sie dann dieselbe Namensauflösung auf dem Host aus. Host löst auf und Emulator nicht heißt, der Bruch liegt zwischen Host-Resolver und virtuellem Netzwerk des Emulators, nicht im Tunnel. Beide scheitern heißt, der Host-Resolver ist die Stelle zum Nachsehen. Ein Neustart des Emulators nach dem VPN-Verbinden ist einen Versuch wert, weil manche Clients einen Resolver-Zustand installieren, den ein laufender Emulatorprozess nie aufnimmt.

Prüfen Sie Host-Resolver und Client-Filter

Ein Full-Tunnel-Client ersetzt den Host-Resolver durch seinen eigenen, ein Split-DNS-Client ergänzt Suchdomänen und bedingte Weiterleitungen. Interne Namen hängen oft von dieser Split-DNS-Konfiguration ab, prüfen Sie also, was der Host im verbundenen Zustand nutzt: Resolver-Adresse, Suchdomäne und ob die interne Zone zum Firmen-DNS geroutet wird. Ein Resolver, der öffentliche, aber keine internen Namen beantwortet, ist eine Policy-Frage, kein defekter Tunnel.

Manche Firmen-Clients blockieren auch Datenverkehr von virtuellen Adaptern. Für einen Filtertreiber sieht der Emulator wie ein virtueller Adapter aus, sodass der Host einwandfrei arbeiten kann, während der Emulator per Policy abgelehnt wird. Diese Policy ist von der Workstation aus nicht sichtbar, und Raten an Proxyeinstellungen deckt sie nicht auf. Wenn der Host auflöst und der Emulator unabhängig von den Resolver-Einstellungen blockiert bleibt, gehört die Eskalation zum Team, das die Client-Policy verantwortet.

Reihenfolge der Prüfungen und was jedes Ergebnis bedeutet

Arbeiten Sie von oben nach unten und stoppen Sie bei der ersten fehlschlagenden Zeile. Jedes Ergebnis zeigt auf einen anderen Eigentümer, und keines wird durch Neuinstallation von Android Studio behoben.

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

Nur die letzten beiden Zeilen sind VPN-Fragen im üblichen Sinn, und nur die letzte betrifft DNS-Inhalte. Die adb-Dokumentation deckt den Serverport und die hier genannten Umgebungsvariablen ab, genug, um die Transportsseite ehrlich zu halten, während Sie den Rest testen.

Ähnliche Artikel