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

Posted

技术标签:

【中文标题】在 Vagrant 中设置虚拟机的 mac 地址【英文标题】:Setting a VM's mac address in Vagrant 【发布时间】:2012-09-14 07:50:34 【问题描述】:

文档列出了可以在 Vagrantfile 中设置 VM 的 mac 地址,但是我添加的所有内容似乎最终都是语法错误。有人成功完成了吗?

【问题讨论】:

vagrantup.com/v1/docs/config/vm/network.html 也应该有帮助! @VishalBiyani 404 【参考方案1】:

在 Vagrant 版本 2.0.1 中,我在 Vagrantfile 中为 private_network 编写(提供者 = VirtualBox;版本 5.2.0):

config.vm.network "private_network", ip: "X.X.X.X", mac: "080027xxxxxx"

【讨论】:

【参考方案2】:

以下提供的信息已过时。根据允许通过 DHCP 分配 IP 的文档,只需使用:

config.vm.network "public_network"

这样你就不需要处理mac地址了,它会自己生成。 如果您需要将自定义 MAC 地址附加到网络设备,则:

config.vm.network "public_network", :mac=> "080027xxxxxx"

【讨论】:

【参考方案3】:

嗯,网络配置对我没有帮助。通过config.vm.base_mac = "MyEth0MacAddressWithoutSlashes"直接在Vagrantfile中定义MAC地址后我的机器启动了=)

【讨论】:

【参考方案4】:

我用过这个:

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

得到了我想要的。

文档不清楚选项哈希的语法是什么,而且似乎没有关于这应该是什么样子的示例。所以,就在这里!用mac地址桥接(当然编辑)。这会使用指定的 mac 启动 eth1,这让我的 DHCP 服务器很开心,并在我的网络上为其提供了一个正确的 fqdn。

【讨论】:

这适用于桥接网络。但是,:hostonly 网络的假定等效项通过了语法解析器,但无法更改 mac 地址(至少对于 VirtualBox 而言)。 config.vm.network :hostonly, "192.168.33.10", mac: "5CA1AB1E0001"config.vm.network :hostonly, "192.168.33.10", :mac => "5CA1AB1E0001" 我收到了这个错误:Network type 'bridged' is invalid. Please use a valid network type. - 用这个插件解决了这个问题:`config.vm.network "private_network", ip: "192.168.33.33", netmask: "255.255.255.0", mac: "080027e35dfe" - mac 已经改变,但现在我无法再连接到机器了! SSH auth method: private key 如何重置私钥? 您是否尝试过恢复上面设置的 MAC 配置?如果没有其他任何变化并且您得到“SSH auth method: private key”,这意味着您没有连接到同一台机器,如果您将 MAC 设置为与另一台机器相同的地址,这可能是可能的您的网络。 注意:VBoxManage 将无法设置与 '[0-9A-Fa-f][02468ACEace][0-9A-Fa-f]10' 不匹配的 mac 地址MAC 地址格式无效【参考方案5】:

这是一个老问题,但我刚才遇到了同样的问题。 Vagrant documentation v2 似乎仍然不完整。最后,我在 vagrant 1.2.7 的 Vagrantfile 中使用了这一行:

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

这个:

将名为“enp4s0”的主机接口设置为桥接接口, 在客户机上作为“eth0”,然后由主机使用的同一 DHCP 分配一个 IP 地址 还将 5C:A1:AB:1E:00:01 设置为访客的 MAC 地址

【讨论】:

gmoney 的回答给了我这个错误:“这台机器的配置有错误。请修复以下错误并重试:vm: * Network type 'bridged' is invalid. Please use a valid网络类型。” raddaqii 的解决方案对我有用

以上是关于在 Vagrant 中设置虚拟机的 mac 地址的主要内容,如果未能解决你的问题,请参考以下文章

如何通过Vagrant设置VM名称?

在虚拟机中设置NAT模式实现主机和虚拟机的通信

sh 在Vagrant Ubuntu框中设置Vim + Vundle + Solarized + Tmux。这与我在Vim + Tmux上的文章有关:http://fideloper.com/mac-

Azure上Linux虚拟机Mac地址的持久化

Vagrant搭建虚拟化开发环境初识

如何在keepalived中设置VIP的MAC,主从切换后VIP对应MAC不改变