Vagrant – 通过主机名访问主机

我在我的开发机器上安装了vagrant 1.2.2 ; 一台笔记本电脑。 我在三种不同的环境中使用相同的笔记本电脑,不同的networking设置

我的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 

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

但是当我尝试从主机操作系统(Windows)ping web ,它不能parsingIP地址。

移动到其他办公室时,我不能每次更改Windows中的主机文件,因为C类子网掩码和IP范围不同。

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

为什么不指定一个你的主机可以用来连接到虚拟机的专用networking呢?

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

无论你走到哪里,私有IP都将保持不变。 您可以添加一个主机条目为这个私人IP。

遵循Andy的build议,我创build了一个具有静态IP地址的专用networking。 然后在Windows主机中,我使用该IP地址configuration了主机名。 这样,我可以从本地/主机操作系统访问networking服务器。

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

要从任何其他计算机访问“networking”,您需要在您的局域网上的DNS服务器中添加一个DNS条目。

然而,从你所描述的,这可能会成为问题,因为你需要每次你的笔记本电脑获得一个新的IP地址时更新您的DNS条目。

如果你想偶尔和networking上的其他几个人共享这个虚拟机,那么你应该告诉他们每一次改变的IP地址。
如果很多人可以访问虚拟机,或者经常更改你的IP,那么你应该把虚拟机从你的笔记本移到专用的服务器上,或者得到一个ec2实例。

Vagrant非常擅长在自己的工作站上启动虚拟机,但对于与其他人共享虚拟机却不是很好。