我有一个使用此 IP 地址的 vagrant 机器设置:
Vagrant.configure("2") do |config|
config.vm.network :private_network, ip: 192.168.33.11
config.vm.network "forwarded_port", guest: 80, host: 8080
config.vm.hostname = "my-devenv"
...
end
一切正常。但我对 VM 上的/etc/hosts 文件感到困惑:使用 localhost 和 VM 的 IP(127.0.0.1 some-dev-site.dev vs 192.168.33.11 some-dev-site.dev)有什么区别?
127.0.0.1 localhost
127.0.0.1 some-dev-site.dev
192.168.33.11 some-dev-site.dev
最佳答案
一般
本地主机通常在不同机器上总是相同的:127.0.0.1(本地环回),VM IP 是“网络”上的外部 IP。例如,您可以通过访问 VM IP 从您的计算机连接到您的 VM,但是如果您从您的计算机连接到 localhost 到 VM,您最终会在您自己的计算机上。
如果您将服务绑定(bind)到 127.0.0.1,您将无法从“机器”的“外部”访问它。
如果您想阅读更多内容,这可能会提供更好的解释:
https://www.lifewire.com/network-computer-special-ip-address-818385
更具体到您的情况
不确定我是否正确理解了您的问题,但我想您的问题是:您的虚拟机的/etc/hosts 中的主机名是什么?那是因为它们不存在于 DNS 中,如果你连接到这些主机,它需要在正确的位置结束,在这种情况下是 VM 本身。
关于 Vagrant/etc/hosts : machine IP vs localhost,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48645188/