Parece haver muitos problemas semelhantes aos meus, mas nenhuma solução funcionou até agora.
Eu tenho um ubuntu-xenial executando meu aplicativo escutando na porta 3333. E eu gostaria que essa VM estivesse acessível do mundo exterior. Para fazer isso, eu criei uma rede pública no meu arquivo vagrant. Aqui está o meu arquivo vagabundo.
Vagrant.configure("2") do |config|
config.vm.box = "ubuntu/xenial64"
config.vm.provider :virtualbox do |vb|
vb.customize ['modifyvm', :id,'--memory', '2048']
vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
vb.customize ["modifyvm", :id, "--natdnsproxy1", "on"]
config.vm.network "public_network", ip:"192.168.0.17", bridge: "en0: Wi-Fi (AirPort)"
config.ssh.forward_agent = true
end
O ifconfig na VM se parece com isso
enp0s3 Link encap:Ethernet HWaddr 02:f4:1f:34:da:68
inet addr:10.0.2.15 Bcast:10.0.2.255 Mask:255.255.255.0
inet6 addr: fe80::f4:1fff:fe34:da68/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1461 errors:0 dropped:0 overruns:0 frame:0
TX packets:914 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:374409 (374.4 KB) TX bytes:114458 (114.4 KB)
enp0s8 Link encap:Ethernet HWaddr 08:00:27:e5:7f:3d
inet addr:192.168.0.17 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fee5:7f3d/64 Scope:Link
inet6 addr: fd44:dcec:a817:0:a00:27ff:fee5:7f3d/64 Scope:Global
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:25 errors:0 dropped:0 overruns:0 frame:0
TX packets:20 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:2440 (2.4 KB) TX bytes:1602 (1.6 KB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:1 errors:0 dropped:0 overruns:0 frame:0
TX packets:1 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1
RX bytes:112 (112.0 B) TX bytes:112 (112.0 B)
Agora, aqui está o meu problema, eu tenho 2 interfaces de rede Ethernet enp0s3 e enp0s8 com ips diferentes. enp0s3 é criado por padrão, portanto, mesmo que eu não crie minha rede pública, o enp0s3 ainda existe.
Posso acessar minha vm com o ip 192.168.0.17 (enp0s8) totalmente bem, mas não consigo acessar minha vm com 10.0.2.15 (enp0s3). Como a interface de rede enp0s3 é inútil para mim, como removê-la?
Quando tento a solução aqui ( como forçar o Vagrant a ter uma única interface de rede em ponte ), não consigo fazer o ssh no vm.
A razão pela qual eu preciso da interface de rede enp0s3 foi que eu tenho outro programa em execução no meu host que verifica a rede e retorna todos os ips de dispositivos na rede. Ele sempre retorna 10.0.2.15 para a máquina virtual. Quando eu realmente quero 192.168.0.17