Creo que -net tap es la forma antigua, usa -netdev tap con el nuevo emulador Android sdk y -device virtio-net-pci para el emulador Android x86. Para el emulador ARM debes usar otro dispositivo.
Y debes instalar el paquete del emulador con el sdkmanager como este:
sdkmanager emulator
Entonces puedes usar el emulador ubicado en /opt/Android-sdk/emulator/emulator.
Crea un puente de red que incluya una interfaz tap (tap0) para el emulador y una interfaz ethernet (enp0s20u1) conectada a una red lan.
# ip addr flush dev enp0s20u1
# ip link set enp0s20u1 down
# ip tuntap add dev tap0 mode tap user $(whoami)
# ip link add br0 type bridge
# ip link set enp0s20u1 master br0
# ip link set tap0 master br0
# ip link set enp0s20u1 up
# ip link set tap0 up
# ip link set br0 up
Una vista rápida del puente.
# brctl show
bridge name bridge id STP enabled interfaces
br0 8000.0050b609a5d1 no enp0s20u1
tap0
Inicie un cliente dhcp en el puente:
# dhcpcd br0
Entonces puedes conectar la interfaz tap (tap0) al emulador de Android a través de las opciones -qemu cuando lances el emulador.
./opt/android-sdk/emulator/emulator \
-avd android_25_x86 \
-verbose -no-window \
-qemu \
-device virtio-net-pci,netdev=hn0,mac=52:55:00:d1:55:51 \
-netdev tap,id=hn0,ifname=tap0,script=no,downscript=no
Normalmente una nueva interfaz eth1 está presente en el emulador de Android. Y puede ejecutar el binario dhcpclient si está presente o configurar la ruta estática a su red, entonces funciona.
generic_x86:/ # ping -c 1 -I eth1 8.8.8.8
PING 8.8.8.8 (8.8.8.8) from 192.168.1.60 eth1: 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=55 time=17.1 ms
--- 8.8.8.8 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 17.160/17.160/17.160/0.000 ms
Pero tengo algunos problemas para hacer ping al emulador desde el exterior o enrutar todo el tráfico en el emulador a la red del host, ver mi otro post.
Conectar el emulador de Android a la lan
0 votos
Tal vez trate de hacer lo mismo que mi puesto [ stackoverflow.com/questions/48840050/
0 votos
@snake, tu enlace está roto
0 votos
-net-tap tap0