centos7 网卡接口命名规则 udev 详解
在 CentOS 7 中,网络接口的命名由 udev 设备管理器管理。以下是详解 udev 规则如何控制网卡命名的流程:
核心机制
udev 规则目录
- 规则文件:
/usr/lib/udev/rules.d/60-net.rules(系统默认) - 自定义文件:
/etc/udev/rules.d/70-persistent-net.rules(优先级更高)
- 规则文件:
命名过程
- 系统启动时,udev 根据规则文件匹配网卡的硬件属性(如 MAC 地址、PCI 位置),赋予设备名称(如
eth0)。
- 系统启动时,udev 根据规则文件匹配网卡的硬件属性(如 MAC 地址、PCI 位置),赋予设备名称(如
自定义网卡命名步骤
1. 创建持久化规则文件
vim /etc/udev/rules.d/70-persistent-net.rules
2. 编写规则格式
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:xx:xx:xx", NAME="eth0"
- 关键字段
ATTR{address}:网卡的 MAC 地址(通过ip link查看)NAME:自定义名称(如eth0)
3. 示例规则
# 规则1:将 MAC 为 00:0c:29:aa:bb:cc 的网卡命名为 eth0
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="00:0c:29:aa:bb:cc", NAME="eth0"
# 规则2:将另一张网卡命名为 eth1
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="00:0c:29:dd:ee:ff", NAME="eth1"
重要注意事项
禁用 Predictable Network Interface Names
若需完全使用传统命名(eth0而非ens192),修改 GRUB 配置:vim /etc/default/grub
添加参数:
GRUB_CMDLINE_LINUX="... net.ifnames=0 biosdevname=0"
更新 GRUB:
grub2-mkconfig -o /boot/grub2/grub.cfg
重启生效规则
reboot
避免多规则冲突
确保/etc/udev/rules.d/中无其他规则覆盖自定义命名。
常见问题排查
规则未生效?
- 检查 MAC 地址是否匹配(字母小写)
- 确认规则文件权限:
644 - 重启
udev服务:udevadm control --reload
udevadm trigger
网卡名称未变
- 检查是否启用 Predictable Names:
cat /sys/class/net/ens192/uevent | grep ID_NET_NAME_PATH
- 确保 GRUB 参数
net.ifnames=0已生效。
- 检查是否启用 Predictable Names:
恢复默认规则
删除自定义文件后重启:
rm -f /etc/udev/rules.d/70-persistent-net.rules
reboot
总结
核心控制文件:
/etc/udev/rules.d/70-persistent-net.rules关键字段:
ATTR{address}(MAC 地址)、NAME(自定义名称)禁用新命名:GRUB 参数
net.ifnames=0 biosdevname=0
通过正确配置 udev 规则,可灵活管理 CentOS 7 的网卡命名,适配传统或自定义需求。
centos7 网卡接口命名规则 udev 详解的更多相关文章
- CentOS7网卡的命名规则
一.前两个字符的含义 en 以太网 Ethernet wl 无线局域网 WLAN ww 无线广域网 WWAN 二.第三个字符的含义 o on-board device index number s h ...
- HanLP分词命名实体提取详解
HanLP分词命名实体提取详解 分享一篇大神的关于hanlp分词命名实体提取的经验文章,文章中分享的内容略有一段时间(使用的hanlp版本比较老),最新一版的hanlp已经出来了,也可以去看看新版 ...
- CentOS7下Firewall防火墙配置用法详解
官方文档地址: https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Security_Guide ...
- 【python3+request】python3+requests接口自动化测试框架实例详解教程
转自:https://my.oschina.net/u/3041656/blog/820023 [python3+request]python3+requests接口自动化测试框架实例详解教程 前段时 ...
- (转)Centos7上部署openstack ocata配置详解
原文:http://www.cnblogs.com/yaohong/p/7601470.html 随笔-124 文章-2 评论-82 Centos7上部署openstack ocata配置详解 ...
- python+requests接口自动化测试框架实例详解
python+requests接口自动化测试框架实例详解 转自https://my.oschina.net/u/3041656/blog/820023 摘要: python + requests实 ...
- Jmeter接口之响应断言详解
响应断言 : 对服务器的响应进行断言校验 Apply to 应用范围: main sample and sub sample, main sample only , sub-sample only , ...
- 自学Zabbix9.2 zabbix网络发现规则配置详解+实战
点击返回:自学Zabbix之路 点击返回:自学Zabbix4.0之路 点击返回:自学zabbix集锦 自学Zabbix9.2 zabbix网络发现规则配置详解+实战 1. 创建网络发现规则 Conf ...
- OpenCV学习C++接口 Mat像素遍历详解
OpenCV学习C++接口 Mat像素遍历详解
- 微信JS接口汇总及使用详解
这篇文章主要介绍了微信JS接口汇总及使用详解,十分的全面.详尽,包含分享到朋友圈,分享给朋友,分享到QQ,拍照或从手机相册中选图,识别音频并返回识别结果,使用微信内置地图查看位置等接口,有需要的小伙伴 ...
随机推荐
- SpringAI更新:废弃tools方法、正式支持DeepSeek!
AI 技术发展很快,同样 AI 配套的相关技术发展也很快.这不今天刚打开 Spring AI 的官网就发现它又又又又更新了,而这次更新距离上次更新 M7 版本才不过半个月的时间,那这次 Spring ...
- .NET外挂系列:2. 了解强大的 harmony 注解特性
一:背景 1. 讲故事 上一篇我们简单的聊了下harmony外挂的基本玩法,让大家宏观上感受到了外挂在 .NET高级调试 领域的威力,这一篇我们从 注解特性 这个角度继续展开. 二:harmony 注 ...
- jdk11.0.2下载安装-环境配置
下载 JDK下载地址https://www.oracle.com/technetwork/java/javase/downloads/index.html 然后同意,选择自己适合的版本 PS: 1.z ...
- 聊一聊 .NET Dump 中的 Linux信号机制
一:背景 1. 讲故事 当 .NET程序 在Linux上崩溃时,我们可以配置一些参考拿到对应程序的core文件,拿到core文件后用windbg打开,往往会看到这样的一句信息 Signal SIGAB ...
- 计算机图形学——Games101深度解析_第一章
写在前面 关于Games101深度解析参考了很多佬的文章,并且加上了自己的理解.主要感觉games101课程里面还有很多由于时间原因都没讲的很详细,略过了很多,所以我对于课程中困难的知识点进行了更多的 ...
- 转-Linux iostat命令快速入门
Linux系统出现了性能问题,一般我们可以通过 top.iostat.free.vmstat和ifstat等命令来初步定位问题.其中iostat可以给我们提供丰富的IO性能监控数据. 基本使用 ios ...
- 【洛谷有题】NOI 笔试题库(非初赛)订正
传送门 第一次做,那个成绩可是一个惨不忍睹-- 我还是想说--我虽然要用Linux,但是不一定要用到指令啊(吧)--编译啥的我可以用Vim|guide啊-- Linux 中为文件改名使用的命令是: m ...
- elasticsearch分词
阅读说明: 1.如果有排版格式问题,请移步https://www.yuque.com/mrhuang-ire4d/oufb8x/gmzl30v8ofqg3ua3?singleDoc# <elas ...
- 玩转集群配置中心,一文带你了解 Taier 控制台
原文地址:玩转集群配置中心,一文带你了解Taier控制台丨DTMO 03期直播回顾(内含视频+课件) 课程视频回顾:Taier基础教程(二):Taier1.1新功能详解&控制台介绍_哔哩哔 ...
- DRF之Response源码分析
DRF之Response源码分析 [一]响应类的对象Response源码 [1]路由 from django.contrib import admin from django.urls import ...