RHEL 7有一个新特性,被称作”consistent network device naming”(一致网络设备名),这个特性修改了系统网络接口的名称,以便可以更加快速的定位和区分网络接口。

通常,Linux系统的网络接口会被枚举命名为 eht[0123…],但这个名称并不要求同设备硬件的网络接口完全对应。具有多个网络接口的现代服务器设备会采用非确定和反直觉的方式命名,这将使主板的板载网卡和扩展网卡都受到影响。为了符合原来的使用习惯,以下将展示如何将RHEL 7/CentOS 7系统的默认网络设备名修改为”eth0″。

图.1 CentOS 7 默认网络接口名称

如图.1所示,CentOS 7 会将网卡命名为”ens18″,这多少让人觉得有些不适应,不是比较熟悉的”eth0″。想要把它转换成常用的命名方式,首先要禁用”consistent  network  device  naming”项,这需要修改 /etc/default/grub的配置内容。而/etc/default/grub 的典型配置如下所示:

 GRUB_TIMEOUT=5
 GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
 GRUB_DEFAULT=saved
 GRUB_DISABLE_SUBMENU=true
 GRUB_TERMINAL_OUTPUT="console"
 GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet"
 GRUB_DISABLE_RECOVERY="true"

现在要做的就是在其中的”GRUB_CMDLINE_LINUX”项目中增加”net.ifnames=0 biosdevname=0″,修改后的配置文件内容如下:

 GRUB_TIMEOUT=5
 GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
 GRUB_DEFAULT=saved
 GRUB_DISABLE_SUBMENU=true
 GRUB_TERMINAL_OUTPUT="console"
 GRUB_CMDLINE_LINUX="crashkernel=auto net.ifnames=0 biosdevname=0 rhgb quiet"
 GRUB_DISABLE_RECOVERY="true"

修改完配置之后,最好先进行一下测试,确保配置没有问题,不然系统启动不起来就麻烦的很了。先用如下命令生成配置文件:

 # grub2-mkconfig

然后再用以下命令将配置生成至各启动内核:

 # grub2-mkconfig -o /boot/grub2/grub.cfg

图.2 生成grub配置文件

如图.2所示,已经将配置文件输出至各启动内核。然后就需要将现在网卡的配置文件拷贝成网卡新名称的配置文件,注意之前这个网卡的名称是 ens18,所以使用如下命令:

 # cp /etc/sysconfig/network-scripts/ifcfg-ens18 /etc/sysconfig/network-scripts/ifcfg-eth0

之后编辑 /etc/sysconfig/network-scripts/ifcfg-eth0 这个配置文件如下所示:

 TYPE=Ethernet
 BOOTPROTO=dhcp
 DEFROUTE=yes
 IPV4_FAILURE_FATAL=yes
 IPV6INIT=no
 IPV6_AUTOCONF=yes
 IPV6_DEFROUTE=yes
 IPV6_FAILURE_FATAL=no
 NAME=eth0
 DEVICE=eth0
 ONBOOT=yes
 PEERDNS=yes
 PEERROUTES=yes
 IPV6_PEERDNS=yes
 IPV6_PEERROUTES=yes
 IPV6_PRIVACY=no

主要就是对”NAME”和”DEVICE”的名称进行了修改,改为我们常用的”eth0″。

重新启动电脑,就是见证奇迹的时刻了,看看网卡名称是不是又变回熟悉的”eth0″了呢。

图.3 修改网卡名称为”eth0″

如图.3所示,成功修改好的话,网络接口名称为”eth0″,最后通过 ping 命令检查网络是否可用。一切正常的话,就大功告成了。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注