ubuntu 22.04修改永久修改 mac 地址

使用 rc-local.service

rc-local.service 是系统自带的一个开机自启服务,但是在 ubuntu 20.04 上,该服务默认没有开启。

在文件的最后面添加 [Install] 段的内容,

cat >> /lib/systemd/system/rc-local.service << EOF
#  SPDX-License-Identifier: LGPL-2.1-or-later
#
#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.

# This unit gets pulled automatically into multi-user.target by
# systemd-rc-local-generator if /etc/rc.local is executable.
[Unit]
Description=/etc/rc.local Compatibility
Documentation=man:systemd-rc-local-generator(8)
ConditionFileIsExecutable=/etc/rc.local
After=network.target

[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
RemainAfterExit=yes
GuessMainPID=no
[Install]
WantedBy=multi-user.target

创建 /etc/rc.local

Ubuntu 20.04 默认不存在 /etc/rc.local,需要自己创建,注意第一行必须是#!/bin/bash,否则启动rc-local服务报错。Failed at step EXEC spawning /etc/rc.d/init.d/nginx: Exec format error.

cat /etc/rc.local 
#!/bin/bash
/usr/sbin/ifconfig enp0s1 down
/usr/sbin/ifconfig enp0s1 hw ether b6:f5:2c:0d:3d:16
/usr/sbin/ifconfig enp0s1 up

修改 /etc/rc.local 权限

chmod 755 /etc/rc.local

安装ifconfig命令

apt-get install net-tools

设置rc-local为开机自启动

systemctl enable rc-local

启动rc-local服务

启动rc-local服务后,mac地址即可更改。并且以后reboot机器也不会失效。

systemctl start rc-local