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

XMSDN
本文针对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"

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

💡 温馨提示

📌 阅读须知 Rules & Notice

本站坚持免费分享,致力于为大家提供实用、优质的内容与资源。

🔗欢迎大家收藏与转发,转载请保留本站链接,请勿私自去除版权信息。

📚所有外部整理资源,仅作学习交流使用,请勿用于各类商业用途。

🤝网络相聚本是缘分,希望大家文明交流,理性浏览。

🛠️若发现内容有误或涉及侵权,我们将第一时间处理整改。

💖 感谢每一位朋友的陪伴与支持

✨ 用心分享,一路同行 ✨

目录[+]