Você pode acessar portas na máquina host através do gateway padrão dentro do sistema operacional convidado. (Que normalmente tem um IP de 10.0.2.2
.)
Por exemplo, se você tiver um servidor da web em execução na porta 8000 em sua máquina host ...
echo 'Hello, guest!' > hello
python -m SimpleHTTPServer 8000
Você pode acessá-lo de dentro da VM Vagrant em 10.0.2.2:8000
(desde que 10.0.2.2
seja o ip do gateway padrão do convidado):
vagrant ssh
curl http://10.0.2.2:8000/hello # Outputs: Hello, guest!
Para encontrar o IP do gateway padrão dentro do sistema operacional convidado, execute netstat -rn
(ou ipconfig
em um convidado do Windows) e procure a linha com um IP de destino 0.0.0.0
(ou o campo "Gateway Padrão" no Windows):
$ netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 10.0.2.2 0.0.0.0 UG 0 0 0 eth0
10.0.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.33.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
Você pode extrair esse IP programaticamente com netstat -rn | grep "^0.0.0.0 " | tr -s ' ' | cut -d " " -f2
.
Fontes: Como conectar-se ao host PostgreSQL a partir de uma máquina virtual de vagrant ; Conectar-se à máquina host de um sistema operacional convidado do VirtualBox?