Vagrant-通过主机名从主机访问访客

Vagrant-通过主机名从主机访问访客

我有流浪者 1.2.2安装在我的开发机器上;一台笔记本电脑。我在三个不同的环境中使用同一台笔记本电脑,使用不同的网络设置。

我的 VagrantFile 如下所示:

Vagrant.configure("2") do |config|
    config.vm.box = "lucid32"
    config.vm.network :forwarded_port, guest: 80, host: 88
    config.vm.network :forwarded_port, guest: 56789, host: 56789
    config.vm.network :public_network, :bridge => 'Intel(R) 82579V Gigabit Network Connection'
    config.vm.hostname = "web"
end

它成功地将主机名设置为web无头 Ubuntu 中的主机名。

但是当我尝试web从主机操作系统(Windows) ping 时,它无法解析 IP 地址。

由于当我搬到其他办公室时 C 类子网掩码和 IP 范围会有所不同,因此我无法每次都更改 Windows 中的 hosts 文件。

有没有办法通过主机名从主机访问客户机web

答案1

为什么不指定主机可以用来连接虚拟机的专用网络?

http://docs.vagrantup.com/v2/networking/private_network.html

无论您去哪里,私有 IP 都将保持不变。然后您可以为该私有 IP 添加主机条目。

答案2

根据 Andy 的建议,我创建了一个具有静态 IP 地址的私有网络。然后在 Windows 主机中,我使用该 IP 地址配置了主机名。这样,我就可以从本地/主机操作系统访问 Web 服务器了。

现在,在 VagrantFile 中,由于我的主机端口 88 被转发到客户的 80( config.vm.network :forwarded_port, guest: 80, host: 88),我可以使用以下命令从本地 LAN 计算机访问 Web 服务器:http://host-computer-name:88/

答案3

要从任何其他计算机访问“web”,您需要在 LAN 上的 DNS 服务器中添加 DNS 条目。

但是,从您所描述的情况来看,这可能会出现问题,因为每次笔记本电脑获得新的 IP 地址时,您都需要更新 DNS 条目。

如果您偶尔想与网络上的其他几个人共享此虚拟机,那么每次更改 IP 地址时,您都应该告诉他们。
如果很多人会访问虚拟机,或者您的 IP 经常更改,那么您应该将虚拟机从笔记本电脑移到专用服务器上,或者获取 ec2 实例。

Vagrant 非常适合在您自己的工作站上启动虚拟机,但不适合与其他人共享虚拟机。

相关内容