临时修改的mac地址重启后自动还原,但开机脚本、配置文件或ethtool硬刷寄存器会导致无法自动恢复;需用ethtool -p查永久地址,再用ip link set重设,并清理rc.local、ifcfg-*、netplan及systemd中残留配置。

临时修改的 MAC 地址在重启后自动还原,但如果你用了开机脚本、配置文件或 ethtool 硬刷寄存器,就可能无法自动恢复——得手动干预。
确认当前 MAC 是否已被软覆盖
运行 ip link show dev eth0(把 eth0 换成你的实际网卡名),看 link/ether 后面的地址。再对比 ethtool -P eth0 输出的 Permanent address:
- 如果两者一致,说明没被改过,或已还原
- 如果
link/ether≠Permanent address,说明当前是软件层伪装,可安全还原 - 如果
ethtool -P报错或显示不支持 EEPROM 访问,大概率没硬刷,不用怕
用 ifconfig 或 ip 命令立即还原
只要没动硬件寄存器,用原始物理地址重设一次即可。先查永久地址:ethtool -P eth0,再执行:
ip link set dev eth0 down-
ip link set dev eth0 address xx:xx:xx:xx:xx:xx(填ethtool -P返回的 Permanent address) ip link set dev eth0 up
注意:别用 ifconfig eth0 hw ether ...,它在较新内核中已被弃用,且部分发行版(如 RHEL 8+/CentOS 8+)默认不带 ifconfig。
清理开机自启的 MAC 修改逻辑
永久生效的修改通常藏在这几个地方,漏掉一个都可能下次启动又变回去:
-
/etc/rc.d/rc.local:搜hw ether、macchanger、ip link set.*address -
/etc/sysconfig/network-scripts/ifcfg-*:检查是否有MACADDR=行(RHEL/CentOS 系有效),有就删掉或注释 -
/etc/netplan/*.yaml(Ubuntu 18.04+):搜macaddress:字段,删掉整行 - systemd service:运行
systemctl list-unit-files | grep -i mac,查是否有自定义服务
警惕 ethtool 硬刷导致不可逆修改
如果之前执行过 ethtool -E 写 EEPROM,且 ethtool -P 显示的 Permanent address 已改变,那物理地址真的被覆盖了。此时:
- 多数网卡不提供“恢复出厂 MAC”功能,只能靠厂商工具(如 Intel 的
eeupdate)重写 - 部分 Realtek/AX88179 芯片网卡可通过
ethtool -E手动把原值写回去,但需知道原始字节偏移和值 - 最稳妥的方式是换网卡——尤其当
ethtool -i eth0显示supports-eeprom-access: yes且你确实改过
真正麻烦的不是怎么改,而是改完忘了删脚本、没查 ethtool -P 就瞎操作。还原前务必先记下原始 Permanent address,它才是唯一可信的“出厂值”。











