Ping zwischen Host und Android-Emulator über Bridge / TAP, jedoch kein Zugriff auf Server auf Host

769
bchase

Ich versuche, eine Android-App in einem Emulator gegen einen Webserver auf dem Hostcomputer zu testen. Ich laufe auf einem Mac (El Capitan) und habe eine zuvor konfigurierte virtuelle Brücke, an die die Ethernet-Netzwerkkarte angeschlossen ist. Ich starte den Emulator mit:

sudo emulator -avd Nexus_9 -qemu -netdev tap,id=mynet0,script=tapup.sh, downscript=tapdown.sh -device virtio-net-pci,netdev=mynet0 

Das Skript tapup.sh konfiguriert die Weiterleitung und verbindet das TAP mit der Bridge wie folgt:

sysctl net.link.ether.inet.proxyall=1 sysctl net.inet.ip.forwarding=1 sysctl net.inet.ip.fw.enable=1 ifconfig bridge1 addm $1 ifconfig $1 up 

Nach dem Start des Emulators starte ich den Dhcp-Client von der Adb-Shell:

adb shell "su root dhcpclient -i eth1&" 

Und von dort aus kann ich den Emulator vom Host aus ( mac:~ user$ ping 192.168.0.5) und den Host vom Emulator aus ( generic_x86_64:/ # ping 192.168.0.4). Hinweis: Ich kann nur als root ( su ) und nicht als normaler Benutzer an den Host pingen. wenn ich versuche, bekomme ich "connect: Netzwerk ist nicht erreichbar" .

Mit diesem Setup kann ich keine Verbindung zu einem Webserver herstellen, der auf dem Host ausgeführt wird, oder zum Internet (obwohl ich ohne Bridge und TAP noch keine Verbindung zum Internet herstellen konnte, aber auf den Webserver zugreifen konnte). Irgendwelche Ideen, warum ich nicht auf den Webserver zugreifen kann?

0

0 Antworten auf die Frage