vagrant /etc/hosts:机器 IP 与本地主机

vagrant /etc/hosts: machine IP vs localhost

我用这个 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 文件感到困惑:What is the difference between using localhost and VM's 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(本地环回)并且虚拟机 IP 是 'network' 上的外部 IP。例如,您可以通过访问 VM IP 从您的机器连接到您的 VM,但是如果您从您的机器连接到 localhost 到 VM,您最终会在您自己的机器上。

如果您将服务绑定到 127.0.0.1,您将无法从 'machine' 的 'outside' 访问它。

如果您想阅读更多内容,这可能会提供更好的解释: https://www.lifewire.com/network-computer-special-ip-address-818385

更具体到你的情况

不确定我是否正确理解了您的问题,但我想您的问题是:您的虚拟机 /etc/hosts 中的主机名是什么?那是因为它们不存在于 DNS 中,如果您要连接到这些主机,它需要在正确的位置结束,在这种情况下是 VM 本身。