J'ai un démon ADB qui fonctionne sur localhost:5037 sur ma machine. J'ai une machine virtuelle qui fonctionne sur ma machine. Appelons ma machine hôte et la machine virtuelle invitée.
La VM invitée utilise l'interface de l'hôte :
virbr0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
pour se connecter à l'Internet. Je dois accéder au serveur ADB de mon hôte depuis l'invité. Si j'appelle simplement 192.168.122.1
depuis l'intérieur de l'invité, cela ne fonctionne pas car adb sur l'hôte est lié à localhost:5037, et non 192.168.122.1:5037, donc j'ai besoin d'un moyen de mapper
192.168.122.1:5037 <-> localhost:5037
sur la machine hôte de manière bidirectionnelle.
Si je me contente d'ajouter un pont entre tous les éléments, le fonctionnement de ma VM sera perturbé car elle dépend de cette interface pour se connecter à Internet.
Comment puis-je créer un pont TCP entre ces 2 IPs ? J'ai trouvé http://tcpreplay.synfin.net/wiki/tcpbridge mais son fonctionnement n'est pas clair. Peut-être qu'iptables peut résoudre ce problème ?
UPDATE :
comme recommandé dans la réponse, j'ai utilisé socat et maintenant ça marche :
#on host machine:
socat tcp-listen:5037,bind=192.168.122.1,reuseaddr,fork tcp:localhost:5037
#on virtual machine:
socat tcp-listen:5037,bind=localhost,reuseaddr,fork tcp:192.168.122.1:5037