第一步获取网卡的 PCI 地址你需要先找到网卡对应的物理插槽编号PCI 地址。打开终端输入以下命令查看网卡与 PCI 的对应关系udevadm info-e-p/sys/class/net/$(iplink|grep-E^[0-9]:|awk-F: {print $2}|grep-vlo)|grep-EP: |KERNELS或者使用更直观的命令ethtool-i当前网卡名|grepbus-info(如果系统没有 ethtool可以使用lspci | grep -i ethernet查看列表然后配合udevadm info /sys/class/net/网卡名查看详细信息)你需要记录下来的信息示例假设你要改名的两块网卡对应的 PCI 地址分别是网卡 A0000:02:01.0网卡 B0000:02:02.0第二步修改 udev 规则文件现在我们将规则文件中的 MAC 地址匹配替换为 PCI 地址匹配。编辑规则文件sudovim/etc/udev/rules.d/70-persistent-net.rules替换内容 删除原有的 MAC 规则写入基于 PCI 的规则。语法格式KERNELSPCI地址, NAME新名称修改后的内容示例# 将 PCI 地址为 0000:02:01.0 的网卡强制命名为 ens6KERNELS0000:02:01.0,NAMEens6# 将 PCI 地址为 0000:02:02.0 的网卡强制命名为 ens7KERNELS0000:02:02.0,NAMEens7(注意请将0000:02:01.0等地址替换为你第一步查到的真实地址)保存并退出:wq。第三步禁用系统默认命名关键麒麟 V10 默认开启了“可预测网络接口命名”即自动生成enp...或ens...。如果不关闭它系统可能会在 udev 规则生效前就占用了名称导致冲突。编辑 GRUB 配置sudovim/etc/default/grub找到GRUB_CMDLINE_LINUX这一行在引号内添加net.ifnames0 biosdevname0。net.ifnames0禁用 systemd 的可预测命名。biosdevname0禁用 BIOS 提供的命名。修改后示例GRUB_CMDLINE_LINUXrhgb quiet net.ifnames0 biosdevname0更新 GRUB 配置sudogrub2-mkconfig-o/boot/grub2/grub.cfg第四步更新并重启更新 initramfs确保规则在启动早期生效sudoupdate-initramfs-u重启系统sudoreboot验证重启后输入ip addr你应该能看到网卡名称已经变成了你指定的ens6和ens7且这种绑定是基于物理插槽的与 MAC 地址无关。