linux系统支持修改网络设备的mac地址,根据修改需求的不同,可以选择临时修改或者永久修改的方式,不同的网络管理工具对应的操作命令也存在区别。

临时修改mac地址的方法
临时修改的mac地址在系统重启或者网络接口重启后会恢复为原来的地址,适合临时测试场景使用,常用的工具有ifconfig和ip link。
使用ifconfig修改
首先需要关闭要修改的网络接口,然后执行修改命令,最后重新启用接口,具体操作如下:
# 查看当前网络接口列表,找到要修改的接口名,比如eth0 ifconfig -a # 关闭eth0接口 sudo ifconfig eth0 down # 修改eth0的mac地址为00:11:22:33:44:55 sudo ifconfig eth0 hw ether 00:11:22:33:44:55 # 重新启用eth0接口 sudo ifconfig eth0 up # 验证修改结果 ifconfig eth0 | grep ether
使用ip link修改
ip link是较新的网络管理命令,很多新版本的linux发行版默认推荐使用,操作逻辑和ifconfig类似:
# 查看网络接口列表 ip link show # 关闭eth0接口 sudo ip link set eth0 down # 修改eth0的mac地址 sudo ip link set eth0 address 00:11:22:33:44:55 # 启用eth0接口 sudo ip link set eth0 up # 验证修改结果 ip link show eth0 | grep link/ether
永久修改mac地址的方法
永久修改的mac地址在系统重启后依然生效,不同发行版的配置文件路径存在差异,下面分别介绍常见发行版的操作方式。
Ubuntu/Debian系统(使用NetworkManager)
如果是桌面版系统,通常使用NetworkManager管理网络,可以通过配置文件永久修改:
# 编辑NetworkManager的配置文件,文件名根据实际接口调整 sudo vim /etc/NetworkManager/system-connections/eth0.nmconnection # 在[ethernet] section下添加如下内容,没有该section就手动添加 [ethernet] cloned-mac-address=00:11:22:33:44:55 # 重启NetworkManager服务使配置生效 sudo systemctl restart NetworkManager
CentOS/RHEL系统(使用network服务)
这类系统通常使用network服务管理网络,修改对应接口的配置文件即可:
# 编辑eth0的接口配置文件 sudo vim /etc/sysconfig/network-scripts/ifcfg-eth0 # 在文件末尾添加如下内容,如果已有MACADDR字段就修改对应值 MACADDR=00:11:22:33:44:55 # 重启网络服务 sudo systemctl restart network
通用systemd-networkd方式
使用systemd-networkd管理网络的系统,可以创建对应的网络配置文件:
# 创建eth0的network配置文件 sudo vim /etc/systemd/network/10-eth0.link # 写入如下内容 [Match] Name=eth0 [Link] MACAddress=00:11:22:33:44:55 # 重启systemd-networkd服务 sudo systemctl restart systemd-networkd
修改mac地址的注意事项
- 修改的mac地址需要符合规范,前6位通常是厂商标识,建议选择合法的mac地址格式,避免和其他设备冲突
- 部分无线网卡可能不支持修改mac地址,或者需要开启特定模式才能修改
- 修改mac地址可能会导致当前网络连接中断,建议在本地操作或者有备用网络的情况下进行
- 部分网络环境会对mac地址进行校验,修改后的mac地址如果不在允许列表中可能无法正常联网
如果需要恢复原来的mac地址,只需要删除对应的永久配置,或者将mac地址修改为原来的数值,重启网络接口即可。
linuxmac_addressifconfigip_linknetwork_manager修改时间:2026-07-23 23:57:22