Catalogue
网卡配置文件参数详解
1 | # cat /etc/sysconfig/network-scripts/ifcfg-eth0 |
在线修改网卡名(重启机器会失效)
把eth0改成em1
1 | ifconfig eth0 down |
内核启用biosdevname,禁用net.ifnames
net.ifnames(也是一种网卡的命名规范)
修改/etc/default/grub
在GRUB_CMDLINE_LINUX后添加 net.ifnames=0 biosdevname=1
1 | GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet net.ifnames=0 biosdevname=1") |
重设一下引导
1 | sudo grub2-mkconfig -o /etc/grub2.cfg |
启用udev的60-net.rules规则
/usr/lib/udev/rules.d/60-net.rules文件中的规则指示udev辅助工具/lib/udev/renamedevice查看所有/etc/sysconfig/networkscripts/ifcfg-suffix文件。如果是ifcfg文件如果发现包含 HWADDR 条目与接口的 MAC 地址匹配,它将将该接口重命名为 ifcfg 文件中的 DEVICE 指令指定的名称。如果不相符,则按照/etc/udev/rules.d/60-net.rules下的规则来
1 | cp /usr/lib/udev/rules.d/60-net.rules /etc/udev/rules.d/ |
通过udev指定网卡名
1 | ACTION=="add", SUBSYSTEM=="net", DRIVERS=="?*", ATTR{type}=="1", ATTR{address}=="d8:9e:*:10:*11", NAME="eth0" |
修改网卡配置文件
如果要把em2网卡改成eth0
1 | cd /etc/sysconfig/network-scripts/ |
如果没有配置文件,可使用以下命令添加
1 | nmcli connection add type ethernet ifname em1 con-name em1 autoconnect yes |
重启机器
1 | reboot |
原理
上述的方法用了两个网卡命名规范,一个是biosdevname、一个是systemd
经测试,biosdevname命名规范必须启用,否则修改网卡为eth0(ethX系列)会出现莫名的错误,而非eth的名字则可正常修改
内核在boot过程是默认使用ethX方式来命名的,每次启动的时候都不确定,启动会后再通过udev等方式去rename,这种不确定因素太多,所以启用biosdevname比较好
启用biosdevname,禁用net.ifnames,(两种规范用一个就行)
!!!如果用户自定义了udev rules,则用户自定义的rules优先!
使用biosdevname命名规范,所命名的网卡名如下
1 | em1 板载网卡 |
参考文档