1.7. 使用 udev 规则配置用户定义的网络接口名称
您可以使用 udev
规则来实现反映您机构要求的自定义网络接口名称。
流程
识别您要重命名的网络接口:
ip link show
# ip link show ... enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 00:00:5e:00:53:1a brd ff:ff:ff:ff:ff:ff ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 记录接口的 MAC 地址。
显示接口的设备类型 ID:
cat /sys/class/net/enp1s0/type 1
# cat /sys/class/net/enp1s0/type 1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建
/etc/udev/rules.d/70-persistent-net.rules
文件,并为您要重命名的每个接口添加一个规则:SUBSYSTEM=="net",ACTION=="add",ATTR{address}=="<MAC_address>",ATTR{type}=="<device_type_id>",NAME="<new_interface_name>"
SUBSYSTEM=="net",ACTION=="add",ATTR{address}=="<MAC_address>",ATTR{type}=="<device_type_id>",NAME="<new_interface_name>"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要如果您在引导过程中需要一致的设备名称,则只使用
70-persistent-net.rules
作为文件名。如果您重新生成 RAM 磁盘镜像,则dracut
工具会在initrd
镜像中添加具有此名称的文件。例如,使用以下规则将 MAC 地址为
00:00:5e:00:53:1a
的接口重命名为provider0
:SUBSYSTEM=="net",ACTION=="add",ATTR{address}=="00:00:5e:00:53:1a",ATTR{type}=="1",NAME="provider0"
SUBSYSTEM=="net",ACTION=="add",ATTR{address}=="00:00:5e:00:53:1a",ATTR{type}=="1",NAME="provider0"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选:重新生成
initrd
RAM 磁盘镜像:dracut -f
# dracut -f
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 只有在 RAM 磁盘中需要网络功能时才需要这一步。例如,如果 root 文件系统存储在网络设备上,如 iSCSI,则是这种情况。
确定哪个 NetworkManager 连接配置文件使用您要重命名的接口:
nmcli -f device,name connection show
# nmcli -f device,name connection show DEVICE NAME enp1s0 example_profile ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在连接配置文件中取消
connection.interface-name
属性的设置:nmcli connection modify example_profile connection.interface-name ""
# nmcli connection modify example_profile connection.interface-name ""
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 临时配置连接配置文件,以匹配新的和以前的接口名称:
nmcli connection modify example_profile match.interface-name "provider0 enp1s0"
# nmcli connection modify example_profile match.interface-name "provider0 enp1s0"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重启系统:
reboot
# reboot
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证具有您在链接文件中指定的 MAC 地址的设备已重命名为
provider0
:ip link show
# ip link show provider0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000 link/ether 00:00:5e:00:53:1a brd ff:ff:ff:ff:ff:ff ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将连接配置文件配置为仅匹配新接口名称:
nmcli connection modify example_profile match.interface-name "provider0"
# nmcli connection modify example_profile match.interface-name "provider0"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 现在,您已从连接配置文件中删除了旧接口名称。
重新激活连接配置文件:
nmcli connection up example_profile
# nmcli connection up example_profile
Copy to Clipboard Copied! Toggle word wrap Toggle overflow