Linux使用udev规则绑定网卡名称
Using udev rules to bind network interface names of Linux systems
————————————————————
多网卡设备有时候网卡的名字会不太一样,需要固定下来。
设置网卡统一为 eth*
适用于 GRUB 方式启动的设备
-
编辑
/etc/default/grub
文件,找到GRUB_CMDLINE_LINUX
参数; -
内容追加:
biosdevname=0 net.ifnames=0
GRUB_CMDLINE_LINUX=“xxx biosdevname=0 net.ifnames=0 xxx quiet”
使用MAC地址绑定网卡名称
- 获得需要绑定的网口的 MAC 地址
ip a
-
新建 udev 规则文件:
/etc/udev/rules.d/90-bind-ether-name.rules
(名字任意) -
添加如下内容:
以 eth0 为例,重启后生效。
SUBSYTEM=="net", ACTION=="add", DRIVERS=="?*", ATTP{address}=="Your MAC Address", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
然后这个MAC地址的网卡就一直会被绑定为 eth0 了。
另一种绑定方案
比较复杂,适合专业用户
- 查看 eth0 的信息:
udevadm info --query=path --path=/sys/class/net/eth0 --attribute
- 绑定方法:
# e.g.1
SUBSYSTEM=="net", DRIVERS=="", ATTR{device_addr}=="", NAME="eth0"
# e.g.2
SUBSYSTEM=="net", DRIVERS=="", KERNELS=="", NAME="eth0"