4
respostas

Erro definindo IP fixo

Após adicionar a linha web_config.vm.network "private_network", ip: "192.168.1.50" ao Vagrantfile recebo o seguinte erro ao rodar vagrant reload.

The specified host network collides with a non-hostonly network!
This will cause your specified IP to be inaccessible. Please change
the IP or name of your host only network so that it no longer matches that of
a bridged or non-hostonly network.

O que quer dizer, e como resolver?

Obrigado!

4 respostas

Oi Carlos, a mensagem indica que aparentemente houve colisão de IP "The specified host network collides with...". Tenta um IP diferente pra ver se funciona?

Tentei vários no range 192.168.1.* que é minha rede. Testei 192.168.50.10 e funcionou. Além de funcionar, eu consegui pingar do meu PC pra esse IP. Mas, essa não é uma rede diferente?

Sei que essa dúvida deveria estar na categoria de redes, mas, minha máscara é 255.255.255.0, ou seja, apenas o último octeto é de host, sendo os 3 primeiros de rede, indicando que 192.168.2 (meu IP) e 192.168.50.10 (IP da máquina virtual) estão em redes diferentes, não é isso?

Como eu consegui pingar, então?

Oi Carlos, eu infelizmente não sou muito bom em redes, e nisso você me pegou. Mas o que você disse é verdade, estão em redes diferentes considerando o seu argumento. Porém, há distinções de rede, lembre-se que o Vagrant sobe uma máquina na sua própria máquina, e o private network funciona um pouco diferente do public network.

Na prática, você sempre tem dois IPs, concorda? O público, 192.168.1.200 ( por exemplo ), e o local 127.0.0.1 ( localhost ) que estão em faixas diferentes. Notebooks por exemplo, podem estar em duas redes, wireless e via cabo. Neste caso, (eu acho) que você acabaria com 3 IPs.

Considerando a questão do private network, a comunicação acontece na própria máquina até onde entendi, por isso a faixa de IP pode não importar muito. Essas regras no geral, acho que só seriam aplicadas se você usasse o vagrant para public networks. Para ler mais eu deixo o link da documentação:

https://www.vagrantup.com/docs/networking/

Na teoria é isso mesmo, voce tentou pingar de uma outra máquina sem ser a sua máquina que esta usando vagrant? Em relação ao IP que voce esta tentando usar, tente assim: config.vm.network "public_network", ip: "IP_MAQUINA"

Ao invés de usar private usa o public