Como conectar um emulador Android a uma imagem Vagrant no mesmo host?

0

Eu tenho um aplicativo não trivial, composto por vários web & servidores de banco de dados que residem em uma imagem do Vagrant.

O encaminhamento de porta (com o iptables) foi habilitado no host, de modo que eu possa acessar o aplicativo e seus serviços, conectando-me ao host do Vagrant. (As URLs de desenvolvimento das aplicações são mantidas em / etc / hosts; cada um dos desenvolvedores em nossa equipe tem uma instância da imagem do Vagrant. Como resultado, as URLs usadas durante o desenvolvimento não estão disponíveis via DNS.)

Eu preciso acessar o aplicativo dos meus emuladores do Android para testes; os avd's residem na mesma máquina que estou usando para hospedar minha cópia da imagem do Vagrant.

Eu adicionei as entradas dos aplicativos ao arquivo / etc / hosts do emulador, apontando-os para 10.0.2.2 (a máquina host), entretanto os pacotes não estão sendo encaminhados; Eu suspeito que isso está relacionado com a forma como o emulador Android faz seu roteamento. Infelizmente, não vejo nada nos documentos que possam ajudar.

Veja como estou configurando o encaminhamento de porta com o iptables, que funciona para dispositivos físicos:

#!/usr/bin/env bash
VAGRANT_IFACE=vboxnet1
VAGRANT_GUEST=192.168.50.43

FWDING_PORT=80
PORT_TO_FWD=80

echo "Forwarding port ${FWDING_PORT} to ${VAGRANT_GUEST}:${PORT_TO_FWD} on ${VAGRANT_IFACE}"
iptables -I FORWARD -d ${VAGRANT_GUEST} -m comment --comment "Accept to forward traffic" -m tcp -p tcp --dport ${PORT_TO_FWD} -j ACCEPT
iptables -I FORWARD -m comment --comment "Accept to forward return traffic" -s ${VAGRANT_GUEST} -m tcp -p tcp --sport ${PORT_TO_FWD} -j ACCEPT
iptables -t nat -I PREROUTING -m tcp -p tcp --dport ${FWDING_PORT} -m comment --comment "redirect pckts to virtual machine" -j DNAT --to-destination ${VAGRANT_GUEST}:${PORT_TO_FWD}

echo 1 > /proc/sys/net/ipv4/ip_forward

Qualquer sugestão seria muito apreciada.

    
por psema4 16.01.2015 / 22:16

1 resposta

0

Não é uma solução ideal - e não sei bem qual é a diferença - mas consegui resolver por encaminhamento de porta com ssh em vez de iptables, ou seja:

ssh -L :80:192.168.50.43:80 -N 127.0.0.1
    
por 19.01.2015 / 17:46