- Jak sprawdziłeś adres ip twojego hosta?
- [host] ifconfig -a
- eth0 albo inny intefrejs powienien Ci pokazać ip twojego hosta
- Próbowałeś pingować hosta z poziomu windowsa?
- Nie masz włączonych ip tables?
- Na jakim adresie odpalasz swoją aplikację? Czy aby nie wyłącznie na localhoscie?
- aplikacje odpalne na lokalnym adresie nie będą widzoczne poza interfejsami innymi niż looopback. Przykładowo
Wirtualka:
user@vm:~ echo -e "HTTP/1.1 200 OK\n\n TEST" | netcat -l localhost 8080
Mój system:
✘ xxxx@XXXX ~/workspace/test curl 192.168.99.100:8080
curl: (7) Failed to connect to 192.168.99.100 port 8080: Connection refused
versus
Wirtualka:
user@vm:~ echo -e "HTTP/1.1 200 OK\n\n TEST" | netcat -l 0.0.0.0 8080
Mój system:
✘ xxxx@XXXX ~/workspace/test curl 192.168.99.100:8080
TEST
Jeżeli słuchasz na localhoście, to nie dziw się, że ruch z innej sieci (wirtualnej co prawda) nie dochodzi do twojej aplikacji. Możesz zrobić NAT i port forwarding z localhost hosta do ip guesta. Ale localhost guest nie będzie dostępny, więc i tak musisz odpalić aplikację na adresie innym niż localhost.
Żeby to osiągnąć dokładnie to co chcesz musisz jeszcze zrobić forwardowanie (routowanie właściwie) przez iptables z zewne†rznego ip na localhost na guest (i w drugą stronę pewnie też).
Musiałbyś stworzyć takie coś:
{client app} <-> |VM network interface| <-- (NAT forwarding and virtual network) --> |guest eth0| <-- (DNAT: ip tables prerouting) --> |guest loopback| <--> {server app}