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
相关推荐
wuminyu3 小时前
LockStack在虚拟线程Mount和Unmount拷贝过程剖析
java·linux·c语言·jvm·c++
深念Y3 小时前
rime-雾凇拼音-配置记录
linux·junit·软件·拼音·kde
HAHAXX83 小时前
电商RPA批量上架通用方案:一套流程如何同时跑通拼多多、抖店、淘宝和跨境平台
java·运维·rpa
零基础1233 小时前
LLM Agent 驱动的物模型构建:从设备手册到边缘接入的自动化实践
运维·人工智能·经验分享·python·自动化
一遍再一遍3 小时前
【LTE Attach流程】
网络
星夜夏空993 小时前
网络编程(5)—— Reactor实现(v3)
服务器·网络·php
枫叶丹44 小时前
从一次推理请求出发:模型、显存、网络与服务系统如何共同决定性能
网络·人工智能·chatgpt·开源·agent·codex
恒拓高科WorkPlus4 小时前
制造企业出现生产异常后,如何通过IM快速通知责任人?
网络·制造
程序猿老A4 小时前
从入门型到企业型:云服务器开放共享型到独享型规格升级
运维·服务器
殷色玫瑰4 小时前
C++ string类详解:常用接口、字符串操作与模拟实现
java·linux·c语言·开发语言·数据结构·c++