在Vagrant中设置虚拟机的MAC地址

39

文档列出了在Vagrantfile中可以设置虚拟机的Mac地址,但是我添加的每一个都似乎都会成为语法错误。有没有人成功做到这个?


http://vagrantup.com/v1/docs/config/vm/network.html 也应该会有所帮助! - Vishal Biyani
@VishalBiyani 404 - shashwat
5个回答

44

我使用了这个:

config.vm.network :bridged , :mac => "080027XXXXXX"

我得到了想要的结果。

文档对选项哈希语法不太清楚,并且似乎没有关于它应该是什么样子的示例。因此,这就是它的样子!与mac地址桥接(当然编辑过)。这将使用指定的mac地址启动eth1,使我的DHCP服务器满意,并在我的网络上提供适当的fqdn。


2
这适用于桥接网络。然而,对于“:hostonly”网络的可推测等效项通过语法解析器,但无法更改 MAC 地址(至少在 VirtualBox 中是如此)。 config.vm.network :hostonly, "192.168.33.10", mac: "5CA1AB1E0001" config.vm.network :hostonly, "192.168.33.10", :mac => "5CA1AB1E0001" - Phil
1
我得到了这个错误:网络类型“桥接”无效。请使用有效的网络类型。 - 我用这个替代方法解决了它:   config.vm.network "private_network", ip: "192.168.33.33", netmask: "255.255.255.0", mac:"080027e35dfe"- MAC地址已更改,但现在我**无法再连接该机器!**SSH身份验证方法:私钥`如何重置私钥? - rubo77
你尝试过恢复你上面设置的MAC配置吗?如果没有其他变化,而你得到了“SSH auth method: private key”,那就意味着你没有连接到同一台机器,这可能是因为你将MAC地址设置为网络中另一台机器的地址。 - Benjamin
注意:VBoxManage将无法设置不匹配“[0-9A-Fa-f] [02468ACEace] [0-9A-Fa-f]{10}”的MAC地址,因为MAC地址格式无效。 - Lindenk

21

这是一个旧问题,但我刚刚遇到了同样的问题。 Vagrant文档v2 看起来仍然不完整。最后我在Vagrantfile中使用了这行代码,版本号为vagrant 1.2.7:


config.vm.network "public_network", :bridge => 'enp4s0', :mac => "5CA1AB1E0001"

这会将名为'enp4s0'的主机接口设置为桥接接口,

  • 然后通过与主机相同的DHCP分配给客户端上的'eth0'一个IP地址
  • 还将5C:A1:AB:1E:00:01设置为客户端的MAC地址

gmoney的答案给了我这个错误: “此计算机的配置存在错误。请修复以下错误并重试:vm:
  • 网络类型“桥接”无效。请使用有效的网络类型。 ”
raddaqii的解决方案对我有用。
- Robert Fey

7

哎呀,网络配置在我的情况下没有起到帮助作用。通过直接在Vagrantfile中定义MAC地址来 config.vm.base_mac = "MyEth0MacAddressWithoutSlashes" 我的虚拟机终于启动了=)


5
在 Vagrant 版本 2.0.1 上,我在 Vagrantfile 文件中为 private_network (provider = VirtualBox; version 5.2.0) 编写了以下内容:
config.vm.network "private_network", ip: "X.X.X.X", mac: "080027xxxxxx"

1
下面提供的信息已过时。根据文档,要允许通过DHCP分配IP,请使用以下命令:
config.vm.network "public_network"

这样,您就不需要处理MAC地址,它将自动生成。 如果您需要将自定义MAC地址附加到网络设备,则:
config.vm.network "public_network", :mac=> "080027xxxxxx"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接