上一篇
Linux虚拟机如何查看MAC地址?
- 物理机
- 2025-06-10
- 3822
在Linux虚拟机中查看物理地址(MAC地址),使用终端命令
ifconfig
或
ip link show
,执行后查找网络接口(如eth0)信息中的
ether
或
link/ether
字段,其后的十六进制值即为物理地址。
物理地址(MAC地址)的核心概念
- 物理地址:即MAC地址(Media Access Control Address),是网络接口卡(NIC)的唯一标识符,格式为
XX:XX:XX:XX:XX:XX
(十六进制)。 - 虚拟机场景:
虚拟机的MAC地址由虚拟机管理程序(如VMware、VirtualBox)自动生成或手动指定,与宿主机物理网卡地址无关。
命令行查看方法(推荐)
方法1:使用 ip link
命令(通用性强)
ip link show
- 输出示例:
1: lo: <LOOPBACK> ... 2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> ... link/ether **00:0c:29:3d:5a:7c** ...
- 关键字段:
link/ether
后紧跟的即为MAC地址(如00:0c:29:3d:5a:7c
)。
方法2:使用 ifconfig
命令(需安装net-tools)
sudo apt install net-tools # Ubuntu/Debian安装 sudo yum install net-tools # CentOS/RHEL安装 ifconfig
- 输出示例:
ens33: ... ether **00:0c:29:3d:5a:7c** ...
- 关键字段:
查找ether
或HWaddr
后的值。
方法3:通过设备文件直接读取
cat /sys/class/net/ens33/address # 将"ens33"替换为你的网卡名
- 输出示例:
00:0c:29:3d:5a:7c
查看虚拟机配置中的MAC地址
VMware虚拟机
- 关闭虚拟机 → 右键选择 设置 → 网络适配器 → 高级选项 → 查看 MAC地址。
- 或编辑
.vmx
配置文件,查找ethernet0.address
。
VirtualBox虚拟机
- 关闭虚拟机 → 设置 → 网络 → 高级 → MAC地址。
- 命令行查看(宿主机执行):
VBoxManage showvminfo <虚拟机名> | grep "MAC address"
KVM/QEMU虚拟机
virsh dumpxml <虚拟机名> | grep "mac address"
注意事项
- 临时性变更:
sudo ip link set dev ens33 address 00:11:22:33:44:55
可临时修改MAC地址(重启失效)。 - 永久性配置:
- Ubuntu:编辑
/etc/netplan/*.yaml
,添加macaddress: ...
。 - CentOS:编辑
/etc/sysconfig/network-scripts/ifcfg-ens33
,添加MACADDR=...
。
- Ubuntu:编辑
- 虚拟机克隆问题:
克隆后MAC地址可能冲突,需在虚拟机设置中生成新地址避免网络冲突。
常见问题解答
Q1:为什么ifconfig
命令不存在?
A:现代Linux发行版默认使用ip
命令,安装net-tools
即可支持ifconfig
。
Q2:MAC地址被误修改导致无法联网?
A:重启虚拟机或使用 sudo systemctl restart NetworkManager
恢复。
Q3:如何验证MAC地址是否唯一?
A:在局域网内执行 arp-scan -l
(需安装arp-scan
),检查是否有重复地址。
引用说明
- Linux
ip
命令文档:man7.org/linux/man-pages/man8/ip.8.html - VMware 网络配置指南:docs.vmware.com
- VirtualBox 手册:virtualbox.org/manual
提示:操作涉及系统配置时,建议备份文件并谨慎执行命令,本文方法经测试适用于主流Linux发行版(内核4.x+)及虚拟机环境。