AlmaLinux9-网络管理篇-更改网络接口名称

目录

[1. 为什么需要一致的网络接口命名?](#1. 为什么需要一致的网络接口命名?)

传统命名的问题

解决方案

[2. UDEV命名处理流程详解](#2. UDEV命名处理流程详解)

四个关键规则文件(按顺序执行)

[1. /usr/lib/udev/rules.d/60-net.rules](#1. /usr/lib/udev/rules.d/60-net.rules)

[2. /usr/lib/udev/rules.d/71-biosdevname.rules(Dell专用)](#2. /usr/lib/udev/rules.d/71-biosdevname.rules(Dell专用))

[3. /usr/lib/udev/rules.d/75-net-description.rules](#3. /usr/lib/udev/rules.d/75-net-description.rules)

[4. /usr/lib/udev/rules.d/80-net-setup-link.rules](#4. /usr/lib/udev/rules.d/80-net-setup-link.rules)

[3. 默认命名策略解析](#3. 默认命名策略解析)

各策略详解

[4. 实战案例:切换内核参数统一命名方案](#4. 实战案例:切换内核参数统一命名方案)

场景描述

重要说明:

适用场景:

操作步骤

步骤1:检查当前接口状态

步骤2:查看当前命名方案

步骤3:修改内核参数

步骤4:重启系统

步骤5:验证命名方案变更

[5. 自定义网络接口名称的三种方法](#5. 自定义网络接口名称的三种方法)

[方法一:使用 UDEV 规则实现网卡重命名(推荐用于复杂场景)](#方法一:使用 UDEV 规则实现网卡重命名(推荐用于复杂场景))

[1. 查看当前网卡信息](#1. 查看当前网卡信息)

[2. 检查 NetworkManager 连接状态](#2. 检查 NetworkManager 连接状态)

[3. 为 ens12 配置静态 IP 并激活](#3. 为 ens12 配置静态 IP 并激活)

[4. 创建 UDEV 规则实现重命名](#4. 创建 UDEV 规则实现重命名)

[5. 更新 NetworkManager 配置](#5. 更新 NetworkManager 配置)

[6. 重启系统或重载 UDEV 规则](#6. 重启系统或重载 UDEV 规则)

[方法二:使用systemd link文件(推荐用于简单重命名)](#方法二:使用systemd link文件(推荐用于简单重命名))

[1. 创建systemd network目录](#1. 创建systemd network目录)

[2. 创建link文件](#2. 创建link文件)

[3. 更新 NetworkManager 配置](#3. 更新 NetworkManager 配置)

[4. 重启服务器,查看网卡名称是否更改](#4. 重启服务器,查看网卡名称是否更改)

方法三:分配替代名称(不改变主名称)

注意事项

[1. 确认网络接口信息](#1. 确认网络接口信息)

[2. 创建 Systemd Network 目录(如不存在)](#2. 创建 Systemd Network 目录(如不存在))

[3. 创建 Link 配置文件](#3. 创建 Link 配置文件)

[4. 重新生成 initrd RAM 磁盘镜像(可选)](#4. 重新生成 initrd RAM 磁盘镜像(可选))

[5. 重启系统使配置生效](#5. 重启系统使配置生效)

[6. 验证配置结果](#6. 验证配置结果)


1. 为什么需要一致的网络接口命名?

传统命名的问题

  • 随机性:传统的eth0、eth1命名依赖内核发现设备的顺序,可能导致重启后接口名称变化
  • 管理困难:在多网卡服务器中,无法从名称直观识别物理接口位置

解决方案

通过udev设备管理器实现可预测的接口命名,名称基于物理属性生成:

  • 主板内置网卡 → eno1
  • PCIe插槽网卡 → ens1
  • 物理位置路径 → enp1s0
  • MAC地址 → enx525400d5e0fb

2. UDEV命名处理流程详解

四个关键规则文件(按顺序执行)

1. /usr/lib/udev/rules.d/60-net.rules
  • 条件:仅当安装initscripts-rename-device包时生效
  • 功能 :根据/etc/sysconfig/network-scripts/ifcfg-*中的HWADDR匹配MAC地址
  • 注意:如果使用NetworkManager的keyfile格式,此步被跳过
2. /usr/lib/udev/rules.d/71-biosdevname.rules(Dell专用)
  • 条件:仅Dell系统且安装biosdevname软件包
  • 功能:应用Dell特有的命名策略
3. /usr/lib/udev/rules.d/75-net-description.rules
  • 功能:检查网络接口并设置udev内部属性变量
  • 作用:为下一步命名提供属性信息
4. /usr/lib/udev/rules.d/80-net-setup-link.rules
  • 核心:调用net_setup_link内置功能
  • 依据/usr/lib/systemd/network/99-default.link中的NamePolicy策略

3. 默认命名策略解析

NamePolicy的默认执行顺序:

复制代码
keep → kernel → database → onboard → slot → path

各策略详解

策略 描述 示例名称
keep 保留已有名称(用户空间分配) -
kernel 使用内核提供的可预测名称 lo
database 基于udev硬件数据库映射 idrac
onboard 板载设备固件索引号 eno1
slot PCIe热插拔插槽索引号 ens1
path 硬件连接器物理位置 enp1s0
mac MAC地址(默认未启用) enx525400d5e0fb

4. 实战案例:切换内核参数统一命名方案

场景描述

在多台不同小版本AlmaLinux服务器上,为避免因版本差异导致的网卡命名不一致,我们将系统网卡命名方案统一切换到rhel-9.4标准。

重要说明:

切换命名方案的主要作用:影响新添加的网络接口命名,为系统提供更一致的设备识别方式,通常不会改变现有网卡的名称

适用场景:

  • 准备添加新网卡时希望使用统一的命名规则

  • 在不同版本系统间保持命名一致性

  • 解决因版本差异导致的命名混乱问题

注意:本操作主要是为未来添加硬件做准备,现有网卡名称可能保持不变。

操作步骤

步骤1:检查当前接口状态
复制代码
# 查看当前网络接口
ip link show
## 示例输出:
# 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
#     link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
# 2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
#     link/ether 00:0c:29:51:7b:0f brd ff:ff:ff:ff:ff:ff
步骤2:查看当前命名方案
复制代码
# 检查当前使用的命名方案
udevadm info --query=property --property=ID_NET_NAMING_SCHEME /sys/class/net/ens160 
# 输出:ID_NET_NAMING_SCHEME=rhel-9.0
步骤3:修改内核参数
复制代码
# 添加命名方案参数到所有内核
grubby --update-kernel=ALL --args="net.naming-scheme=rhel-9.4"
步骤4:重启系统
复制代码
reboot
步骤5:验证命名方案变更
复制代码
# 检查命名方案是否已更新
udevadm info --query=property --property=ID_NET_NAMING_SCHEME /sys/class/net/ens160

# 输出:ID_NET_NAMING_SCHEME=rhel-9.4

**注意:** 此时ens160名称通常保持不变,但系统已使用新的命名方案。

5. 自定义网络接口名称的三种方法

复制代码
## 重要注意事项

### 操作前备份
```bash
# 备份网络配置
cp -r /etc/NetworkManager/system-connections/ /root/nm-backup/
cp /etc/udev/rules.d/70-* /root/backup/ 2>/dev/null || true

风险提示

  • 远程操作风险:重命名网卡可能导致SSH连接中断,建议在本地控制台操作
  • 测试环境验证:在生产环境实施前,请在测试环境充分验证
  • 回滚方案:提前准备好应急回滚方案

故障排查

如果配置不生效,按以下步骤排查:

  1. 检查文件权限:ls -l /etc/systemd/network/70-*.link
  2. 查看系统日志:journalctl -u systemd-udevd -f
  3. 验证语法:systemd-analyze cat-config systemd/network/70-wan0.link

方法一:使用 UDEV 规则实现网卡重命名(推荐用于复杂场景)

本次操作基于新增的网卡 ens224。在添加新网卡后,需要先完成网络连接配置,再进行重命名操作。


1. 查看当前网卡信息

首先确认系统中已识别的网络设备:

复制代码
[root@cluster-node-1 ~]# ip link show 
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:51:7b:0f brd ff:ff:ff:ff:ff:ff
    altname enp3s0
3: ens224: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:51:7b:19 brd ff:ff:ff:ff:ff:ff

2. 检查 NetworkManager 连接状态

查看现有连接配置,确认新网卡 ens224 是否激活:

复制代码
[root@cluster-node-1 ~]# nmcli connection show
NAME    UUID                                  TYPE      DEVICE 
ens160  c02e537d-66f1-325a-912f-524b09b42b38  ethernet  ens160 
lo      e644441e-53db-4459-9958-b418c87916e0  loopback  lo     

[root@cluster-node-1 ~]# nmcli device status
DEVICE  TYPE      STATE                   CONNECTION 
ens160  ethernet  connected               ens160     
lo      loopback  connected (externally)  lo         
ens224  ethernet  disconnected            --         

3. 为 ens12 配置静态 IP 并激活

为新增网卡创建静态 IP 连接配置:

复制代码
[root@localhost ~]# nmcli connection add type ethernet \
    ifname ens224 \
    con-name ens224 \
    ipv4.method manual \
    ipv4.addresses 192.168.139.66/24 \
    ipv4.gateway 192.168.139.2 \
    ipv4.dns "8.8.8.8"

# 激活连接
[root@localhost ~]# nmcli connection up ens224

#查看网卡是否配置成功
[root@cluster-node-1 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:51:7b:0f brd ff:ff:ff:ff:ff:ff
    altname enp3s0
    inet 192.168.139.111/24 brd 192.168.139.255 scope global noprefixroute ens160
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe51:7b0f/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
3: ens224: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:51:7b:19 brd ff:ff:ff:ff:ff:ff
    altname enp19s0
    inet 192.168.139.66/24 brd 192.168.139.255 scope global noprefixroute ens224
       valid_lft forever preferred_lft forever
    inet6 fe80::33d9:8c63:ae6:7278/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

[root@cluster-node-1 ~]# nmcli device status
DEVICE  TYPE      STATE                   CONNECTION 
ens160  ethernet  connected               ens160     
ens224  ethernet  connected               ens224     
lo      loopback  connected (externally)  lo   

4. 创建 UDEV 规则实现重命名

通过 MAC 地址将 ens12 永久重命名为 wan0

复制代码
# 创建 UDEV 规则文件
cat > /etc/udev/rules.d/70-persistent-net.rules << EOF
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="00:0c:29:51:7b:19", ATTR{type}=="1", NAME="wan0"
EOF

注意

  • ATTR{address} 需替换为 ens12 的实际 MAC 地址(本例中为 00:0c:29:51:7b:19)。
  • 可通过 cat /sys/class/net/ens12/type 确认设备类型(通常为 1,表示以太网设备)。

5. 更新 NetworkManager 配置

为避免命名冲突,需调整 NetworkManager 的接口匹配规则:bash复制代码

复制代码
# 清空原有接口绑定,改为通过 MAC 或新名称匹配
nmcli connection modify ens224 connection.interface-name ""
nmcli connection modify ens224 match.interface-name "wan0 ens224"

6. 重启系统或重载 UDEV 规则

重启系统使规则生效,或执行以下命令立即触发:

复制代码
udevadm control --reload-rules
udevadm trigger --type=devices --action=add

方法二:使用systemd link文件(推荐用于简单重命名)

和方法一相同在添加新网卡后,需要先完成网络连接配置,再进行重命名操作。

1. 创建systemd network目录
复制代码
mkdir -p /etc/systemd/network/
2. 创建link文件
复制代码
cat > /etc/systemd/network/70-wan0.link << EOF
[Match]
MACAddress=00:0c:29:51:7b:19

[Link]
Name=wan0
EOF
3. 更新 NetworkManager 配置
复制代码
# 清空原有接口绑定,改为通过 MAC 或新名称匹配
nmcli connection modify ens224 connection.interface-name ""
nmcli connection modify ens224 match.interface-name "wan0 ens224"
4. 重启服务器,查看网卡名称是否更改
复制代码
[root@cluster-node-1 ~]# reboot 

[root@cluster-node-1 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:51:7b:0f brd ff:ff:ff:ff:ff:ff
    altname enp3s0
    inet 192.168.139.111/24 brd 192.168.139.255 scope global noprefixroute ens160
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe51:7b0f/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
3: wan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:51:7b:19 brd ff:ff:ff:ff:ff:ff
    altname enp19s0
    inet 192.168.139.66/32 scope global noprefixroute wan0
       valid_lft forever preferred_lft forever
    inet6 fe80::ff92:b8bf:1424:5591/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

方法三:分配替代名称(不改变主名称)

注意事项

  1. 命名限制

    • 替代名称必须使用 ASCII 字符
    • 名称长度必须小于 128 个字符
  2. 文件命名规范

    • Link 文件应以数字前缀开头(如 70-)
    • 文件名应有描述性(如 altname.link)
    • 数字越小,优先级越高
  3. 网络管理兼容性

    • 此方法与 NetworkManager 兼容
    • 替代名称可以像普通接口名称一样在命令中使用

1. 确认网络接口信息

复制代码
# 查看当前网络接口状态和MAC地址
ip link show

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:51:7b:0f brd ff:ff:ff:ff:ff:ff
    altname enp3s0
3: ens224: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:51:7b:19 brd ff:ff:ff:ff:ff:ff
    altname enp19s0

2. 创建 Systemd Network 目录(如不存在)

复制代码
# 确保目录存在
mkdir -p /etc/systemd/network/
复制代码
# 为 ens224 接口创建替代名称配置
cat > /etc/systemd/network/70-altname.link << EOF
[Match]
MACAddress=00:0c:29:51:7b:19

[Link]
NamePolicy=keep kernel database onboard slot path
AlternativeNamesPolicy=database onboard slot path
MACAddressPolicy=none
AlternativeName=provider
AlternativeName=wan-backup
EOF

配置文件说明:

  • [Match] 部分:通过 MAC 地址匹配目标网络接口
  • [Link] 部分:
    • NamePolicy:保持原有命名策略
    • AlternativeNamesPolicy:设置替代名称策略
    • AlternativeName:可以指定多个替代名称(本例中设置了两个:provider 和 wan-backup)

4. 重新生成 initrd RAM 磁盘镜像(可选)

复制代码
# 如果系统需要从网络设备启动(如 iSCSI),则需要此步骤
dracut -f

注意:对于大多数情况,如果 root 文件系统不在网络设备上,可以跳过此步骤。

5. 重启系统使配置生效

复制代码
# 重启系统
reboot

6. 验证配置结果

复制代码
# 重启后检查接口信息
ip link show

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:51:7b:0f brd ff:ff:ff:ff:ff:ff
    altname enp3s0
3: ens224: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:51:7b:19 brd ff:ff:ff:ff:ff:ff
    altname enp19s0
    altname provider
    altname wan-backup


# 使用替代名称查看接口详情
ip address show provider
ip address show wan-backup

# 或者查看特定接口的详细信息
ip link show dev ens224

预期结果:

重启后,ens224 接口应该显示有替代名称:

复制代码
3: ens224: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:51:7b:19 brd ff:ff:ff:ff:ff:ff
    altname enp19s0
    altname provider
    altname wan-backup
相关推荐
tianyuanwo8 小时前
Ansible构建节点管理:Koji与Mock构建节点的自动化运维实践
运维·自动化·ansible
CQ_YM8 小时前
Linux标准IO
linux·系统编程·标准io
zl_dfq8 小时前
Linux 之 【简易版的命令行解释器】(getcwd、strtok)
linux
怀旧,8 小时前
【Linux系统编程】10. 进程控制(下)
linux·运维·服务器
Arva .8 小时前
为什么需要四次挥手
网络·tcp/ip
猎板PCB黄浩8 小时前
多层电路板技术深度解析:高密度集成时代的核心支撑
网络·人工智能·算法
Evan芙8 小时前
DNS域名三级结构,DNS服务工作原理,涉及递归和迭代查询原理总结
linux·运维·服务器
专业开发者8 小时前
Bluetooth® Mesh网络入门介绍
网络·物联网
老蒋新思维8 小时前
创客匠人万人峰会解码:AI+IP 能力裂变,知识变现告别 “单点依赖” 时代
大数据·网络·人工智能·tcp/ip·创始人ip·创客匠人·知识变现