Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> 關於 Linux

VMware 虛擬機修改 Linux MAC 地址三大法:.vmx 配置最推薦

編輯:關於 Linux

MAC 地址作為網卡唯一標識,在虛擬機克隆、網絡隔離、軟件授權綁定等場景需修改。本文對比三種修改方法,推薦通過 .vmx 文件從虛擬硬件層面修改,效果等同「重新燒錄網卡 ROM」。

方法對比

方法層級持久性推薦指數適用場景
修改 .vmx 文件虛擬硬件✅ 永久、遷移保持⭐⭐⭐⭐⭐克隆後、模板化、授權綁定
修改客戶機網絡腳本作業系統⚠️ 重啟後可能失效⭐⭐臨時測試、無宿主機權限
修改 rc.local 啟動腳本作業系統⚠️ 依賴腳本執行順序⭐⭐無宿主機權限、快速驗證

方法一:修改 .vmx 文件 (最推薦)

關閉虛擬機,編輯 vmname.vmx:

情況 1:靜態 MAC (addressType = "static")

ethernet0.addressType = "static"
ethernet0.address = "00:50:56:0A:0B:0C"
# 00:50:56 為 VMware OUI 前綴,後綴自定義
# 啟動時提示 UUID 衝突選擇 "Keep Always"

情況 2:自動生成 MAC (addressType = "generated")

ethernet0.addressType = "generated"
uuid.location = "56 4d dc f1 ff aa 75 ea-f1 b9 ee 0d 68 9c 65 5c"
uuid.bios = "56 4d ed 23 13 8c 96 91-7c 68 b2 09 8b aa bb cc"
ethernet0.generatedAddress = "00:0C:29:AA:BB:CC"
# 修改 uuid.bios 最後 6 字節 + generatedAddress 最後 6 字節
# 保持一致,前綴 00:0C:29 為 VMware OUI

方法二:修改客戶機網絡配置 (CentOS/RHEL)

vim /etc/sysconfig/network-scripts/ifcfg-eth0
# 添加/修改
MACADDR=00:0C:29:AA:BB:CC
# 重啟網絡或重啟系統
systemctl restart network
# 或
reboot

方法三:rc.local 啟動設置

vim /etc/rc.local
# 添加在 exit 0 之前
ip link set dev eth0 down
ip link set dev eth0 address 00:0C:29:AA:BB:CC
ip link set dev eth0 up
# 賦權
chmod +x /etc/rc.local

驗證與生效

# 查看當前 MAC
ip link show eth0
# 或
cat /sys/class/net/eth0/address

# 修改 .vmx 後需完全關機 (非重啟) 再開機
# 宿主機操作:虛擬機 → 電源 → 關機 → 開機

MAC 地址規範

  • 前 3 字節 (OUI) 建議使用 VMware 註冊前綴:00:50:56、00:0C:29、00:1C:14
  • 後 3 字節隨機生成,避免局域網衝突
  • 格式:XX:XX:XX:XX:XX:XX (十六進制,冒號分隔)

避坑指南

  • ❌ 同時使用多種方法會導致衝突
  • ❌ 修改 .vmx 後僅重啟客戶機不生效,必須宿主機層面 Power Off/On
  • ❌ 複製 .vmx 到其他宿主機需重新生成 UUID
  • ✅ 修改前備份 .vmx 文件
  • ✅ 修改後檢查 /etc/udev/rules.d/70-persistent-net.rules 是否自動更新

批量修改腳本 (宿主機端)

#!/bin/bash
# batch_change_mac.sh
VMX_FILE="$1"
NEW_MAC="$2"  # 格式: 00:0C:29:AA:BB:CC

if [ ! -f "$VMX_FILE" ]; then
    echo "VMX file not found"
    exit 1
fi

# 靜態 MAC 模式
sed -i 's/ethernet0.addressType = ".*"/ethernet0.addressType = "static"/' "$VMX_FILE"
sed -i "s/ethernet0.address = \".*\"/ethernet0.address = \"$NEW_MAC\"/" "$VMX_FILE"

echo "Updated $VMX_FILE with MAC $NEW_MAC"
echo "Power off/on VM to take effect"

掌握 .vmx 修改法,從虛擬硬件層面徹底解決 MAC 地址管理需求。

Copyright © Windows教程網 All Rights Reserved