CentOS系统网卡改名

2018-01-10|Categories: Linux, Magedu-training|

让CentOS 7网卡使用CentOS 6风格的名称

CentOS 7的网卡命名规则相比CentOS 6有明显的变化:

  • CentOS 6: eth0, eth1, ethN …
  • CentOS 7: ens33, ens37, ensXX …

为了后期运维工作的便利,在安装操作系统之后,有必要把CentOS 7的网卡名称改为CentOS 6同样的风格。方法很简单,内核启动时添加net.ifnames=0参数,即可让内核使用传统的网卡命名方式。

# 修改grub模板文件
sed -i.bak -r '/GRUB_CMDLINE_LINUX/s/(rhgb quiet)/\1 net.ifnames=0/' /etc/default/grub

# 生成新的grub文件
grub2-mkconfig -o /etc/grub2.cfg

# `/etc/grub2.cfg`是一个软链接
ls -l /etc/grub2.cfg
# lrwxrwxrwx. 1 root root 22 Nov  7 16:09 /etc/grub2.cfg -> ../boot/grub2/grub.cfg

# 重启系统
reboot

重启之后,之前在/etc/sysconfig/network-scripts目录下编写的网卡配置文件会失效,需要重新编辑,至少需要修改DEVICE=字段,例如把DEVICE=ens33修改成DEVICE=eth0

修改CentOS 6网卡名称

某些时候,我们同样需要修改CentOS 6的网卡名称,例如复制虚拟机硬盘文件生成新的虚拟机之后,两台虚拟机的网卡名称和网卡MAC地址完全一样,获取IP地址时会冲突,此时就需要给网卡改名。

步骤如下:

一、修改配置文件

vim /etc/udev/rules.d/70-persistent-net.rules

# 文件内容:
# This file was automatically generated by the /lib/udev/write_net_rules
# program, run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single
# line, and change only the value of the NAME= key.

# PCI device 0x8086:0x100f (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:ab:6c:19", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

# PCI device 0x8086:0x100f (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:69:94:a0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

# PCI device 0x8086:0x100f (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:69:94:aa", ATTR{type}=="1", KERNEL=="eth*", NAME="eth2"

如果是MAC地址冲突,需要通过虚拟机软件的设置页面生成新的MAC地址(详见下图),然后更改上述文件的ATTR{address}字段。

如果只需要更改网卡名称,修改NAME字段即可,注意不能和已有的名称冲突。

VMware Fusion更改网卡MAC地址的界面如下:

二、卸载网卡驱动并重新加载

# 查找网卡驱动类型
$ ethtool -i eth1
driver: e1000

# 卸载驱动
$ modprobe -r e1000

# 重新加载驱动
$ modprobe e1000

此时再执行ifconfig命令就可以看到新的网卡名称已经生效。

欢迎交流你的想法