如何在XenServer 6中修改虚拟机网卡的MAC地址(仅能SSH访问Xen主机场景)
如何在XenServer 6中修改虚拟机网卡的MAC地址(仅能SSH访问Xen主机场景)
兄弟,我懂你这种误操作后的崩溃感!别着急,在XenServer 6里碰到这种直接改VIF MAC提示“只读”的问题,咱们可以绕个路子解决,下面给你说两种靠谱的纯命令行操作方法:
方法一:删除原有VIF并重建(通用所有VM类型)
这个方法最稳妥,因为直接修改VIF的MAC字段被系统限制了,但我们可以删掉旧网卡再重新创建一个带指定MAC的新网卡,前提是你的VM处于halted状态(你已经满足这个条件了)。
- 先拿到目标VM的UUID,把下面的
YourVMName换成你的虚拟机名称:
vm_uuid=$(xe vm-list name-label="YourVMName" params=uuid --minimal)
- 列出该VM的所有网卡信息,找到你要修改的那个VIF,记下它的
uuid、network-uuid和device编号(比如device是0,对应第一个网卡):
xe vif-list vm-uuid=$vm_uuid
- 先解绑再删除这个旧VIF,把
<旧VIF的UUID>换成你刚才记下的VIF UUID:
xe vif-unplug uuid="<旧VIF的UUID>" xe vif-destroy uuid="<旧VIF的UUID>"
- 重新创建一个新的VIF,把
<记录的network-uuid>、<记录的device编号>、<你要设置的MAC地址>换成对应的值(MAC格式要写成aa:bb:cc:dd:ee:ff这种):
xe vif-create vm-uuid=$vm_uuid network-uuid="<记录的network-uuid>" device="<记录的device编号>" mac="<你要设置的MAC地址>"
完成后启动VM,新的MAC就生效了,和原来的网卡配置完全一致,只是MAC换成了你需要的。
方法二:修改VM的平台参数(仅适配HVM类型虚拟机)
如果你的VM是HVM类型的,还可以直接修改VM的平台参数来设置MAC,步骤更简单:
- 同样先拿到VM的UUID:
vm_uuid=$(xe vm-list name-label="YourVMName" params=uuid --minimal)
- 直接设置新的MAC地址,把
<新MAC地址>换成你想要的格式:
xe vm-param-set uuid=$vm_uuid platform:mac="<新MAC地址>"
这个方法不用删网卡,但只对HVM虚拟机有效,PV类型的VM用不了。
备注:内容来源于stack exchange,提问作者rossi2561
相关产品推荐
相关产品推荐

