centos7/8修改网卡名称并持久化配置

本文最后更新于:October 16, 2021 pm

本文主要介绍将centos7/8中引入的新网卡命名方式修改为传统的ethx命名并将命名和mac地址进行持久化绑定的方法

默认情况下的网卡名称会根据网卡的型号和连接方式,如USB网卡、PCIe网卡等各种方式不同而显示出不同的名称,例如这里就显示为eno1:

1
2
3
4
[root@tiny-server network-scripts]# nmcli connection show
NAME UUID TYPE DEVICE
eno1 03043370-9378-4a22-9396-b8f7c83142d5 ethernet eno1
virbr0 821ce0c2-56cb-42ce-93c5-4933b9b56841 bridge virbr0

修改内核参数并重新生成grub引导文件,然后重新启动系统

1
2
3
4
5
6
7
8
9
10
#在内核启动参数中的rhgb前添加net.ifnames=0
sed -i 's/rhgb/net.ifnames=0 &/' /etc/default/grub

# 修改前
GRUB_CMDLINE_LINUX="crashkernel=auto resume=/dev/mapper/cl-swap rd.lvm.lv=cl/root rd.lvm.lv=cl/swap rhgb quiet"
# 修改后
GRUB_CMDLINE_LINUX="crashkernel=auto resume=/dev/mapper/cl-swap rd.lvm.lv=cl/root rd.lvm.lv=cl/swap net.ifnames=0 rhgb quiet"

# 重新生成引导文件,注意BIOS引导和EFI引导的启动文件目录会不一样
grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg

或者也可以直接使用grubby工具

1
grubby --update-kernel=ALL --args=net.ifnames=0

重启系统之后原来的网卡已经失效无法使用,此时无法正常连接网络,因此我们需要使用nmcli工具新建网卡

1
2
3
4
5
6
# 其中con-name为新建的网卡名称,而后面的ifname为已有的硬件网卡名称
# nmcli connection add type ethernet con-name eth0 ifname eth0
# 新建后查看如下
$ nmcli connection show
NAME UUID TYPE DEVICE
eth1 363bd12e-34aa-435d-83db-2e966c50854b ethernet eth1

修改为传统的ethx命名方式之后,对应的ethx和物理网卡并没有一一对应的强绑定关系,也就是说我们对eth1网络进行配置变更之后,可能机器上面新增了一张网卡,或者是原来的网卡的pcie插槽位置变更了,都可能会导致eth1网卡对应的物理网卡发生变化,解决这个问题的最好方法就是将名字和mac地址进行绑定。

1
2
3
4
5
# 修改下面的这个配置文件,如果没有就新建一个,然后写入对应的mac地址和网卡名字,最后重启机器即可
[root@tiny-dpvs ~]# cat /etc/udev/rules.d/70-persistent-net.rules
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="11:22:33:44:55:66", NAME="eth0"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="11:22:33:44:55:77", NAME="eth1"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="11:22:33:44:55:88", NAME="eth2"