RHEL 7 重启后网卡顺序变化及持久化配置指南

admin
本文针对RHEL 7系统中重启后网卡名称顺序变化导致配置失效的问题,提供了详细的解决方案,内容涵盖通过修改udev规则、配置ifcfg文件或使用nmcli命令来固定网卡名称的具体步骤,帮助用户实现网络配置的持久化,确保服务稳定运行。

在 RHEL 7(以及 CentOS 7)系统中,默认启用了基于硬件的网卡命名策略,这种策略在物理网络拓扑结构稳定的环境下非常有利于管理,但在服务器频繁插拔网线或更换网卡硬件后,会导致一个常见的“痛点”:重启后网卡名称发生变化

原本配置好的 ens33,重启后可能变成了 ens37,导致网络配置文件(ifcfg-ens33)找不到,IP 地址失效,SSH 连接中断。

本文将详细介绍导致该问题的原因,并提供两种最主流的解决方案。

RHEL 7 重启后网卡顺序变化及持久化配置指南

问题根源分析

RHEL 7 默认的网卡命名规则(net.ifnames)基于以下因素生成名称:

  • PCI 总线信息
  • 网卡在主板上的物理插槽位置
  • MAC 地址

当物理网卡的顺序发生变化(例如插拔了网线,或者网卡在交换机上的端口顺序变了),系统启动时识别到的网卡顺序就会改变,从而映射到不同的 ens... 名称上。

解决方案一:使用 udev 规则绑定 MAC 地址(推荐)

这是最稳健的方法,通过将网卡名称与网卡的 MAC 地址 进行永久绑定,无论网卡顺序如何变化,只要 MAC 地址不变,名称就不会变。

操作步骤:

  1. 查看当前网卡名称及 MAC 地址:

    ip addr

    假设当前 eth0 对应的 MAC 地址是 00:0c:29:xx:xx:xx

  2. 编辑 udev 规则文件: 创建或编辑 /etc/udev/rules.d/70-persistent-net.rules 文件:

    vi /etc/udev/rules.d/70-persistent-net.rules

    添加如下内容(将 MAC 地址替换为你实际的地址):

    SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:xx:xx:xx", NAME="eth0"
  3. 修改网卡配置文件名称:/etc/sysconfig/network-scripts/ifcfg-ens33 重命名为 ifcfg-eth0

    mv /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-eth0

    并修改文件中的 DEVICE 参数为 eth0

  4. 重启网络服务验证:

    systemctl restart network
    ip addr

    网卡应显示为 eth0

解决方案二:修改内核启动参数(回退到旧版命名)

如果你不希望使用 ens... 这种复杂的命名方式,而是想回到传统的 eth0eth1 命名规则,可以通过修改 GRUB 配置来实现。

操作步骤:

  1. 编辑 GRUB 配置文件:
    vi /etc/default/grub

    找到 GRUB_CMDLINE_LINUX 这一行,在引号内添加以下参数:

    GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet net.ifnames=0 biosdevname=0"

    *注意:保留原有的参数,

文章版权声明:除非注明,否则均为xmsdn原创文章,转载或复制请以超链接形式并注明出处。

取消
微信二维码
微信二维码
支付宝二维码