MAC(Media Access Control)地址是网络设备的硬件标识符,通常由12位十六进制数字组成(如 00:11:22:33:44:55),用于局域网内设备的唯一识别。在Linux系统中,出于网络调试、隐私保护或虚拟化需求,可能需要查看或临时/永久修改MAC地址。以下是详细方法总结:
![图片[1]_Linux查看和修改MAC地址的方法大全_知途无界](https://zhituwujie.com/wp-content/uploads/2025/10/d2b5ca33bd20251011090855.png)
一、查看MAC地址
1. 使用 ip link 命令(推荐)
ip link show
输出示例:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
link/ether 00:11:22:33:44:55 brd ff:ff:ff:ff:ff:ff # eth0的MAC地址
3: wlan0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether aa:bb:cc:dd:ee:ff brd ff:ff:ff:ff:ff:ff # wlan0的MAC地址
- 关键字段:
link/ether后面的值即为网卡的MAC地址(如eth0的00:11:22:33:44:55)。 - 适用场景:适用于所有现代Linux发行版(推荐替代旧的
ifconfig)。
2. 使用 ifconfig 命令(传统工具,部分系统需安装)
ifconfig -a
输出示例:
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.100 netmask 255.255.255.0 broadcast 192.168.1.255
ether 00:11:22:33:44:55 txqueuelen 1000 (Ethernet) # MAC地址
RX packets 1000 bytes 1000000 (1000.0 KB)
...
- 注意:
ifconfig属于net-tools包,现代系统可能默认未安装,需通过sudo apt install net-tools(Debian/Ubuntu)或sudo yum install net-tools(CentOS/RHEL)安装。
3. 使用 nmcli 命令(NetworkManager工具)
若系统使用NetworkManager管理网络(常见于桌面版Linux),可通过以下命令查看:
nmcli device show <网卡名> | grep GENERAL.HWADDR
示例:
nmcli device show eth0 | grep GENERAL.HWADDR
输出:
GENERAL.HWADDR: 00:11:22:33:44:55
二、临时修改MAC地址(重启后失效)
临时修改适用于测试或临时需求,重启网络服务或系统后会恢复原MAC地址。
1. 使用 ip link 命令(推荐)
步骤:
- 关闭目标网卡:
sudo ip link set <网卡名> down示例(修改eth0):sudo ip link set eth0 down - 修改MAC地址:
sudo ip link set <网卡名> address <新MAC地址>示例(将eth0的MAC改为00:11:22:33:44:66):sudo ip link set eth0 address 00:11:22:33:44:66 - 重新启用网卡:
sudo ip link set <网卡名> up示例:sudo ip link set eth0 up - 验证修改:
ip link show <网卡名>
注意事项:
- MAC地址格式:支持
00:11:22:33:44:55(冒号分隔)、00-11-22-33-44-55(连字符分隔)或001122334455(无分隔符),但建议使用标准冒号格式。 - 合法性:MAC地址的第1字节第2位需为
0(表示单播地址,非组播),且不能为全F或广播地址(如ff:ff:ff:ff:ff:ff)。
2. 使用 ifconfig 命令(传统方法)
步骤:
- 关闭网卡:
sudo ifconfig <网卡名> down - 修改MAC地址:
sudo ifconfig <网卡名> hw ether <新MAC地址>示例:sudo ifconfig eth0 hw ether 00:11:22:33:44:66 - 启用网卡:
sudo ifconfig <网卡名> up
三、永久修改MAC地址(重启后仍生效)
永久修改需通过系统网络配置文件实现,具体方法因Linux发行版和网络管理工具而异。
1. 使用 netplan(Ubuntu 18.04+ / Debian)
步骤:
- 编辑Netplan配置文件:
配置文件通常位于/etc/netplan/目录下(如01-netcfg.yaml或50-cloud-init.yaml)。sudo nano /etc/netplan/01-netcfg.yaml - 添加或修改MAC地址配置:
在对应网卡的配置中添加macaddress字段,示例如下:network: version: 2 ethernets: eth0: dhcp4: true macaddress: 00:11:22:33:44:66 # 指定MAC地址注意:若使用静态IP,需补充addresses、gateway4等字段。 - 应用配置:
sudo netplan apply
2. 使用 NetworkManager(桌面版常见)
方法一:通过配置文件(推荐)
- 编辑连接配置文件:
配置文件位于/etc/NetworkManager/system-connections/,文件名通常为<网卡名>.nmconnection(如eth0.nmconnection)。sudo nano /etc/NetworkManager/system-connections/eth0.nmconnection - 添加MAC地址字段:
在[ethernet]部分添加cloned-mac-address=<新MAC地址>,示例如下:[connection] id=eth0 type=ethernet interface-name=eth0
[ethernet]
cloned-mac-address=00:11:22:33:44:66 # 指定MAC地址
重启NetworkManager:
sudo systemctl restart NetworkManager
方法二:通过图形界面(桌面用户)
- 打开“设置” → “网络” → 选择对应有线/无线连接。
- 进入“高级”或“硬件”选项,找到“克隆MAC地址”字段,输入新地址后保存。
3. 使用传统网络脚本(CentOS/RHEL 7及以下)
步骤:
- 编辑网卡配置文件:
配置文件位于/etc/sysconfig/network-scripts/,文件名为ifcfg-<网卡名>(如ifcfg-eth0)。sudo nano /etc/sysconfig/network-scripts/ifcfg-eth0 - 添加MAC地址字段:
在文件中添加或修改HWADDR或MACADDR字段:DEVICE=eth0 BOOTPROTO=dhcp ONBOOT=yes HWADDR=00:11:22:33:44:66 # 指定MAC地址(推荐用HWADDR) # 或使用MACADDR(部分系统支持) # MACADDR=00:11:22:33:44:66 - 重启网络服务:
sudo systemctl restart network
4. 使用 systemd-networkd(部分轻量级发行版)
步骤:
- 编辑网络配置文件:
配置文件位于/etc/systemd/network/(如10-eth0.network)。sudo nano /etc/systemd/network/10-eth0.network - 添加MAC地址配置:
[Match] Name=eth0 [Link] MACAddress=00:11:22:33:44:66 # 指定MAC地址 - 重启服务:
sudo systemctl restart systemd-networkd
四、注意事项
- 权限要求:修改MAC地址需 root 权限(使用
sudo)。 - 合法性:避免使用保留MAC地址(如厂商保留段、广播地址),否则可能导致网络冲突。
- 虚拟化环境:在虚拟机(如VMware、KVM)中,可直接在虚拟网络设置中修改MAC地址。
- 网络服务依赖:修改后若网络异常,检查网卡是否正常启用(
ip link show确认状态为UP)。 - 临时与永久区分:临时修改仅当前生效,重启后恢复;永久修改需通过配置文件固化。
五、总结
| 需求 | 推荐方法 | 适用场景 |
|---|---|---|
| 查看MAC地址 | ip link show(首选) / ifconfig -a | 所有Linux系统 |
| 临时修改 | ip link set <网卡> address <MAC> | 测试、临时调试 |
| 永久修改 | 根据发行版配置文件(Netplan/NetworkManager/sysconfig) | 生产环境固定MAC地址 |
通过上述方法,您可以灵活管理Linux系统中的MAC地址,满足不同场景的需求。
© 版权声明
文中内容均来源于公开资料,受限于信息的时效性和复杂性,可能存在误差或遗漏。我们已尽力确保内容的准确性,但对于因信息变更或错误导致的任何后果,本站不承担任何责任。如需引用本文内容,请注明出处并尊重原作者的版权。
THE END

























暂无评论内容