centos7修改网卡名

本文介绍了如何在 CentOS7 中修改网卡名称,由于 CentOS7 引入了一致性网络设备接口命名,传统的修改方法不再适用。通过禁用 biosdevname 程序,并在 GRUB_CMDLINE_LINUX 添加 net.ifnames=0 biosdevname=0,然后更新 GRUB 配置和内核参数,最后在 /etc/udev/rules.d/70-persistent-net.rules 文件中设置自定义网卡名,可以成功修改网卡名。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前写过一篇centos6.x修改网卡名的文章

centos6.x修改网卡名称em1、2...为eth0、1...

最近由于系统升级,采用了centos7,也需要修改网卡名,本以为跟6.x一样的方式,结果失败了

原来在RHEL6中引入了一种一致性网络设备接口命名的方法(Consistent Network Device Naming)

传统的,linux中的网络接口命名是按照eth[0123...],但是这些名字不能实际的表示出网卡的特征

一致性网络设备命名法根据网卡的物理位置,是否是集成的还是在PCI插槽中来命名,通过这名称,网络管理员

能够很清楚的知道网卡的物理位置

这种方法是依靠biosdevname程序来实现的,它按照一定的规则改变原来的eth[012..]网卡名

网卡设备 旧名称 新名称
集成网卡 eth[012...] em[123...]
PCI网卡 eth[012...] p[插槽数]p[网卡号]
虚拟网卡 eth[012...] p[插槽数]p[网卡号_虚拟接口]

第一种em1

第二种p4p1

第三种p4p4_1

当然管理员也可以

<think>我们正在处理用户关于在CentOS 8中修改网络接口名称的问题。根据引用内容,我们可以总结出以下步骤: 注意:在CentOS 8中,网络接口命规则可能受到biosdevname和net.ifnames两个参数的影响。我们需要修改grub文件并重新生成配置,同时修改网络配置文件。 步骤1:修改grub配置文件,设置内核参数 步骤2:重新生成grub配置 步骤3:修改网络配置文件(重命文件并修改其中的设备名称) 步骤4:重新启动系统 但是,在CentOS 8中,我们还可以使用`nmcli`命令来管理网络,但修改接口名称需要系统级别的配置。 具体步骤如下: 1. 确定当前网卡名称和MAC地址 使用`ip link`或`ifconfig`命令查看当前网卡名称和MAC地址。 2. 修改grub配置文件,添加内核参数 编辑`/etc/default/grub`文件,在`GRUB_CMDLINE_LINUX`行中添加`net.ifnames=0 biosdevname=0`,以使用传统的eth0命方式。 例如,原行可能为: GRUB_CMDLINE_LINUX="crashkernel=auto resume=/dev/mapper/cl-swap rd.lvm.lv=cl/root rd.lvm.lv=cl/swap rhgb quiet" 修改后: GRUB_CMDLINE_LINUX="crashkernel=auto resume=/dev/mapper/cl-swap rd.lvm.lv=cl/root rd.lvm.lv=cl/swap rhgb quiet net.ifnames=0 biosdevname=0" 3. 重新生成grub配置 对于使用BIOS的系统,运行: grub2-mkconfig -o /boot/grub2/grub.cfg 对于UEFI系统,运行: grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg 4. 重命网络配置文件 假设当前网卡为ens33,我们想改为eth0。 将原配置文件`/etc/sysconfig/network-scripts/ifcfg-ens33`重命为`ifcfg-eth0`。 编辑`ifcfg-eth0`文件,修改其中的`NAME`和`DEVICE`字段为eth0。 例如:NAME=eth0, DEVICE=eth0 5. 创建udev规则(可选,但推荐) 为了避免重启后网卡名称再次变化,我们可以创建udev规则来固定网卡名称。 在`/etc/udev/rules.d/`目录下创建一个规则文件,例如`70-persistent-net.rules`(或者使用已有的类似规则文件,如引用[4]中的方法)。 使用网卡的MAC地址来指定名称,例如: SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:e0:4c:90:06:83", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0" 注意:将MAC地址替换为实际的地址。 6. 重启系统 reboot 7. 验证 重启后,使用`ip link`命令查看网卡名称是否已更改。 注意:在CentOS 8中,网络服务由NetworkManager管理,如果上述步骤完成后网络未启动,请检查网络配置文件中的ONBOOT是否设置为yes,并确保没有其他配置文件冲突。 另外,如果系统使用Predictable Network Interface Names(可预测的网络接口名称),通过添加`net.ifnames=0 biosdevname=0`参数可以禁用此特性。 引用[3]中提到,编辑grub文件后需要重新生成grub.cfg,引用[4]中提到了使用udev规则固定名称。 但是请注意:在CentOS 8中,udev规则文件可能已经不再使用传统的70-persistent-net.rules,而是使用网络管理器或系统d-udevd的规则。因此,创建自定义规则文件是可行的,但确保规则文件以数字开头(如70)以便在正确顺序中加载。 下面我们详细写出步骤:</think>### CentOS 8 修改网络接口名称完整指南 在 CentOS 8 中修改网络接口名称需通过以下步骤完成(**操作前请备份重要数据**): #### 1. **确认当前网卡信息** ```bash ip link show # 示例输出: # 1: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500... # 记录 MAC 地址(如 00:e0:4c:90:06:83)和当前名称 ``` #### 2. **修改 GRUB 配置** [^3] ```bash sudo vi /etc/default/grub ``` 在 `GRUB_CMDLINE_LINUX` 行添加参数: ```ini GRUB_CMDLINE_LINUX="... net.ifnames=0 biosdevname=0" ``` #### 3. **生成 GRUB 配置文件** ```bash sudo grub2-mkconfig -o /boot/grub2/grub.cfg ``` #### 4. **创建 UDEV 规则** [^4] ```bash sudo vi /etc/udev/rules.d/70-persistent-net.rules ``` 添加规则(替换 MAC 地址和目标名称): ```rules SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:e0:4c:90:06:83", NAME="eth0" ``` #### 5. **重命网络配置文件** [^2] ```bash cd /etc/sysconfig/network-scripts sudo cp ifcfg-ens33 ifcfg-eth0 sudo vi ifcfg-eth0 ``` 修改关键参数: ```ini NAME=eth0 DEVICE=eth0 # 确保静态IP配置保留(参考引用[1]) TYPE=Ethernet BOOTPROTO=static ONBOOT=yes IPADDR=192.168.1.100 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 ``` #### 6. **删除旧配置并重启** ```bash sudo rm -f ifcfg-ens33 sudo reboot ``` #### 7. **验证更改** ```bash ip addr show eth0 # 确认新名称生效 ping 8.8.8.8 # 测试网络连通性 ``` > **关键注意事项**: > - 操作需 root 权限 > - MAC 地址必须与 `ip link` 输出一致 > - 若使用 NetworkManager,需同步更新连接配置 > - 虚拟机环境建议先创建快照
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值