在老的Linux中,特别是CentOS 6系统下,网卡大多数都是命名为eth0
,eth1
这样的形式,但是这样的命名是不稳定的,因为后面的数字是根据驱动的加载顺序来的,那么就有可能出现两次启动导致网卡名称不一样的情况了。
在CentOS 7中,由于有了Systemd,所以引入了一种新的命名规则叫一致网络设备命名
,具体的可以参考文档第 8 章 一致网络设备命名,这里就不再赘述了。
现在问题来了,如何真正意义上实现按意愿去设置网卡的名称呢?这里有个通用的方法:
编辑/etc/udev/rules.d/70-persistent-net.rules
文件,如果有这个文件,则直接编辑就可以,如果没有就新建一个。
然后在文件中按以下的格式输入规则:
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="aa:bb:cc:dd:ee:01", NAME="eth0"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:11:22:33:44:02", NAME="ethxyz"
需要注意的是,MAC地址中的字母,必须是小写,否则可能会无法正确匹配。
只需要根据情况,填写MAC地址和名字就可以了。另外,针对已有的网络配置,如CentOS下/etc/sysconfig/network-scripts/
底下的那些ifcfg-xxxx配置文件,也需要针对性的进行修改。修改完成后重启机器即可生效。
针对udev规则,还有很多可以MATCH和修改的地方,可以实现很多复杂功能,具体的这里就不赘述了,感兴趣的可以参考一下udev - ArchWiki,或者其他udev相关的文章。